面試題-JavaSE語法

1冀续、Java 有沒有 goto 語句钠署?

goto 是 Java 中的保留字哗戈,在目前版本的 Java 中沒有使用魂毁。根據(jù) James Gosling(Java 之父)編寫的《The Java ?Programming Language》一書的附錄中給出了一個(gè) Java 關(guān)鍵字列表玻佩,其中有 goto 和 const,但是這兩個(gè)是目前 無法使用的關(guān)鍵字漱牵,因此有些地方將其稱之為保留字夺蛇,其實(shí)保留字這個(gè)詞應(yīng)該有更廣泛的意義,因?yàn)槭煜?C 語言的程 序員都知道酣胀,在系統(tǒng)類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字刁赦。

2、& 和 && 的區(qū)別

&運(yùn)算符有兩種用法:(1)按位與闻镶;(2)邏輯與甚脉。?

&&運(yùn)算符是短路與運(yùn)算。邏輯與跟短路與的差別是非常巨大的铆农,雖然二者都要求運(yùn)算符左右兩端的布爾值都是 true 整個(gè)表達(dá)式的值才是 true牺氨。 &&之所以稱為短路運(yùn)算是因?yàn)榻瞥埽绻?amp;&左邊的表達(dá)式的值是 false,右邊的表達(dá)式會被直接短路掉猴凹,不會進(jìn)行 運(yùn)算夷狰。很多時(shí)候我們可能都需要用&&而不是&,例如在驗(yàn)證用戶登錄時(shí)判定用戶名不是 null 而且不是空字符串郊霎,應(yīng)當(dāng)寫為username != null &&!username.equals("")沼头,二者的順序不能交換,更不能用&運(yùn)算符书劝,因?yàn)榈谝粋€(gè)條件如果不成立进倍,根本不能進(jìn)行字符串的eqals比較,否則會產(chǎn)生NullPointerException異常购对。

注意:邏輯或運(yùn)算符(|) 和短路或運(yùn)算符(||)的差別也是如此猾昆。

3、在 Java 中骡苞,如何跳出當(dāng)前的多重嵌套循環(huán)

在最外層循環(huán)前加一個(gè)標(biāo)記如 A垂蜗,然后用 break A;可以跳出多重循環(huán)。(Java 中支持帶標(biāo)簽的 break 和 continue ?語句烙如,作用有點(diǎn)類似于 C 和 C++中的 goto 語句么抗,但是就像要避免使用 goto 一樣,應(yīng)該避免使用帶標(biāo)簽的 break ?和 continue亚铁,因?yàn)樗粫屇愕某绦蜃兊酶鼉?yōu)雅蝇刀,很多時(shí)候甚至有相反的作用)。

4徘溢、兩個(gè)對象值相同 (x.equals(y) == true) 吞琐,但卻可有不同的 hashCode,這句 話對不對然爆?

不對站粟,如果兩個(gè)對象 x 和 y 滿足 x.equals(y) == true,它們的哈希碼(hashCode)應(yīng)當(dāng)相同曾雕。

Java 對于 eqauls 方法和 hashCode 方法是這樣規(guī)定的:(1)如果兩個(gè)對象相同(equals 方法返回 true)奴烙,那 么它們的 hashCode 值一定要相同;

(2)如果兩個(gè)對象的 hashCode 相同剖张,它們并不一定相同切诀。當(dāng)然,你未必要按照 要求去做搔弄,但是如果你違背了上述原則就會發(fā)現(xiàn)在使用容器時(shí)幅虑,相同的對象可以出現(xiàn)在 Set 集合中,同時(shí)增加新元素 的效率會大大下降(對于使用哈希存儲的系統(tǒng)顾犹,如果哈希碼頻繁的沖突將會造成存取性能急劇下降)倒庵。?

關(guān)于 equals 和 hashCode 方法褒墨,很多 Java 程序員都知道,但很多人也就是僅僅知道而已擎宝,在 Joshua Bloch 的大作《Effective Java》(很多軟件公司)郁妈,《Effective Java》、《Java 編程思想》以及《重構(gòu):改善既有代碼質(zhì)量》 是 Java 程序員必看書籍绍申,如果你還沒看過圃庭,那就趕緊去買一本吧)中是這樣介紹 equals 方法的。

