Java基礎(chǔ)面試總結(jié)

1. 講講一個(gè)十進(jìn)制的數(shù)在內(nèi)存中是怎樣存的维贺?

以二進(jìn)制補(bǔ)碼的形式存儲(chǔ)夹抗。

2. 請(qǐng)解釋為什么會(huì)出現(xiàn)4.0 - 3.6 = 4.0000001這種現(xiàn)象蒲祈?

計(jì)算機(jī)在計(jì)算十進(jìn)制小數(shù)的過(guò)程中要先轉(zhuǎn)換為二進(jìn)制進(jìn)行計(jì)算呆瞻,而二進(jìn)制的小數(shù)無(wú)法精確的表達(dá)十進(jìn)制小數(shù)谷婆,所以在轉(zhuǎn)換的過(guò)程中出現(xiàn)了誤差慨蛙。

3. 接口和抽象類(lèi)的區(qū)別是什么?

  • 接口中的所有方法隱含的都是抽象的纪挎,而抽象類(lèi)則可以同時(shí)包含抽象和非抽象方法期贫。
  • 接口是多重實(shí)現(xiàn),抽象類(lèi)是單一繼承异袄。
  • 接口中的成員函數(shù)默認(rèn)是public通砍。抽象類(lèi)的成員函數(shù)可以是private,protected或者是public烤蜕。
  • 接口沒(méi)有構(gòu)造方法封孙,抽象類(lèi)可以有構(gòu)造方法。

4. 面向?qū)ο箝_(kāi)發(fā)的六個(gè)基本原則讽营,在項(xiàng)目中用過(guò)哪些原則虎忌?

  • 單一原則:一個(gè)類(lèi)只做它該做的事情(高內(nèi)聚)。在面向?qū)ο笾谐髋簦绻蛔屢粋€(gè)類(lèi)完成它該做的事膜蠢,而不涉及與它無(wú)關(guān)的領(lǐng)域就是踐行了高內(nèi)聚的原則,這個(gè)類(lèi)就只有單一原則蚀瘸。
  • 開(kāi)閉原則:軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)發(fā)狡蝶,對(duì)修改關(guān)閉庶橱,要做到開(kāi)閉有兩個(gè)要點(diǎn):1. 抽象是關(guān)鍵贮勃,一個(gè)系統(tǒng)中如果沒(méi)有抽象類(lèi)或接口系統(tǒng)就沒(méi)有擴(kuò)展點(diǎn);2. 封裝可變性苏章,將系統(tǒng)中的各種可變因素封裝到一個(gè)繼承結(jié)構(gòu)中寂嘉,如果多個(gè)可變因素混雜在一起,系統(tǒng)將變的復(fù)雜而繁亂枫绅。
  • 里氏替換原則:任何時(shí)候都可以用子類(lèi)型替換掉父類(lèi)型泉孩,子類(lèi)一定是增加父類(lèi)的能力而不是減少父類(lèi)的能力。
  • 依賴(lài)倒置原則:面向接口編程并淋。高層模塊不應(yīng)該依賴(lài)底層模塊寓搬,兩者都應(yīng)該依賴(lài)其抽象,盡可能使用抽象類(lèi)型而不用具體類(lèi)型县耽,因?yàn)槌橄箢?lèi)型可以被它的任何一個(gè)子類(lèi)型所替代句喷。
  • 接口隔離原則:類(lèi)間的依賴(lài)關(guān)系應(yīng)該建立在最小的接口上镣典,不能大而全,接口表示能力唾琼,一個(gè)接口只應(yīng)該描述一種能力兄春,接口也應(yīng)該高度內(nèi)聚。
  • 迪米特法則:由叫最少知識(shí)原則锡溯,一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有盡可能少的了解赶舆。
    根據(jù)自己的項(xiàng)目來(lái)聊:
    參考:https://www.cnblogs.com/qifengshi/p/5709594.html

5. Http請(qǐng)求的GET和POST方式的區(qū)別?

  • GET參數(shù)直接暴露在URL上祭饭,而POST將數(shù)據(jù)放在request body中
  • GET請(qǐng)求在URL中傳送參數(shù)是有大小限制的芜茵,不能大于2KB,而POST可以說(shuō)沒(méi)有
  • GET在瀏覽器回退是無(wú)害的,而POST會(huì)再次提交請(qǐng)求
  • GET只接受ASCII字符甜癞,而POST沒(méi)有限制
  • GET請(qǐng)求只能進(jìn)行URL編碼夕晓,而POST支持多種編碼
  • GET請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽器歷史記錄中,而POST中的參數(shù)不會(huì)被保留
  • GET請(qǐng)求會(huì)被瀏覽器主動(dòng)cache,而POST不會(huì)悠咱,除非手動(dòng)設(shè)置

