這才是Java基礎(chǔ)知識(shí)點(diǎn)的總結(jié)!

前言

本文主要是我之前復(fù)習(xí)Java基礎(chǔ)原理過程中寫的Java基礎(chǔ)學(xué)習(xí)總結(jié)反症。Java的知識(shí)點(diǎn)其實(shí)非常多辛块,并且有些知識(shí)點(diǎn)比較難以理解,有時(shí)候我們自以為理解了某些內(nèi)容铅碍,其實(shí)可能只是停留在表面上润绵,沒有理解其底層實(shí)現(xiàn)原理。

紙上得來終覺淺胞谈,絕知此事要躬行尘盼。筆者之前對(duì)每部分的內(nèi)容對(duì)做了比較深入的學(xué)習(xí)以及代碼實(shí)現(xiàn)憨愉,基本上比較全面地講述了每一個(gè)Java基礎(chǔ)知識(shí)點(diǎn),當(dāng)然可能有些遺漏和錯(cuò)誤卿捎,歡迎讀者指正配紫。

這里把重要的面試知識(shí)點(diǎn)都寫出來了,讓大家對(duì)知識(shí)框架有個(gè)基本輪廓午阵。

Java基礎(chǔ)學(xué)習(xí)總結(jié)

每部分內(nèi)容會(huì)重點(diǎn)寫一些常見知識(shí)點(diǎn)躺孝,方便復(fù)習(xí)和記憶,但是并不是全部內(nèi)容底桂,詳細(xì)的內(nèi)容請(qǐng)參見具體的文章地址植袍。

面向?qū)ο笕筇匦?/b>

繼承:一般類只能單繼承,內(nèi)部類實(shí)現(xiàn)多繼承籽懦,接口可以多繼承 封裝:訪問權(quán)限控制public > protected > 包 > private 內(nèi)部類也是一種封裝 多態(tài):編譯時(shí)多態(tài)于个,體現(xiàn)在向上轉(zhuǎn)型和向下轉(zhuǎn)型,通過引用類型判斷調(diào)用哪個(gè)方法(靜態(tài)分派)猫十。 運(yùn)行時(shí)多態(tài)览濒,體現(xiàn)在同名函數(shù)通過不同參數(shù)實(shí)現(xiàn)多種方法(動(dòng)態(tài)分派)。

基本數(shù)據(jù)類型

1 基本類型位數(shù)拖云,自動(dòng)裝箱贷笛,常量池?

2 例如byte類型是1byte也就是8位,可以表示的數(shù)字是-128到127宙项,因?yàn)檫€有一個(gè)0乏苦,加起來一共是256,也就是2的八次方尤筐。 32位和64位機(jī)器的int是4個(gè)字節(jié)也就是32位汇荐,char是1個(gè)字節(jié)就是8位,float是4個(gè)字節(jié)盆繁,double是8個(gè)字節(jié)掀淘,long是8個(gè)字節(jié)。?

3 基本數(shù)據(jù)類型的包裝類只在數(shù)字范圍-128到127中用到常量池油昂,會(huì)自動(dòng)拆箱裝箱革娄,其余數(shù)字范圍的包裝類則會(huì)新建實(shí)例

String及包裝類

1 String類型是final類型,在堆中分配空間后內(nèi)存地址不可變冕碟。

2 底層是final修飾的char[]數(shù)組拦惋,數(shù)組的內(nèi)存地址同樣不可變。 但實(shí)際上可以通過修改char[n] = 'a'來進(jìn)行修改安寺,不會(huì)改變String實(shí)例的內(nèi)存值厕妖,不過在jdk中,用戶無法直接獲取char[]挑庶,也沒有方法能操作該數(shù)組言秸。 所以String類型的不可變實(shí)際上也是理論上的不可變软能。所以我們?cè)诜峙銼tring對(duì)象以后,如果將其 = "abc"举畸,那也只是改變了引用的指向埋嵌,實(shí)際上沒有改變?cè)瓉淼膶?duì)象。?