首先 equals 方法必須滿足自反性(x.equals(x)必須返回 true)失晴、對稱性(x.equals(y)返回 true 時(shí),y.equals(x) 也必須返回 true)拘央、傳遞性(x.equals(y)和 y.equals(z)都返回 true 時(shí)涂屁,x.equals(z)也必須返回 true)和一致性(當(dāng) x 和 y 引用的對象信息沒有被修改時(shí),多次調(diào)用 x.equals(y)應(yīng)該得到同樣的返回值)灰伟,而且對于任何非 null 值的引 用 x拆又,x.equals(null)必須返回 false。

實(shí)現(xiàn)高質(zhì)量的equals方法的訣竅包括:

1. 使用==操作符檢查"參數(shù)是否為這個(gè)對象的引用"栏账;

2. 使用 instanceof 操作符檢查"參數(shù)是否為正確的類型"帖族;3. 對于類中的關(guān)鍵屬性,檢查參數(shù)傳入對象的屬性是否與之相匹配挡爵;

4. 編寫完equals方法后竖般,問自己它是否滿足對稱性、傳遞性茶鹃、一致性涣雕;

5. 重寫equals時(shí)總是要重寫hashCode;

6. 不要將equals方法參數(shù)中的Object對象替換為其他的類型闭翩,在重寫時(shí)不要忘掉 @Override 注解挣郭。

5、是否可以繼承 String?

String 類是 final 類疗韵,不可以被繼承兑障。繼承 String 本身就是一個(gè)錯誤的行為,對 String 類型最好的重用方式是關(guān)聯(lián)關(guān)系(Has-A)和依賴關(guān)系(Use- A)而不是繼承關(guān)系(Is-A)蕉汪。

6流译、 當(dāng)一個(gè)對象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對象的屬性肤无,并 可返回變化后的結(jié)果先蒋,那么這里到底是值傳遞還是引用傳遞?

是值傳遞。Java 語言的方法調(diào)用只支持參數(shù)的值傳遞宛渐。當(dāng)一個(gè)對象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí)竞漾,參數(shù)的 值就是對該對象的引用眯搭。對象的屬性可以在被調(diào)用過程中被改變,但對對象引用的改變是不會影響到調(diào)用者的业岁。C++ 和 C#中可以通過傳引用或傳輸出參數(shù)來改變傳入的參數(shù)的值鳞仙。說明:Java 中沒有傳引用實(shí)在是非常的不方便,這一 點(diǎn)在 Java 8 中仍然沒有得到改進(jìn)笔时,正是如此在 Java 編寫的代碼中才會出現(xiàn)大量的 Wrapper 類(將需要通過方法 調(diào)用修改的引用置于一個(gè) Wrapper 類中棍好,再將 Wrapper 對象傳入方法),這樣的做法只會讓代碼變得臃腫允耿,尤其 是讓從 C 和 C++轉(zhuǎn)型為 Java 程序員的開發(fā)者無法容忍借笙。

7、 重載(overload)和重寫(override)的區(qū)別较锡?重載的方法能否根據(jù)返回類型 進(jìn)行區(qū)分业稼?

方法的重載和重寫都是實(shí)現(xiàn)多態(tài)的方式,區(qū)別在于前者實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性蚂蕴,而后者實(shí)現(xiàn)的是運(yùn)行時(shí)的多態(tài) 性低散。重載發(fā)生在一個(gè)類中,同名的方法如果有不同的參數(shù)列表(參數(shù)類型不同骡楼、參數(shù)個(gè)數(shù)不同或者二者都不同)則視為 重載熔号;重寫發(fā)生在子類與父類之間,重寫要求子類被重寫方法與父類被重寫方法有相同的返回類型鸟整,比父類被重寫方 法更好訪問引镊,不能比父類被重寫方法聲明更多的異常(里氏代換原則)。重載對返回類型沒有特殊的要求篮条。 方法重載的規(guī)則: 1.方法名一致祠乃,參數(shù)列表中參數(shù)的順序,類型兑燥,個(gè)數(shù)不同

2.重載與方法的返回值無關(guān)亮瓷,存在于父類和子類,同類中

? 3.可以拋出不同的異常降瞳,可以有不同修飾符嘱支。

方法重寫的規(guī)則:

?1.參數(shù)列表必須完全與被重寫方法的一致,返回類型必須完全與被重寫方法的返回類型一致挣饥。

?2.構(gòu)造方法不能被重寫除师,聲明為 final 的方法不能被重寫,聲明為 static 的方法不能被重寫扔枫,但是能夠被再次 聲明汛聚。 3.訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。

