Java總結——數(shù)據(jù)類型

基本數(shù)據(jù)類型與引用類型

????????Java是面向對象的語言炕婶,在java中一切都可以視為對象裸影。然而注整,為什么卻會引入基本數(shù)據(jù)類型這樣一個明顯不是對象的元素呢?個人覺得有兩個方面的原因:一是邏輯上的必然結果宵溅;二是對計算機本身結構的妥協(xié)凌简。
????????面向對象編程的基本原則:一切都是對象;對象可以分解為對象(我胡說的层玲,沒有驗證過)号醉。這意味著反症,對象的組成成分也是對象辛块,每個對象都是由其他對象構成的。然而在實際編程時铅碍,卻是自底向上的構建更復雜的對象润绵,而不是自頂向下的逐步分解對象。但是在這個規(guī)則下胞谈,卻沒辦法找到這樣底層對象尘盼,因為它還可以分解為更底層的。這樣烦绳,在邏輯上就陷入了尋找最細粒度對象的死循環(huán)中卿捎。

????????解決辦法就是破壞規(guī)則:

  1. 引入一種不可分割的元素,它不是對象径密,并且最“底層”的對象完全由這種元素構成午阵,這樣就破壞了規(guī)則一;
  2. 或者使一些對象不可以繼續(xù)分割享扔,其他對象都有這種對象構建而成底桂,這就破壞了規(guī)則二。兩種方案的共同點是終止“對象可以無限分割”這個死循環(huán)惧眠。

????????顯然Java采用了第一種方案籽懦,在語法中加入了基本數(shù)據(jù)類型這種非對象元素。Java的前輩氛魁,SmallTalk語言采用了方案二暮顺。表面上看厅篓,SmallTalk中似乎一切都是對象了,被稱為“純面向對象”語言拖云。然而贷笛,這是構建在一種特殊對象基礎之上的,這些基礎對象是否真的符合對象的定義值得懷疑宙项。其他所謂“純面向對象”的語言同理乏苦。
????????Java采用方案一的另一個原因是受制于計算機的結構。長期實踐中尤筐,編程領域基本上形成了一些基本的數(shù)據(jù)類型汇荐,如int,float盆繁,char等掀淘,這些基本數(shù)據(jù)類型可以被計算機很好的支持,甚至計算機中的很多指令都是和這些數(shù)據(jù)類型耦合的油昂。所以任何一門編程語言革娄,都逃脫不了基本數(shù)據(jù)類型的限制。Java在此基礎上冕碟,規(guī)定了8種基本數(shù)據(jù)類型拦惋,作為所有對象的基礎;當然java的基本數(shù)據(jù)類型是與平臺無關的安寺,屏蔽了底層細節(jié)厕妖,比如int類型無論在哪種機器上對外表現(xiàn)都是四個字節(jié)。其他“純面向對象”的語言挑庶,最底層對象本質上就是這些基本數(shù)據(jù)類型言秸,只不過稍微加了一層包裝,讓其看起來像個對象而已迎捺。
????????Java為什么沒采用方案二呢举畸?這是考慮到了執(zhí)行效率,直接使用計算機原生的數(shù)據(jù)類型凳枝,比將其包裝成對象運算要快得多——因為原生數(shù)據(jù)類型可以直接保存到棧上抄沮,而對象則保存在堆上,通過保存到棧上的指針或引用去獲取——顯然獲取對象數(shù)據(jù)因為繞了一個彎范舀,而損失了一部分效率合是。

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

在java中一共有8種基本數(shù)據(jù)類型,其中整數(shù)類型有四種:byte锭环,short聪全,int,long辅辩;浮點數(shù)類型:float难礼,double娃圆;布爾類型:boolean;字符類型:char蛾茉。

byte