6. TCP 三次握手蒸辆,四次揮手

參考:https://blog.csdn.net/qq_38950316/article/details/81087809

7. TCP 和 UDP區(qū)別?

  • TCP是面向連接的運(yùn)輸層協(xié)議析既。UDP是無(wú)連接的躬贡,即發(fā)送數(shù)據(jù)之前不需要建立連接
  • TCP只能一對(duì)一連接。UDP支持一對(duì)一眼坏,一對(duì)多拂玻,多對(duì)一和多對(duì)多的交互通信
  • TCP提供可靠的交付服務(wù),提供全雙工通信宰译。UDP使用盡最大努力交付檐蚜,即不保證可靠交付,同時(shí)也不使用擁塞控制沿侈。
  • TCP 面向字節(jié)流闯第,頭部最低20個(gè)字節(jié)。UDP是面向報(bào)文的缀拭,沒(méi)有擁塞控制咳短,適合多媒體通信要求;而且UDP首部開(kāi)銷(xiāo)小蛛淋,只有8個(gè)字節(jié)咙好。

8. 從輸入網(wǎng)址到獲取頁(yè)面的過(guò)程。

  • 查詢(xún)DNS褐荷, 獲取域名對(duì)應(yīng)的IP地址:
    分四步:1瀏覽器搜索自身的DNS緩存2搜索操作系統(tǒng)的DNS緩存3讀取本地的HOST文件4發(fā)起一個(gè)DNS系統(tǒng)調(diào)用(寬帶運(yùn)營(yíng)服務(wù)器查看本身緩存勾效,運(yùn)營(yíng)服務(wù)器發(fā)起一個(gè)迭代DNS解析請(qǐng)求)
  • 瀏覽器獲得域名對(duì)應(yīng)的IP地址后,發(fā)起HTTP三次握手
  • TCP/IP建立連接后,瀏覽器可以向服務(wù)器發(fā)送HTTP請(qǐng)求了
  • 服務(wù)器接收到請(qǐng)求后层宫,根據(jù)路徑參數(shù)绘迁,經(jīng)過(guò)后端處理將頁(yè)面返回給瀏覽器
  • 瀏覽器渲染頁(yè)面,和外部資源卒密,最終將完整的頁(yè)面呈現(xiàn)給用戶(hù)

9.Session與Cookie區(qū)別?

  • Session:服務(wù)器端會(huì)為每個(gè)訪問(wèn)服務(wù)端的請(qǐng)求分配一個(gè)會(huì)話(huà)Session缀台,其數(shù)據(jù)存儲(chǔ)在服務(wù)器端,不依賴(lài)瀏覽器端環(huán)境哮奇,因此高效安全膛腐。
  • Cookie:數(shù)據(jù)已文件形式存在用戶(hù)瀏覽器端,用戶(hù)可以通過(guò)瀏覽器禁用Cookie鼎俘,用戶(hù)可以對(duì)Cookie進(jìn)行查看哲身,修改,和刪除贸伐。

10. 列出自己常用的JDK包

  • java.lang 包裝類(lèi)勘天,線程等都在該包
  • java.match 有BigDecimal 精確數(shù)字類(lèi)型
  • java.util 并發(fā),集合等都在該包內(nèi)

11.==與equals的區(qū)別?

  • ==是判斷兩個(gè)變量或?qū)嵗遣皇侵赶蛲粋€(gè)內(nèi)存空間捉邢,equals是判斷兩個(gè)變量或?qū)嵗赶虻膬?nèi)存空間的值是不是相同
  • ==是指對(duì)內(nèi)存地址進(jìn)行比較 脯丝, equals()是對(duì)字符串的內(nèi)容進(jìn)行比較
  • ==指引用是否相同, equals()指的是值是否相同
    總結(jié):equals 比較兩個(gè)實(shí)體值是否相同伏伐,可以被覆蓋宠进,但需要遵循幾個(gè)約定。== 比較兩個(gè)實(shí)體的引用地址是否相等藐翎,不能覆蓋材蹬,如果引用地址相等,那認(rèn)為兩個(gè)實(shí)體為同一個(gè)實(shí)體