3 StringBuffer和StringBuilder底層是可變的char[]數(shù)組俱恶,繼承父類AbstractStringBuilder的各種成員和方法,實(shí)際上的操作都是由父類方法來完成的范舀。

final關(guān)鍵字

1 final修飾基本數(shù)據(jù)類型保證不可變?

2 final修飾引用保證引用不能指向別的對(duì)象合是,否則會(huì)報(bào)錯(cuò)。?

3 final修飾類锭环,類的實(shí)例分配空間后地址不可變聪全,子類不能重寫所有父類方法。因此在cglib動(dòng)態(tài)代理中辅辩,不能為一個(gè)類的final修飾的函數(shù)做代理难礼,因?yàn)閏glib要將被代理的類設(shè)置為父類,然后再生成字節(jié)碼玫锋。 final修飾方法蛾茉,子類不能重寫該方法。

抽象類和接口

1 抽象類可以有方法實(shí)現(xiàn)撩鹿。 抽象類可以有非final成員變量谦炬。 抽象方法要用abstract修飾。 抽象類可以有構(gòu)造方法节沦,但是只能由子類進(jìn)行實(shí)例化键思。?

2 接口可以用extends加多個(gè)接口實(shí)現(xiàn)多繼承。 接口只能有public final類型的成員變量甫贯。 接口只能有抽象方法吼鳞,不能有方法體、 接口不能實(shí)例化叫搁,但是可以作為引用類型赔桌。

代碼塊和加載順序

假設(shè)該類是第一次進(jìn)行實(shí)例化。那么有如下加載順序 靜態(tài)總是比非靜態(tài)優(yōu)先常熙,從早到晚的順序是:?

1 靜態(tài)代碼塊 和 靜態(tài)成員變量的順序根據(jù)代碼位置前后來決定纬乍。?

2 代碼塊和成員變量的順序也根據(jù)代碼位置來決定?

3 最后才調(diào)用構(gòu)造方法構(gòu)造方法

包、內(nèi)部類裸卫、外部類

1 Java項(xiàng)目一般從src目錄開始有com...A.java這樣的目錄結(jié)構(gòu)仿贬。這就是包結(jié)構(gòu)。所以一般編譯后的結(jié)構(gòu)是跟包結(jié)構(gòu)一模一樣的墓贿,這樣的結(jié)構(gòu)保證了import時(shí)能找到正確的class引用包訪問權(quán)限就是指同包下的類可見茧泪。 import 一般加上全路徑蜓氨,并且使用.*時(shí)只包含當(dāng)前目錄的所有類文件,不包括子目錄队伟。?

2 外部類只有public和default兩種修飾穴吹,要么全局可訪問,要么包內(nèi)可訪問嗜侮。?

3 內(nèi)部類可以有全部訪問權(quán)限港令,因?yàn)樗母拍罹褪且粋€(gè)成員變量,所以訪問權(quán)限設(shè)置與一般的成員變量相同锈颗。 非靜態(tài)內(nèi)部類是外部類的一個(gè)成員變量顷霹,只跟外部類的實(shí)例有關(guān)。 靜態(tài)內(nèi)部類是獨(dú)立于外部類存在的一個(gè)類击吱,與外部類實(shí)例無關(guān)淋淀,可以通過外部類.內(nèi)部類直接獲取Class類型。

異常

1 異常體系的最上層是Throwable類 子類有Error和Exception Exception的子類又有RuntimeException和其他具體的可檢查異常。?

2 Error是jvm完全無法處理的系統(tǒng)錯(cuò)誤,只能終止運(yùn)行力喷。 運(yùn)行時(shí)異常指的是編譯正確但運(yùn)行錯(cuò)誤的異常纵装,如數(shù)組越界異常,一般是人為失誤導(dǎo)致的,這種異常不用try catch,而是需要程序員自己檢查。 可檢查異常一般是jvm處理不了的一些異常革屠,但是又經(jīng)常會(huì)發(fā)生,比如Ioexception排宰,Sqlexception等似芝,是外部實(shí)現(xiàn)帶來的異常。?