byte類型表示一個整數(shù)讼呢, 一個byte類型的變量可以存放一個字節(jié)的數(shù)據(jù),一個字節(jié)等于8個比特谦炬,即1 Byte = 8 bit悦屏,所以可以表示的數(shù)的范圍就是0000 0000 ~ 1111 1111。而java中所有的數(shù)字類型都是有符號數(shù)键思,于是開頭的比特位用來表示正負础爬,0代表正數(shù),1代表負數(shù)吼鳞。所以實際能表示的數(shù)的范圍是:1111 1111 ~ 0111 1111看蚜,用十進制表示就是 -127 ~ 127。這好像跟教材說的不一樣:難道不應該是 -128 ~ 127 赔桌?這是因為剛才所述使用的是二進制的原碼表示法供炎,簡單直接,容易理解疾党。然而Java使用的是補碼表示法音诫,在形式上,負數(shù)需要在原碼的基礎上將各個數(shù)據(jù)bit位取反(不包括符號bit位)仿贬,然后加1纽竣;而正數(shù)繼續(xù)使用原碼墓贿。于是 -127應該用二進制表示應該是1000 0001茧泪,127則是0111 1111。1000 0001可以繼續(xù)減1得到1000 0000, 所以下限應該是 -128(即-127 - 1)聋袋;但0111 1111卻不能再加1了队伟,因為
0111 1111 + 1 = 1000 0000 = -127
這意味著,一旦采用了補碼表示法(限定二進制長度為8位)幽勒,從邏輯上嗜侮,1000 0000只能表示-127, 而不是128。
0 = -127 + 127 = 1000 0001 + 0111 1111 = 1 0000 0000 = 0000 0000 (溢出啥容,舍去最高位)
-1 = -128 + 127 = 1000 0000 + 0111 1111 = 1111 1111
注意锈颗,這里說的僅僅是補碼表示法的表面運算規(guī)則,而底層原理請參考這篇文章咪惠。
byte類型是最小的數(shù)據(jù)類型击吱,只有一個字節(jié),即8個比特遥昧。雖然表示信息的最小單位是比特覆醇,但是計算機操作信息的最小單位卻是字節(jié)朵纷,即每次運算時,都是一次性操作至少一個字節(jié)永脓,因為以比特為操作單位的話袍辞,太浪費效率了。所以常摧,無論是內存還是硬盤搅吁,或者CPU,傳輸信息時落午,都是以字節(jié)為單位似芝,即使存在一定的浪費(有些信息用不了一個字節(jié)的容量)。
在實際編程中板甘,很少有直接操作byte變量的場景党瓮;使用byte一般都是直接定義一個byte數(shù)組,用來存放二進制數(shù)據(jù)盐类,比如典型的IO操作寞奸。直接操作byte的畫風可能是這樣的:

public class Byte {
    public static void main(String[] args) {
        byte b = 128;
    }
}

編譯結果如下:

Byte.java:5: 錯誤: 不兼容的類型: 從int轉換到byte可能會有損失
        byte b = 128;
                 ^
1 個錯誤

這是因為整型數(shù)字的字面量默認都是int類型(4個字節(jié))的,如果賦值給比int類型短的的類型(byte和short等)在跳,這個字面值的范圍必須要在要求類型的范圍內枪萄,比如byte類型的變量只能賦值-128~127之間的整數(shù),超出這個范圍就會編譯報錯猫妙。
另外瓷翻,還可以用十六進制數(shù)字直接給整型變量賦值,這是從Java SE7開始有的特性割坠,如:

byte a = 0x1f

語法上齐帚,十六進制數(shù)以“0x”開頭,大小寫隨意彼哼,后面的十六進制數(shù)字同樣如此对妄。這里稍微說一下字節(jié)和十六進制的關系,一個字節(jié)8個位敢朱,而一個十六進制數(shù)字最多要用4個位表示(2的 4次 方剪菱,正好16),故而一個字節(jié)可以容納兩個十六進制數(shù)字拴签。

short

short類型表示一個有符號整數(shù)孝常, 一個short類型的變量可以存放兩個字節(jié)的數(shù)據(jù),所以可以表示的數(shù)的范圍就是0000 0000 0000 0000 ~ 1111 1111 1111 1111蚓哩,翻譯成補碼形式的十進制就是-32768~32767构灸。
short類型在平時的編碼中還是很少用到的,沒有必要為了節(jié)省空間而特意使用short類型杖剪。
下面寫個程序驗證一下冻押,short是不是真的只占兩個字節(jié)驰贷。

package com.explore;

public class Size {
    public static void main(String[] args) {
        System.out.println(Runtime.getRuntime().freeMemory());
        short[] tmp = new short[10000];
        for (int i = 0; i < tmp.length; i++) {
            tmp[i] = 1;
        }
        System.out.println(Runtime.getRuntime().freeMemory());
    }
}