4.重寫的方法能夠拋出任何非強(qiáng)制異常(UncheckedException短荐,也叫非運(yùn)行時(shí)異常)倚舀,無論被重寫的方法是 否拋出異常叹哭。但是,重寫的方法不能拋出新的強(qiáng)制性異常痕貌,或者比被重寫方法聲明的更廣泛的強(qiáng)制性異常风罩,反之則 可以。

8舵稠、為什么函數(shù)不能根據(jù)返回類型來區(qū)分重載超升?

該道題來自華為面試題。 因?yàn)檎{(diào)用時(shí)不能指定類型信息哺徊,編譯器不知道你要調(diào)用哪個(gè)函數(shù)室琢。?

例如:

1.float max(int a, int b);?

2.int max(int a, int b);

當(dāng)調(diào)用 max(1, 2);時(shí)無法確定調(diào)用的是哪個(gè),單從這一點(diǎn)上來說落追,僅返回值類型不同的重載是不應(yīng)該允許的研乒。 再比如對下面這兩個(gè)方法來說,雖然它們有同樣的名字和自變量淋硝,但其實(shí)是很容易區(qū)分的:

1.void f() {} ?

2.int f() {}

若編譯器可根據(jù)上下文(語境)明確判斷出含義,比如在 int x=f()中宽菜,那么這樣做完全沒有問題谣膳。然而, 我們也可能調(diào)用一個(gè)方法铅乡,同時(shí)忽略返回值继谚;我們通常把這稱為“為它的副作用去調(diào)用一個(gè)方法”,因?yàn)槲?們關(guān)心的不是返回值阵幸,而是方法調(diào)用的其他效果花履。所以假如我們像下面這樣調(diào)用方法: f(); Java 怎樣判斷 f()的具體調(diào) 用方式呢?而且別人如何識別并理解代碼呢挚赊?由于存在這一類的問題秸妥,所以不能沟沙。函數(shù)的返回值只是作為函數(shù)運(yùn)行之后的一個(gè)“狀態(tài)”,他是保持方法的調(diào)用者與被調(diào)用者進(jìn)行通信的關(guān)鍵。并不能 作為某個(gè)方法的“標(biāo)識”惹想。

9、 char 型變量中能不能存儲一個(gè)中文漢字偏友,為什么弟晚?

char 類型可以存儲一個(gè)中文漢字,因?yàn)?Java 中使用的編碼是 Unicode(不選擇任何特定的編碼嚎朽,直接 使用字符在字符集中的編號铺纽,這是統(tǒng)一的唯一方法),一個(gè) char 類型占 2 個(gè)字節(jié)(16 比特)哟忍,所以放一個(gè)中 文是沒問題的狡门。?

補(bǔ)充:使用 Unicode 意味著字符在 JVM 內(nèi)部和外部有不同的表現(xiàn)形式陷寝,在 JVM 內(nèi)部都是 Unicode,當(dāng)這個(gè)字符被 從 JVM 內(nèi)部轉(zhuǎn)移到外部時(shí)(例如存入文件系統(tǒng)中)融撞,需要進(jìn)行編碼轉(zhuǎn)換盼铁。所以 Java 中有字節(jié)流和字符流,以及在字 符流和字節(jié)流之間進(jìn)行轉(zhuǎn)換的轉(zhuǎn)換流尝偎,如 InputStreamReader 和 OutputStreamReader饶火,這兩個(gè)類是字節(jié)流和字符 流之間的適配器類,承擔(dān)了編碼轉(zhuǎn)換的任務(wù)致扯;對于 C 程序員來說肤寝,要完成這樣的編碼轉(zhuǎn)換恐怕要依賴于 union(聯(lián)合 體/共用體)共享內(nèi)存的特征來實(shí)現(xiàn)了。

10抖僵、抽象類(abstract class)和接口(interface)有什么異同鲤看?(2017-11-16-wl) 不同:

抽象類:

1、抽象類中可以定義構(gòu)造器?

2耍群、可以有抽象方法和具體方法?

3义桂、接口中的成員全都是 public 的?

4、抽象類中可以定義成員變量?

5蹈垢、有抽象方法的類必須被聲明為抽象類慷吊,而抽象類未必要有抽象方法?

6、抽象類中可以包含靜態(tài)方法

7曹抬、一個(gè)類只能繼承一個(gè)抽象類?

接口:

1溉瓶、接口中不能定義構(gòu)造器

2、方法全部都是抽象方法?

3谤民、抽象類中的成員可以是 private堰酿、默認(rèn)、protected张足、public?

4触创、接口中定義的成員變量實(shí)際上都是常量?

5、接口中不能有靜態(tài)方法

6为牍、一個(gè)類可以實(shí)現(xiàn)多個(gè)接口

相同:?

1.不能夠?qū)嵗?/p>

2.可以將抽象類和接口類型作為引用類型?

3.一個(gè)類如果繼承了某個(gè)抽象類或者實(shí)現(xiàn)了某個(gè)接口都需要對其中的抽象方法全部進(jìn)行實(shí)現(xiàn)嗅榕,否則該類仍然需要 被聲明為抽象類

11. 抽象的(abstract)方法是否可同時(shí)是靜態(tài)的(static), 是否可同時(shí)是本地方法 (native),是否可同時(shí)被 synchronized

都不能吵聪。

抽象方法需要子類重寫凌那,而靜態(tài)的方法是無法被重寫的,因此二者是矛盾的吟逝。本地方法是由 本地代碼(如 C 代碼)實(shí)現(xiàn)的方法帽蝶,而抽象方法是沒有實(shí)現(xiàn)的,也是矛盾的。synchronized 和方法的實(shí)現(xiàn)細(xì)節(jié)有關(guān)励稳, 抽象方法不涉及實(shí)現(xiàn)細(xì)節(jié)佃乘,因此也是相互矛盾的。

12驹尼、闡述靜態(tài)變量和實(shí)例變量的區(qū)別趣避?

靜態(tài)變量: 是被 static 修飾符修飾的變量,也稱為類變量新翎,它屬于類程帕,不屬于類的任何一個(gè)對象,一個(gè)類不管創(chuàng)建多少個(gè)對象地啰,靜態(tài)變量在內(nèi)存中有且僅有一個(gè)拷貝愁拭;?

實(shí)例變量: 必須依存于某一實(shí)例,需要先創(chuàng)建對象然后通過對象才能訪問到它亏吝。靜態(tài)變量可以實(shí)現(xiàn)讓多個(gè)對 象共享內(nèi)存岭埠。

13、 ==和 equals 的區(qū)別蔚鸥?

equals 和== 最大的區(qū)別是一個(gè)是方法一個(gè)是運(yùn)算符惜论。

?==:如果比較的對象是基本數(shù)據(jù)類型,則比較的是數(shù)值是否相等止喷;如果比較的是引用數(shù)據(jù)類型馆类,則比較的是對象 的地址值是否相等。?

equals():用來比較方法兩個(gè)對象的內(nèi)容是否相等启盛。 注意:equals 方法不能用于基本數(shù)據(jù)類型的變量,如果沒有對 equals 方法進(jìn)行重寫技羔,則比較的是引用類型的變 量所指向的對象的地址僵闯。

14、 break 和 continue 的區(qū)別藤滥?

break 和 continue 都是用來控制循環(huán)的語句鳖粟。?

break 用于完全結(jié)束一個(gè)循環(huán),跳出循環(huán)體執(zhí)行循環(huán)后面的語句拙绊。

continue 用于跳過本次循環(huán)向图,執(zhí)行下次循環(huán)。

15标沪、 String s = "Hello";s = s + " world!";這兩行代碼執(zhí)行后榄攀,原始的 String 對象 中的內(nèi)容到底變了沒有?

沒有金句。

因?yàn)?String 被設(shè)計(jì)成不可變(immutable)類檩赢,所以它的所有對象都是不可變對象。在這段代碼中违寞,s 原先指 向一個(gè) String 對象贞瞒,內(nèi)容是 "Hello"偶房,然后我們對 s 進(jìn)行了“+”操作,那么 s 所指向的那個(gè)對象是否發(fā)生了改變呢军浆? 答案是沒有棕洋。這時(shí),s 不指向原來那個(gè)對象了乒融,而指向了另一個(gè) String 對象掰盘,內(nèi)容為"Hello world!",原來那個(gè)對象還存在于內(nèi)存之中簇抵,只是 s 這個(gè)引用變量不再指向它了庆杜。 通過上面的說明,我們很容易導(dǎo)出另一個(gè)結(jié)論碟摆,如果經(jīng)常對字符串進(jìn)行各種各樣的修改晃财,或者說,不可預(yù)見的修 改典蜕,那么使用 String 來代表字符串的話會引起很大的內(nèi)存開銷断盛。因?yàn)?String 對象建立之后不能再改變,所以對于每 一個(gè)不同的字符串愉舔,都需要一個(gè) String 對象來表示钢猛。這時(shí),應(yīng)該考慮使用 StringBuffer 類轩缤,它允許修改命迈,而不是每個(gè) 不同的字符串都要生成一個(gè)新的對象。并且火的,這兩種類的對象轉(zhuǎn)換十分容易壶愤。同時(shí),我們還可以知道馏鹤,如果要使用內(nèi)容 相同的字符串征椒,不必每次都 new 一個(gè) String。例如我們要在構(gòu)造器中對一個(gè)名叫 s 的 String 引用變量進(jìn)行初始化湃累, 把它設(shè)置為初始值勃救,應(yīng)當(dāng)這樣做:

1.public class Demo {

2. private String s;?

3. ...?

4. s = "Initial Value";?

5. ...

6.}

而非

1.s = new String("Initial Value");

后者每次都會調(diào)用構(gòu)造器,生成新對象治力,性能低下且內(nèi)存開銷大蒙秒,并且沒有意義,因?yàn)?String 對象不可改變宵统,所 以對于內(nèi)容相同的字符串税肪,只要一個(gè) String 對象來表示就可以了。也就說,多次調(diào)用上面的構(gòu)造器創(chuàng)建多個(gè)對象益兄,他 們的 String 類型屬性 s 都指向同一個(gè)對象锻梳。 上面的結(jié)論還基于這樣一個(gè)事實(shí):對于字符串常量,如果內(nèi)容相同净捅,Java 認(rèn)為它們代表同一個(gè) String 對象疑枯。而 用關(guān)鍵字 new 調(diào)用構(gòu)造器,總是會創(chuàng)建一個(gè)新的對象蛔六,無論內(nèi)容是否相同荆永。 至于為什么要把 String 類設(shè)計(jì)成不可變 類,是它的用途決定的国章。其實(shí)不只 String具钥,很多 Java 標(biāo)準(zhǔn)類庫中的類都是不可變的。在開發(fā)一個(gè)系統(tǒng)的時(shí)候液兽,我們 有時(shí)候也需要設(shè)計(jì)不可變類骂删,來傳遞一組相關(guān)的值,這也是面向?qū)ο笏枷氲捏w現(xiàn)四啰。不可變類有一些優(yōu)點(diǎn)宁玫,比如因?yàn)樗?的對象是只讀的,所以多線程并發(fā)訪問也不會有任何問題柑晒。當(dāng)然也有一些缺點(diǎn)欧瘪,比如每個(gè)不同的狀態(tài)都要一個(gè)對象來 代表,可能會造成性能上的問題匙赞。所以 Java 標(biāo)準(zhǔn)類庫還提供了一個(gè)可變版本佛掖,即 StringBuffer。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涌庭,一起剝皮案震驚了整個(gè)濱河市芥被,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脾猛,老刑警劉巖撕彤,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鱼鸠,死亡現(xiàn)場離奇詭異猛拴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚀狰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門愉昆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人麻蹋,你說我怎么就攤上這事跛溉。” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵芳室,是天一觀的道長专肪。 經(jīng)常有香客問我,道長堪侯,這世上最難降的妖魔是什么嚎尤? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮伍宦,結(jié)果婚禮上芽死,老公的妹妹穿的比我還像新娘。我一直安慰自己次洼,他們只是感情好关贵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卖毁,像睡著了一般揖曾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上势篡,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天翩肌,我揣著相機(jī)與錄音,去河邊找鬼禁悠。 笑死念祭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碍侦。 我是一名探鬼主播粱坤,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓷产!你這毒婦竟也來了站玄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤濒旦,失蹤者是張志新(化名)和其女友劉穎株旷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尔邓,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晾剖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梯嗽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片齿尽。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖灯节,靈堂內(nèi)的尸體忽然破棺而出循头,到底是詐尸還是另有隱情绵估,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布卡骂,位于F島的核電站国裳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏全跨。R本人自食惡果不足惜躏救,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望螟蒸。 院中可真熱鬧盒使,春花似錦、人聲如沸七嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诵原。三九已至英妓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绍赛,已是汗流浹背蔓纠。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吗蚌,地道東北人腿倚。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像蚯妇,于是被迫代替她去往敵國和親敷燎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359