3 多線程的異常流程是獨(dú)立的板甘,互不影響党瓮。 大型模塊的子模塊異常一般需要重新封裝成外部異常再次拋出,否則只能看到最外層異常信息盐类,難以進(jìn)行調(diào)試寞奸。 日志框架是異常報(bào)告的最好幫手,log4j在跳,slf4j中枪萄,在工作中必不可少。

泛型

1 Java中的泛型是偽泛型猫妙,只在編譯期生效瓷翻,運(yùn)行期自動(dòng)進(jìn)行泛型擦除,將泛型替換為實(shí)際上傳入的類型。 泛型類用classA { }?

2 這樣的形式表示齐帚,里面的方法和成員變量都可以用T來表示類型妒牙。泛型接口也是類似的,不過泛型類實(shí)現(xiàn)泛型接口時(shí)可以選擇注入實(shí)際類型或者是繼續(xù)使用泛型对妄。?

3 泛型方法可以自帶泛型比如void <E> go(); 泛型可以使用?通配符進(jìn)行泛化 Object可以接受任何類型 也可以使用 這種方式進(jìn)行上下邊界的限制湘今。

Class類和Object類

1 Java反射的基礎(chǔ)是Class類,該類封裝所有其他類的類型信息剪菱,并且在每個(gè)類加載后在堆區(qū)生成每個(gè)類的一個(gè)Class<類名>實(shí)例摩瞎,用于該類的實(shí)例化。?

2 Java中可以通過多種方式獲取Class類型孝常,比如A.class,new A().getClass()方法以及Class.forName("com.?.?.A")方法愉豺。?

3 Object是所有類的父類,有著自己的一些私有方法茫因,以及被所有類繼承的9大方法。 知乎上有人討論Object和Class類型誰先加載誰后加載杖剪,因?yàn)槊總€(gè)類都要繼承Object冻押,但是又得先被加載到堆區(qū),事實(shí)上盛嘿,這個(gè)問題在JVM初始化時(shí)就解決了洛巢,沒必要多想。

javac和java

1 javac 是編譯一個(gè)java文件的基本命令次兆,通過不同參數(shù)可以完成各種配置稿茉,比如導(dǎo)入其他類,指定編譯路徑等芥炭。?

2 java是執(zhí)行一個(gè)java文件的基本命令漓库,通過參數(shù)配置可以以不同方式執(zhí)行一個(gè)java程序或者是一個(gè)jar包。?

3 javap是一個(gè)class文件的反編譯程序园蝠,可以獲取class文件的反編譯結(jié)果渺蒿,甚至是jvm執(zhí)行程序的每一步代碼實(shí)現(xiàn)。

反射

1 Java反射包reflection提供對(duì)Class彪薛,Method茂装,field,constructor1 等信息的封裝類型善延。?

2 通過這些api可以輕易獲得一個(gè)類的各種信息并且可以進(jìn)行實(shí)例化少态,方法調(diào)用等。 類中的private參數(shù)可以通過setaccessible方法強(qiáng)制獲取易遣。?

3 反射的作用可謂是博大精深彼妻,JDK動(dòng)態(tài)代理生成代理類的字節(jié)碼后,首先把這個(gè)類通過defineclass定義成一個(gè)類,然后用class.for(name)會(huì)把該類加載到j(luò)vm澳骤,之后我們就可以通過歧强,A.class.GetMethod()獲取其方法,然后通過invoke調(diào)用其方法为肮,在調(diào)用這個(gè)方法時(shí)摊册,實(shí)際上會(huì)通過被代理類的引用再去調(diào)用原方法。

枚舉類

1 枚舉類繼承Enum并且每個(gè)枚舉類的實(shí)例都是唯一的颊艳。?

2 枚舉類可以用于封裝一組常量茅特,取值從這組常量中取,比如一周的七天棋枕,一年的十二個(gè)月白修。?