上面的程序中吊圾,Runtime.freeMemory()方法可以獲取到當前jvm進程所擁有的空閑內存稳强。注意官还,這個內存是總內存属愤,包括堆內存和棧內存等翅帜。第一次打印到第二次打印之間颅夺,占用內存的包括一個short類型數(shù)組以及這個數(shù)組的引用拳亿。其中引用享怀,也就是tmp變量分配在棧上漓库,數(shù)組本身分配在堆中恃慧。而for循環(huán)中定義的臨時變量i,在for循環(huán)結束后就釋放了(google一下局部變量的作用域與生存期)渺蒿,相當于沒有占用內存痢士。
執(zhí)行過程如下:

?  java javac com/explore/Size.java                    
?  java java -Xms1025k -Xmx1025k -cp . com.explore.Size
1174728
1154712

執(zhí)行的時候,通過-Xms和-Xmx參數(shù)限定了jvm的堆內存就是1025K茂装,這個數(shù)值是能讓jvm啟動的最小值(還沒研究過這個值是怎么來的)怠蹂。打印結果表明數(shù)組以及數(shù)組引用一共占據(jù)了20016個字節(jié)的空間∩偬可以猜到城侧,引用占了16個字節(jié),數(shù)組占了20000個字節(jié)彼妻;而數(shù)組中存放了10000個short類型的整數(shù)嫌佑,所以每個short類型的變量占用兩個字節(jié)。
為了證明上述猜想侨歉,將程序中的數(shù)組長度改為5000,再次執(zhí)行的結果如下:

?  java javac com/explore/Size.java                    
?  java java -Xms1025k -Xmx1025k -cp . com.explore.Size
1174728
1164712

就是一個二元一次方程組屋摇,解出來即可。
注意为肮,上述程序中摊册,數(shù)組的長度不可太小肤京,否則測試將出現(xiàn)偏差颊艳,具體原因尚未明確。同樣的道理也可以測出其他基本類型的實際容量或大小忘分。 另外棋枕,在JDK1.8中,基本類型的包裝類有個BYTES屬性妒峦,直接指明了其對應的基本類型所占據(jù)的字節(jié)數(shù)重斑;JDK1.5添加的SIZE屬性也指明了所占據(jù)的位數(shù)。

int

int屬于最常使用的整數(shù)類型肯骇,而且java中規(guī)定了整數(shù)的字面量默認就是int類型的窥浪。int類型占用四個字節(jié)祖很,其能表示的整數(shù)范圍是:0000 0000 0000 0000 0000 0000 0000 0000 ~ 1111 1111 1111 1111 1111 1111 1111 1111,翻譯成十進制就是 -2147483648 ~ 2147483647漾脂,大概是-21.47億到21.47億假颇,大部分情況下用到的數(shù)不會超出這個范圍。
上面提到了字面量這個概念骨稿,什么是字面量笨鸡?說白了,字面量就是值坦冠。我們常說給變量賦值形耗,變量的本質是內存的一塊空間,而字面量就是這塊空間存放的具體內容辙浑。字面量表示的是一個固定的值激涤,代表了程序中初始的輸入或狀態(tài)。一個程序中判呕,不可能所有的元素都是變量昔期,它總是需要從外界獲取初始的輸入——網(wǎng)卡,鍵盤佛玄,或者直接在代碼中預先定義硼一。離開計算機領域,字面量就是人類日常書寫用到的全部文字梦抢,包括數(shù)字以及字符串般贼;只是到了計算機領域后,需要嚴格的和變量等其他編程元素區(qū)別開來奥吩。字面量是人類和計算機直接溝通交流的方式哼蛆。

long

long類型也是比較經(jīng)常使用的整數(shù)類型,尤其是數(shù)目比較大以至于int無法容納時霞赫。long類型占用8個字節(jié)腮介,能表示的整數(shù)范圍是:-9223372036854775808~9223372036854775807,大概是922.33億億端衰,真的好大叠洗,我寫代碼遇到過使用long類型的場合一般也就是各種數(shù)據(jù)庫表的id字段了。
從編譯器的角度旅东,源代碼就是一堆字符串灭抑,字面量和變量都是這堆字符串中的符號而已,只是有的符號被編譯成變量有的被編譯成字面量抵代,取決于編譯器的實現(xiàn)腾节。上面提到java中整數(shù)類型的字面量,其默認的類型是int。那么給long類型的變量賦值的時候案腺,字面量的值如果超過了int類型多能表示的范圍時庆冕,需要在數(shù)字后面添加l或L(建議大寫,容易識別)劈榨,以表明這個數(shù)字字面量是long類型的愧杯。如下:

long a = 2147483648L

char

char類型的變量代表一個字符,雖然在底層存儲的時候還是二進制鞋既,然而取出來解讀的時候力九,卻表示成一個字符。比如下面這段代碼:

char a = 't';
System.out.println(a);

最終打印到屏幕上的邑闺,會是字符“t”跌前。這其中用到了兩種技術:字符編碼和字符集,那是另一個話題了陡舅。
在語法上抵乓,字符字面量需要用單引號括起來,這是因為源代碼本身已經(jīng)是字符(串)了靶衍,所以要在源碼中表示另外的‘字符’灾炭,需要加以區(qū)別,告訴編譯器這個字符是字符字面量颅眶,而不是其他語法元素蜈出。字符串用雙引號括起來是一樣的道理。

char類型和byte類型的大小是一樣的涛酗,都是1個字節(jié)铡原。

boolean

boolean類型表示布爾變量,在java中商叹,它的值只能是兩個字面量之一:true或false燕刻,或者這個兩個單詞的全大寫。這種類型表示邏輯判斷中的真假剖笙,在C語言中卵洗,任何非0值都可以表示為true,而0表示false弥咪;或者null表示false过蹂,非null表示true;但是在Java中酪夷,真值被單獨抽象出來榴啸,成為一個類型,不再用其他類型“兼職”晚岭。boolean類型的大小同樣可以通過上面的程序測試出來,結果是1 byte勋功。

float

float類型的變量用來存放浮點數(shù)坦报,大小為4個字節(jié)库说。先說下浮點數(shù)在計算機中的二進制表示法,再確定它所能表示的數(shù)的范圍片择。參考了阮一峰的文章潜的,浮點數(shù)二進制采用科學計數(shù)法,公式如下:
V = (-1) ^ s * M * 2 ^ E
其中:
(-1) ^ s決定正負字管,s為0時是正數(shù)啰挪;s為1時是負數(shù);
(2) 2 ^ E 代表指數(shù)嘲叔,其中E是無符號整數(shù)亡呵,也就是只包含正數(shù)和0;
(3) M 代表有效數(shù)字硫戈,且 1<= M < 2锰什。
float類型占用4個字節(jié),也就是32個bit丁逝,它們是這樣分配的:第一個bit代表符號汁胆,就是s的值;接下來的8位代表指數(shù)霜幼,也就是E的值嫩码;剩下的23位代表有效數(shù)字,也就是M的值罪既。

由于M>=1谢谦,而E>=0,所以M * 2 ^ E >= 1萝衩,這樣就沒辦法表示0和1之間的小數(shù)回挽,所以E的取值必須包含負數(shù),方法就是增加一個偏移量P猩谊,P的大小是2 ^ (t - 1) - 1千劈,t表示E所占用的bit位數(shù),偏移的方向是負牌捷。也就是墙牌,在計算指數(shù)部分的時候,實際的大小為2 ^ (E - P)暗甥。對于float類型喜滨,P=2^(8-1) -1 = 127,而E的范圍是0~255撤防,所以冪數(shù)e的范圍是-127~128虽风。

1<= M < 2的意思是,通過將原數(shù)左移或右移,使得其總是只保留一位整數(shù)數(shù)字辜膝,例如原數(shù)是11.01011无牵,可以將其右移一位變成1.101011,對應的指數(shù)部分同時擴大2倍厂抖,整體大小保持不變茎毁。由于整數(shù)部分是固定的1,于是可以將其省略,M只保存小數(shù)部分忱辅,取值的時候七蜘,自動加1即可,這樣可以多出來一個bit墙懂,提高精度橡卤。
但是有幾種特殊情況,指數(shù)取偏移的方法就行不通了垒在,需要特殊處理:
(1)E全為1,如果此時M也全為0,則V表示正負無窮大蒜魄;否則,M不全為0,則V不是一個數(shù)场躯,用NaN表示谈为。這意味著,上面的e不可能取到128踢关。
(2)E全為0,則此時e = 1 - P = -126伞鲫,計算M時不再加1,這樣是為了表示0以及非常接近0的數(shù)。