12. 請(qǐng)你說(shuō)明符號(hào)“==”比較的是什么吝镣?

“==”對(duì)比兩個(gè)對(duì)象基于內(nèi)存引用堤器,如果兩個(gè)對(duì)象的引用完全相同(指向同一個(gè)對(duì)象)時(shí),“==”操作將返回true末贾,否則返回false闸溃。“==”如果兩邊是基本類(lèi)型未舟,就是比較數(shù)值是否相等圈暗。

13. hashCode和equals方法的區(qū)別與聯(lián)系

對(duì)于覆蓋了equals方法的類(lèi)中掂为,同樣也要覆蓋hashCode方法裕膀。這是JDK規(guī)定的結(jié)果。
比較兩個(gè)對(duì)象是否相同勇哗,hashCode比equals效率更高昼扛,所以?xún)?yōu)先會(huì)根據(jù)hashCode來(lái)比較,但如果不重寫(xiě)hashCode,原本兩個(gè)對(duì)象可以認(rèn)為是相等抄谐,但由于hashCode默認(rèn)返回表示對(duì)象地址的整數(shù)渺鹦,必然不相等,所以需要重寫(xiě)hashCode蛹含。

14. 什么是Java序列化和反序列化毅厚,如何實(shí)現(xiàn)Java序列化?或者請(qǐng)解釋Serializable 接口的作用浦箱?

序列化是一種用來(lái)處理對(duì)象流的機(jī)制吸耿,也就是將對(duì)象的內(nèi)容轉(zhuǎn)化成二進(jìn)制流,可以將對(duì)象持久化或者網(wǎng)絡(luò)傳輸反序列化是將二進(jìn)制流還原為對(duì)象的過(guò)程酷窥。
實(shí)現(xiàn)Java序列化咽安,通過(guò)實(shí)現(xiàn)Serializable即可。

15. Object類(lèi)中常見(jiàn)的方法蓬推,為什么wait notify會(huì)放在Object里邊妆棒?

因?yàn)镴ava提供的鎖是對(duì)象級(jí)的,每個(gè)對(duì)象都有對(duì)象頭沸伏,用來(lái)存儲(chǔ)鎖

16. 解釋一下extends 和super泛型限定符?

  • <? extends Fruit> 稱(chēng)為 上界限定符糕珊,list只能get,不能add(除了add null值),通常用于讀
  • <? super Apple>稱(chēng)為 下界限定符毅糟,list只能add,不能get(只能用Object接收),通過(guò)用于寫(xiě)

17. 請(qǐng)列舉你所知道的Object類(lèi)的方法并簡(jiǎn)要說(shuō)明?

Object()默認(rèn)構(gòu)造方法
clone()創(chuàng)建并返回此對(duì)象的一個(gè)副本
equals(Object obj) 當(dāng)前對(duì)象是否與obj對(duì)象相同
finalize()當(dāng)垃圾收集器確定該對(duì)象可以回收時(shí)放接,由垃圾收集器調(diào)用此方法
getClass返回一個(gè)對(duì)象的運(yùn)行時(shí)類(lèi)
hashCode()返回該對(duì)象的哈希碼值
notify()喚醒此對(duì)象監(jiān)視器上等待的單個(gè)線程
notifyAll()喚醒在此對(duì)象監(jiān)視器上等待的所有線程
toString()返回該對(duì)象的字符串表示
wait()使當(dāng)前線程等待,直到其他線程調(diào)用此對(duì)象的notify()或者notifyAll()方法
wait(long timeout)導(dǎo)致當(dāng)前的線程等待留特,直到其他線程調(diào)用此對(duì)象的 notify() 方法或 notifyAll() 方法纠脾,或者超過(guò)指定的時(shí)間量。wait(long timeout, int nanos) 導(dǎo)致當(dāng)前的線程等待蜕青,直到其他線程調(diào)用此對(duì)象的 notify() 方法或 notifyAll() 方法苟蹈,或者其他某個(gè)線程中斷當(dāng)前線程,或者已超過(guò)某個(gè)實(shí)際時(shí)間量右核。