3 枚舉類的底層實(shí)現(xiàn)其實(shí)是語法糖,每個(gè)實(shí)例可以被轉(zhuǎn)化成內(nèi)部類重斑。并且使用靜態(tài)代碼塊進(jìn)行初始化兵睛,同時(shí)保證內(nèi)部成員變量不可變。

序列化

1 序列化的類要實(shí)現(xiàn)serializable接口 transient修飾符可以保證某個(gè)成員變量不被序列化 readObject和writeOject來實(shí)現(xiàn)實(shí)例的寫入和讀取窥浪。?

2 事實(shí)上祖很,一些擁有數(shù)組變量的類都會(huì)把數(shù)組設(shè)為transient修飾,這樣的話不會(huì)對(duì)整個(gè)數(shù)組進(jìn)行序列化漾脂,而是利用專門的方法將有數(shù)據(jù)的數(shù)組范圍進(jìn)行序列化假颇,以便節(jié)省空間。

動(dòng)態(tài)代理

1 jdk自帶的動(dòng)態(tài)代理可以代理一個(gè)已經(jīng)實(shí)現(xiàn)接口的類骨稿。?

2 cglib代理可以代理一個(gè)普通的類笨鸡。?

3 動(dòng)態(tài)代理的基本實(shí)現(xiàn)原理都是通過字節(jié)碼框架動(dòng)態(tài)生成字節(jié)碼,并且在用defineclass加載類后坦冠,獲取代理類的實(shí)例形耗。 一般需要實(shí)現(xiàn)一個(gè)代理處理器,用來處理被代理類的前置操作和后置操作辙浑。在JDK動(dòng)態(tài)代理中趟脂,這個(gè)類叫做invocationHandler。?

4 JDK動(dòng)態(tài)代理首先獲取被代理類的方法例衍,并且只獲取在接口中聲明的方法昔期,生成代理類的字節(jié)碼后,首先把這個(gè)類通過defineclass定義成一個(gè)類佛玄,然后把該類加載到j(luò)vm硼一,之后我們就可以通過,A.class.GetMethod()獲取其方法梦抢,然后通過invoke調(diào)用其方法般贼,在調(diào)用這個(gè)方法時(shí),實(shí)際上會(huì)通過被代理類的引用再去調(diào)用原方法。?

5 而對(duì)于cglib動(dòng)態(tài)代理哼蛆,一般會(huì)把被代理類設(shè)為代理類的父類蕊梧,然后獲取被代理類中所有非final的方法,通過asm字節(jié)碼框架生成代理類的字節(jié)碼腮介,這個(gè)代理類很神奇肥矢,他會(huì)保留原來的方法以及代理后的方法,通過方法數(shù)組的形式保存叠洗。 cglib的動(dòng)態(tài)代理需要實(shí)現(xiàn)一個(gè)enhancer和一個(gè)interceptor甘改,在interceptor中配置我們需要的代理內(nèi)容。如果沒有配置interceptor灭抑,那么代理類會(huì)調(diào)用被代理類自己的方法十艾,如果配置了interceptor,則會(huì)使用代理類修飾過的方法腾节。

多線程

這里先不講juc包里的多線程類忘嫉。juc相關(guān)內(nèi)容會(huì)在Java并發(fā)專題講解。?

1 線程的實(shí)現(xiàn)可以通過繼承Thread類和實(shí)現(xiàn)Runable接口 也可以使用線程池案腺。callable配合future可以實(shí)現(xiàn)線程中的數(shù)據(jù)獲取庆冕。?

2 Java中的線程有7種狀態(tài),new runable running blocked waiting timewaiting terminate blocked是線程等待其他線程鎖釋放救湖。 waiting是wait以后線程無限等待其他線程使用notify喚醒 timewating是有限時(shí)間地等待被喚醒,也可能是sleep固定時(shí)間涎才。?

3 Thread的join是實(shí)例方法鞋既,比如a.join(b),則說明a線程要等b線程運(yùn)行完才會(huì)運(yùn)行。?