舉個例子:
有個整數(shù)轉換成二進制后是101.11001签舞,那么存儲它的時候秕脓,首先移位:1.0111001 * 2 ^ 2,然后指數(shù)部分的E = 2 + 127 = 129儒搭,尾數(shù)部分的M = 0111001吠架,符號是0,所以V = 01000000 10111001 00000000 00000000
逆運算也是簡單的搂鲫,這里就不舉例了傍药。然后談一談二進制和十進制小數(shù)之間的轉換。比如101.11轉換成十進制應該是:1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 + 1 * 2 ^ (-1) + 1 * 2 ^ (-2) = 5.75魂仍,顯然小數(shù)部分是一個無窮級數(shù)1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ……拐辽,用這個級數(shù)去無限逼近想要的小數(shù),但是除了一些特殊的小數(shù)之外擦酌,絕大部分都只是近似俱诸,而且由于M的長度是有限的,所以也不可能無限逼近赊舶,只能有限逼近睁搭。比如計算機其實無法真正的表達0.1赶诊,只能用0.0625 + 0.03125 + ...去近似,這也算是二進制的弊端吧介袜。

了解了浮點數(shù)在計算機中的存儲機制后甫何,下面將探討一下float類型的范圍出吹,方便起見遇伞,只討論V > 0的情況,負數(shù)只需取反即可捶牢。首先需要確定float可以表示的最小的正數(shù)鸠珠,顯然指數(shù)的下限只能是2 ^ (-126),尾數(shù)M此時小于1秋麸,所以只保留最后一個bit位是1即可(其他bit都是0)渐排,由上面的例子可知,此時M = 2 ^ (-23)灸蟆,從而得出V的最小值是2 ^ (-149)驯耻。小于這個數(shù)float就無能為力了;當然炒考,即使大于這個數(shù)可缚,float能表示的數(shù)也是不連續(xù)的,絕大部分只能近似斋枢。對于最大值帘靡,指數(shù)部分不可能取到 2 ^ 128,最大只能是2 ^ 127瓤帚,而尾數(shù)M全為1描姚,整體(加1后)也是小于2的(這個無窮級數(shù)收斂到1),于是最大值就是2 ^ 128(小于)戈次。
參考文章
綜上轩勘,float變量V的取值范圍是 -2 ^ 128 < V <= -2 ^ (-149) || V = 0 || 2 ^ (-149) <= V < 2 ^ 128
另外在語法上,浮點數(shù)的字面量怯邪,其默認類型為double绊寻,所以給float類型的變量賦值時,需要在字面量的后面加上大寫或小寫的字母“f”擎颖。
計算機的存儲資源是有限的榛斯,而浮點數(shù)也就是數(shù)學中的實數(shù)是無限的,所以計算機中的浮點數(shù)其實是對實數(shù)的近似搂捧,而非完全相等驮俗,這就產(chǎn)生了精度的問題。比如允跑,兩個浮點數(shù)之間做比較王凑,不能直接使用==運算符搪柑,這將產(chǎn)生誤差。如下:

System.out.println(1f == 0.99f);
System.out.println(1f == 0.99999999f);

將打印如下結果:

false
true

再比如浮點數(shù)的運算結果不能輕易取用:

System.out.println(0.01f + 0.05f);
System.out.println(1.0f - 0.9f);

直接取用可能會造成嚴重后果索烹,尤其是在商業(yè)計算中:

0.060000002
0.100000024

double

double類型同float類型一樣工碾,用來表示浮點數(shù),但是它有8個字節(jié)百姓,所以能表示的數(shù)的范圍更大一些渊额,精度也更高。double類型的8個字節(jié)是這么使用的: 首bit依舊表示符號垒拢,指數(shù)部分占據(jù)11位旬迹,剩下的52位是尾數(shù)。
計算規(guī)則同float求类,所以可以得出double類型浮點數(shù)的范圍是:

  • 2 ^ 1024 < V <= - 2 ^ (- 1074) || V =0 || 2 ^ (- 1074) <= V < 2 ^ 1024