17. 創(chuàng)建線程的方式?

  • 繼承Thread類(lèi)創(chuàng)建線程慧脱,并重寫(xiě)run方法,調(diào)用實(shí)例對(duì)象的start()方法啟動(dòng)線程贺喝。
  • 實(shí)現(xiàn)Runnable接口菱鸥,并實(shí)現(xiàn)run方法,將實(shí)現(xiàn)Runnable的類(lèi)傳入Thread構(gòu)造函數(shù)中躏鱼,并調(diào)用Thread實(shí)例對(duì)象的start方法啟動(dòng)線程氮采。
  • 實(shí)現(xiàn)Callable接口,并實(shí)現(xiàn)call方法染苛,創(chuàng)建Callable實(shí)現(xiàn)類(lèi)的實(shí)例鹊漠,使用FutureTask包裝Callable對(duì)象,使用FutureTask對(duì)象傳入Thread中,調(diào)用start方法啟動(dòng)線程躯概,使用FutureTask對(duì)象的get方法獲取線程的返回值登钥。

18. ArrayList 與 LinkedList 區(qū)別?

  • ArrayList 是一種順序存儲(chǔ)的線性表娶靡,底層使用數(shù)組實(shí)現(xiàn)牧牢。
  • LinkedList是一種鏈?zhǔn)酱鎯?chǔ)的線性表,本質(zhì)是一個(gè)雙向鏈表姿锭,實(shí)現(xiàn)了List结执、Deque接口,可以當(dāng)成雙向鏈表艾凯、隊(duì)列献幔、棧使用。

19. 自定義注解

  1. 聲明注解的保留期限類(lèi)型趾诗。
    @Retention(RetentionPolicy.RUNTIME)表示該注解可以在運(yùn)行期保留
    保留期限類(lèi)型:java.lang.annotation.Retention
    SOURCE: 注解信息僅保留在目標(biāo)類(lèi)源代碼文件中蜡感,對(duì)應(yīng)的字節(jié)碼文件不會(huì)保留
    CLASS: 注解信息存在于源代碼、字節(jié)碼文件中恃泪,但運(yùn)行期JVM不能獲得該注解信息
    RUNTIME: 注解信息存在于源代碼郑兴、字節(jié)碼文件、運(yùn)行期JVM中贝乎,能夠通過(guò)反射機(jī)制獲取注解類(lèi)信息情连。
  2. 聲明注解可以使用的目標(biāo)類(lèi)型。
    @Target(ElementType.METHOD) 表示這個(gè)注解只能在方法上使用
    目標(biāo)類(lèi)型:java.lang.annotation.ElementType
    TYPE: 類(lèi)览效、接口却舀、注解類(lèi)、Enum
    FIELD: 類(lèi)成員變量或常量
    METHOD: 方法
    PARAMETER: 參數(shù)
    CONSTRUCTOR: 構(gòu)造器
    LOCAL_VARIABLE: 局部變量
    ANNOTATION_TYPE: 注解
    PACKAGE: 包
  3. 使用@interface 修飾類(lèi)锤灿。
  4. 聲明注解成員挽拔。
    成員無(wú)入?yún)ⅰ⒉荒軖伋霎惓#?br> 可以通過(guò)default成員指定默認(rèn)值
    成員類(lèi)型只能使用基本數(shù)據(jù)類(lèi)型但校、String螃诅、Class、enums状囱、注解類(lèi)型术裸,及上述類(lèi)型的數(shù)組類(lèi)型。如ForumService value()是非法的
    如果注解只有一個(gè)成員亭枷,則成員名必須取名為value()袭艺,再使用時(shí)可以忽略成員名和賦值號(hào),如果注解類(lèi)擁有多個(gè)成員時(shí)奶栖,
    對(duì)value成員賦值匹表,可以省略value和賦值號(hào),如果是多個(gè)成員賦值宣鄙,必須使用賦值號(hào)袍镀。

20. ArrayList擴(kuò)容機(jī)制是怎么樣的? 詳細(xì)說(shuō)一下冻晤。