4 o.wait方法會(huì)讓持有該對(duì)象o的線程釋放鎖并且進(jìn)入阻塞狀態(tài)耍铜,notify則是持有o鎖對(duì)象的線程通知其他等待鎖的線程獲取鎖邑闺。notify方法并不會(huì)釋放鎖。注意這兩個(gè)方法都只能在synchronized同步方法或同步塊里使用棕兼。?

5 synchronized方法底層使用系統(tǒng)調(diào)用的mutex鎖陡舅,開銷較大,jvm會(huì)為每個(gè)鎖對(duì)象維護(hù)一個(gè)等待隊(duì)列伴挚,讓等待該對(duì)象鎖的線程在這個(gè)隊(duì)列中等待靶衍。當(dāng)線程獲取不到鎖時(shí)則讓線程阻塞,而其他檢查notify以后則會(huì)通知任意一個(gè)線程茎芋,所以這個(gè)鎖時(shí)非公平鎖颅眶。?

6 Thread.sleep(),Thread.interrupt()等方法都是類方法田弥,表示當(dāng)前調(diào)用該方法的線程的操作涛酗。 一個(gè)線程實(shí)例連續(xù)start兩次會(huì)拋異常,這是因?yàn)榫€程start后會(huì)設(shè)置標(biāo)識(shí),如果再次start則判斷為錯(cuò)誤。

IO流

1 IO流也是Java中比較重要的一塊商叹,Java中主要有字節(jié)流燕刻,字符流,文件等剖笙。其中文件也是通過流的方式打開卵洗,讀取和寫入的。?

2 IO流的很多接口都使用了裝飾者模式枯途,即將原類型通過傳入裝飾類構(gòu)造函數(shù)的方式忌怎,增強(qiáng)原類型,以此獲得像帶有緩沖區(qū)的字節(jié)流酪夷,或者將字節(jié)流封裝成字符流等等榴啸,其中需要注意的是編碼問題,后者打印出來的結(jié)果可能是亂碼哦晚岭。?

3 IO流與網(wǎng)絡(luò)編程息息相關(guān)鸥印,一個(gè)socket接入后,我們可以獲取它的輸入流和輸出流坦报,以獲取TCP數(shù)據(jù)包的內(nèi)容库说,并且可以往數(shù)據(jù)報(bào)里寫入內(nèi)容,因?yàn)門CP協(xié)議也是按照流的方式進(jìn)行傳輸?shù)钠瘢瑢?shí)際上TCP會(huì)將這些數(shù)據(jù)進(jìn)行分包處理潜的,并且通過差錯(cuò)檢驗(yàn),超時(shí)重傳字管,滑動(dòng)窗口協(xié)議等方式啰挪,保證了TCP數(shù)據(jù)包的高效和可靠傳輸。

網(wǎng)絡(luò)編程

承接IO流的內(nèi)容?

1 IO流與網(wǎng)絡(luò)編程息息相關(guān)嘲叔,一個(gè)socket接入后亡呵,我們可以獲取它的輸入流和輸出流,以獲取TCP數(shù)據(jù)包的內(nèi)容硫戈,并且可以往數(shù)據(jù)報(bào)里寫入內(nèi)容锰什,因?yàn)門CP協(xié)議也是按照流的方式進(jìn)行傳輸?shù)模瑢?shí)際上TCP會(huì)將這些數(shù)據(jù)進(jìn)行分包處理丁逝,并且通過差錯(cuò)檢驗(yàn)汁胆,超時(shí)重傳,滑動(dòng)窗口協(xié)議等方式霜幼,保證了TCP數(shù)據(jù)包的高效和可靠傳輸沦泌。?

2 除了使用socket來獲取TCP數(shù)據(jù)包外,還可以使用UDP的DatagramPacket來封裝UDP數(shù)據(jù)包辛掠,因?yàn)閁DP數(shù)據(jù)包的大小是確定的谢谦,所以不是使用流方式處理释牺,而是需要事先定義他的長度,源端口和目標(biāo)端口等信息回挽。?