關于上面提到的精度問題奔垦,有以下幾種解決方案:
(1)運算使用BigDecimal類,犧牲一定的運算速度尸疆,但是提升了精度椿猎;
(2)比較大小,可以直接使用“<”和“>”寿弱;
(3)比較相等犯眠,不能直接使用“==”,可以考慮Math.abs()方法脖捻,包裝類的一些api阔逼,如:
Double.compare(d1, d2) == 0)
Double.doubleToLongBits(d1) == Double.doubleToLongBits(d2)
Double.valueOf(d1).equals(d2)

引用類型(對象)

引用類型的變量并不是對象的本身,可以將其視為保存了一個地址地沮,通過這個地址嗜浮,就能找到對象在內存中的起始位置。地址也是數(shù)據(jù)摩疑,所以引用類型的變量也需要占據(jù)一定的內存空間危融,但是這個空間有多大呢?這個問題可以等同于雷袋,內存到底有多大吉殃?
但是內存的大小不是確定的,隨時可以通過添加內存條的方式來擴大內存楷怒,這時內存地址顯然更多了蛋勺,那么原來的引用類型變量是否足夠大以便容納新增的地址范圍呢?
通過上面的測試程序鸠删,可以得出在我的電腦上抱完,引用類型變量的大小是4個字節(jié)。然而刃泡,java是跨平臺的語言巧娱,所以無論在什么樣的機器上碉怔,引用類型的變量的大小是固定的,都將是4個字節(jié)禁添。
然而撮胧,固定的空間大小如何來應對內存的變化呢?我猜一種可能是老翘,引用類型變量所存儲的地址其實是抽象的芹啥,不是真實的物理地址,最后將由操作系統(tǒng)映射到真實物理地址上酪捡,所以不用擔心內存大小的變化叁征。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末纳账,一起剝皮案震驚了整個濱河市逛薇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疏虫,老刑警劉巖永罚,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卧秘,居然都是意外死亡呢袱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門翅敌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羞福,“玉大人,你說我怎么就攤上這事蚯涮≈巫ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵遭顶,是天一觀的道長张峰。 經(jīng)常有香客問我,道長棒旗,這世上最難降的妖魔是什么喘批? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮铣揉,結果婚禮上饶深,老公的妹妹穿的比我還像新娘。我一直安慰自己逛拱,他們只是感情好敌厘,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橘券,像睡著了一般额湘。 火紅的嫁衣襯著肌膚如雪卿吐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天锋华,我揣著相機與錄音嗡官,去河邊找鬼。 笑死毯焕,一個胖子當著我的面吹牛衍腥,可吹牛的內容都是我干的。 我是一名探鬼主播纳猫,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼婆咸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芜辕?” 一聲冷哼從身側響起尚骄,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侵续,沒想到半個月后倔丈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡状蜗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年需五,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片轧坎。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宏邮,死狀恐怖,靈堂內的尸體忽然破棺而出缸血,到底是詐尸還是另有隱情蜜氨,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布属百,位于F島的核電站记劝,受9級特大地震影響,放射性物質發(fā)生泄漏族扰。R本人自食惡果不足惜厌丑,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渔呵。 院中可真熱鬧怒竿,春花似錦、人聲如沸扩氢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽录豺。三九已至朦肘,卻和暖如春饭弓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背媒抠。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工弟断, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趴生。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓阀趴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苍匆。 傳聞我的和親對象是個殘疾皇子刘急,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向對象的用電信息數(shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,954評論 6 13
  • 1 關鍵字 1.1 關鍵字的概述 Java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型浸踩,或...
    哈哈哎呦喂閱讀 652評論 0 0
  • 在一個方法內部定義的變量都存儲在棧中叔汁,當這個函數(shù)運行結束后,其對應的棧就會被回收民轴,此時攻柠,在其方法體中定義的變量將不...
    Y了個J閱讀 4,416評論 1 14
  • 再次向大家問好,很高興能透過微信平臺來跟大家做這樣一個分享和交流后裸,雖然我也是多次坐在講臺上或者站在講臺上,但是...
    菲亞Faya閱讀 1,045評論 0 1
  • 無論怎樣冒滩,都應該學會保護自己微驶、但對事物和他人也要有鋒芒的善良。我很慶幸還有被輕易感動落淚的人开睡、
    木瑾Dr閱讀 1,381評論 0 0