在往ArrayList add元素的時(shí)候苇羡,如果ArrayList 已有元素?cái)?shù)量+1 大于 ArrayList 存儲(chǔ)元素的總長(zhǎng)度,就會(huì)觸發(fā)擴(kuò)容鼻弧。
首先ArrayList會(huì)計(jì)算新數(shù)組的長(zhǎng)度设江,長(zhǎng)度為老數(shù)組的0.5倍,如果新數(shù)組長(zhǎng)度還是小于插入元素需要的最小長(zhǎng)度攘轩,那么新數(shù)組長(zhǎng)度賦值為最小長(zhǎng)度叉存,如果超過(guò)ArrayList允許的最大長(zhǎng)度Integer.MAX_VALUE(2^{31} - 1),那么新數(shù)組長(zhǎng)度為Integer.MAX_VALUE度帮,否則為Integer.MAX_VALUE - 8(為什么要-8?Why the maximum array size of ArrayList is Integer.MAX_VALUE - 8?
最后將原數(shù)組元素拷貝到新數(shù)組進(jìn)行擴(kuò)容歼捏。

21. HashMap 1.7 和 1.8 的區(qū)別

  • 1.7,在發(fā)生hash沖突的時(shí)候笨篷,數(shù)據(jù)結(jié)構(gòu)只有鏈表瞳秽;
  • 1.8,數(shù)據(jù)結(jié)構(gòu)有鏈表和紅黑樹(shù)率翅,使用紅黑樹(shù)是為了能夠提高查詢(xún)效率练俐。在鏈表長(zhǎng)度達(dá)到7時(shí)(bingCount >= TREEIFY_THRESHOLD - 1),并且hash tab[]數(shù)組長(zhǎng)度大于等于64時(shí)冕臭,將鏈表轉(zhuǎn)換成紅黑樹(shù)腺晾,如果數(shù)組長(zhǎng)度小于64,只是對(duì)數(shù)組進(jìn)行擴(kuò)容
    https://blog.csdn.net/qq_21251983/article/details/90056067

22. HashMap中的key可以是任何對(duì)象或數(shù)據(jù)類(lèi)型嗎?

  • 可以是null辜贵,但不能是可變對(duì)象丘喻,如果是可變對(duì)象,對(duì)象中的屬性改變念颈,則對(duì)象的HashCode也相應(yīng)改變泉粉,導(dǎo)致下次無(wú)法查找到已存在Map中的數(shù)據(jù)。
  • 如果要可變對(duì)象當(dāng)著鍵榴芳,必須保證其HashCode在成員屬性改變的時(shí)候保持不變嗡靡。

23. HashMap、ConcurrentHashMap初始化閾值為什么要是8窟感,才轉(zhuǎn)為紅黑樹(shù)讨彼?

  1. 當(dāng)初始閾值為8時(shí),鏈表的長(zhǎng)度達(dá)到8的概率變的很小柿祈,如果再大概率減小的并不明顯哈误。
  2. 樹(shù)結(jié)構(gòu)查找的時(shí)間復(fù)雜度是O(log(n))哩至,而鏈表的時(shí)間復(fù)雜度是O(n),當(dāng)閾值為8時(shí)蜜自,long8 = 3菩貌,相比鏈表更快,但樹(shù)結(jié)構(gòu)比鏈表占用的空間更多重荠,所以這是一種時(shí)間和空間的平衡箭阶。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市戈鲁,隨后出現(xiàn)的幾起案子仇参,更是在濱河造成了極大的恐慌,老刑警劉巖婆殿,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诈乒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡婆芦,警方通過(guò)查閱死者的電腦和手機(jī)抓谴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寞缝,“玉大人癌压,你說(shuō)我怎么就攤上這事【B剑” “怎么了滩届?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)被啼。 經(jīng)常有香客問(wèn)我帜消,道長(zhǎng),這世上最難降的妖魔是什么浓体? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任泡挺,我火速辦了婚禮,結(jié)果婚禮上命浴,老公的妹妹穿的比我還像新娘娄猫。我一直安慰自己,他們只是感情好生闲,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布媳溺。 她就那樣靜靜地躺著,像睡著了一般碍讯。 火紅的嫁衣襯著肌膚如雪悬蔽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天捉兴,我揣著相機(jī)與錄音蝎困,去河邊找鬼录语。 笑死,一個(gè)胖子當(dāng)著我的面吹牛禾乘,可吹牛的內(nèi)容都是我干的澎埠。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼盖袭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼失暂!你這毒婦竟也來(lái)了彼宠?” 一聲冷哼從身側(cè)響起鳄虱,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凭峡,沒(méi)想到半個(gè)月后拙已,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摧冀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年倍踪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片索昂。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡建车,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出椒惨,到底是詐尸還是另有隱情缤至,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布康谆,位于F島的核電站领斥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沃暗。R本人自食惡果不足惜月洛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孽锥。 院中可真熱鬧嚼黔,春花似錦、人聲如沸惜辑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)韵丑。三九已至爵卒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撵彻,已是汗流浹背钓株。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工实牡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人轴合。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓创坞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親受葛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子题涨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361