3 為了方便網(wǎng)絡(luò)編程没咙,Java提供了一系列類型來支持網(wǎng)絡(luò)編程的api,比如URL類千劈,InetAddress類等祭刚。 后續(xù)文章會(huì)帶來NIO相關(guān)的內(nèi)容,敬請(qǐng)期待墙牌。

Java8

1 接口中的默認(rèn)方法涡驮,接口終于可以有方法實(shí)現(xiàn)了,使用注解即可標(biāo)識(shí)出默認(rèn)方法喜滨。?

2 lambda表達(dá)式實(shí)現(xiàn)了函數(shù)式編程捉捅,通過注解可以聲明一個(gè)函數(shù)式接口,該接口中只能有一個(gè)方法虽风,這個(gè)方法正是使用lambda表達(dá)式時(shí)會(huì)調(diào)用到的接口棒口。?

3 Option類實(shí)現(xiàn)了非空檢驗(yàn)?

4 各種api的更新,包括chm辜膝,hashmap的實(shí)現(xiàn)等?

5 Stream流概念无牵,實(shí)現(xiàn)了集合類的流式訪問,可以基于此使用map和reduce并行計(jì)算厂抖。

讀者福利:最新整理了一些Java相關(guān)學(xué)習(xí)資料茎毁,基礎(chǔ)精講視頻教程、學(xué)習(xí)手冊(cè)忱辅、面試題七蜘、開發(fā)工具等,如果你有需要耕蝉,可以添加我的QQ群:686.827.638自行來獲取下載(適合零基礎(chǔ)初學(xué)者)崔梗。

對(duì)于剛學(xué)習(xí)Java的初學(xué)者夜只,很多適合會(huì)感覺學(xué)的沒有方向垒在,越學(xué)越迷茫,這樣的情況一般都是學(xué)習(xí)方法開始就是錯(cuò)誤的扔亥。沒有把Java技術(shù)進(jìn)行專業(yè)系統(tǒng)化的學(xué)習(xí)场躯。從就業(yè)和節(jié)約時(shí)間的角度考慮,如果有誰遇到這方面的問題旅挤,你們可以加我上面的裙踢关,可以跟大家一起交流,不要一個(gè)人盲目的學(xué)粘茄,少走彎路才是學(xué)習(xí)Java最大的捷徑签舞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秕脓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子儒搭,更是在濱河造成了極大的恐慌吠架,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂鲫,死亡現(xiàn)場離奇詭異傍药,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)魂仍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門拐辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人擦酌,你說我怎么就攤上這事俱诸。” “怎么了仑氛?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵乙埃,是天一觀的道長。 經(jīng)常有香客問我锯岖,道長介袜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任出吹,我火速辦了婚禮遇伞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捶牢。我一直安慰自己鸠珠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布秋麸。 她就那樣靜靜地躺著渐排,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灸蟆。 梳的紋絲不亂的頭發(fā)上驯耻,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音炒考,去河邊找鬼可缚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛斋枢,可吹牛的內(nèi)容都是我干的帘靡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瓤帚,長吁一口氣:“原來是場噩夢啊……” “哼描姚!你這毒婦竟也來了涩赢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤轩勘,失蹤者是張志新(化名)和其女友劉穎谒主,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赃阀,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霎肯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榛斯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片观游。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖驮俗,靈堂內(nèi)的尸體忽然破棺而出懂缕,到底是詐尸還是另有隱情,我是刑警寧澤王凑,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布搪柑,位于F島的核電站,受9級(jí)特大地震影響索烹,放射性物質(zhì)發(fā)生泄漏工碾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一百姓、第九天 我趴在偏房一處隱蔽的房頂上張望渊额。 院中可真熱鬧,春花似錦垒拢、人聲如沸旬迹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奔垦。三九已至,卻和暖如春尸疆,著一層夾襖步出監(jiān)牢的瞬間椿猎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工仓技, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸵贬,地道東北人俗他。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓脖捻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親兆衅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子地沮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容