java基礎(chǔ)

1、public、private、protected、friendly區(qū)別

作用域? ? ? ?當(dāng)前類? ? ? ? ? 同一package? ? ? ?子孫類? ? ? ? ? ? 其他package

public? ? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ?Y ? ? ? ? ? ? ? ? ? ? ? ? Y

protected? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? Y? ? ? ? ? ? ? ? ? ? ? ? ? N

friendly? ? ? ? ? ?Y? ? ? ? ? ? ? ? ? ? ? Y? ? ? ? ? ? ? ? ? ? N? ? ? ? ? ? ? ? ? ? ? ? ? N

private? ? ? ? ? ? Y? ? ? ? ? ? ? ? ? ? ? N? ? ? ? ? ? ? ? ? ? N? ? ? ? ? ? ? ? ? ? ? ? ? N


2安拟、方法length( )、屬性length宵喂、方法size( )

針對(duì)數(shù)組提供了length屬性來(lái)獲取數(shù)組的長(zhǎng)度

針對(duì)字符串提供了length()方法來(lái)獲取字符串的長(zhǎng)度

針對(duì)泛型集合類提供了size()方法來(lái)獲取元素的個(gè)數(shù)

3糠赦、Collection和Collections區(qū)別

java.util.Collection 是一個(gè)集合接口

Collections 是一個(gè)集合類的一個(gè)工具類/幫助類,其中提供了一系列的靜態(tài)方法,用于對(duì)集合中元素進(jìn)行排序愉棱,搜索以及線程安全等操作

4唆铐、String s=new String(‘xyz’); 創(chuàng)建了幾個(gè)object對(duì)象

總共是2個(gè)對(duì)象

public class Test?{?public static void main(String [] args)?{?

????String s1=new String("test");//創(chuàng)建2個(gè)對(duì)象,一個(gè)Class和一個(gè)堆里面?

????String s2="test";//創(chuàng)建1個(gè)對(duì)象奔滑,s2指向pool里面的"test"對(duì)象?

????String s3="test";//創(chuàng)建0個(gè)對(duì)象,指向s2指想pool里面的那個(gè)對(duì)象?

????String s4=s2;//創(chuàng)建0個(gè)對(duì)象,指向s2,s3指想pool里面的那個(gè)對(duì)象?

????String s5=new String("test");//創(chuàng)建1個(gè)對(duì)象在堆里面艾岂,注意,與s1沒關(guān)系?

????System.out.println(s2=="test");//true s2=="test"很明顯true?

????System.out.println(s2==s3);//true,因?yàn)橹赶虻亩际莗ool里面的那個(gè)"test"

????System.out.println(s2==s4);//true,同上,那么s3和s4...:)?

????System.out.println(s1==s5);//false,很明顯,false?

????System.out.println(s1==s2);//false,指向的對(duì)象不一樣,下面再說(shuō)?

????System.out.println(s1=="test");//false,難道s1!="tset"朋其?下面再說(shuō)?

????System.out.println("---------------");?

????s1=s2;?System.out.println(s1=="test");//true,下面說(shuō)?

}?

5王浴、short s1;? s1 = s1+1;是否有錯(cuò)

因?yàn)閟1+1是一個(gè)int類型,執(zhí)行第二句的時(shí)候被賦值給了short類型梅猿,而int是沒有辦法隱式轉(zhuǎn)換成short類型氓辣。會(huì)報(bào)編譯的錯(cuò)誤。

但是如果改成short s1 = 1; s1 +=1 ;就可以袱蚓。+=的運(yùn)算機(jī)制和+不同钞啸。或者把short改成long也可以正常編譯

6喇潘、Overriding和Overloading區(qū)別

方法的重寫(Overriding)和重載(Overloading)是Java多態(tài)性的不同表現(xiàn)体斩。二者多態(tài)的差別在于,重載的編譯時(shí)多態(tài)颖低,重寫是運(yùn)行時(shí)多態(tài)絮吵。重寫(Overriding)是父類與子類之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個(gè)類中多態(tài)性的一種表現(xiàn)忱屑。? ? ? ??

如果在子類中定義某方法與其父類有相同的名稱和參數(shù)蹬敲,我們說(shuō)該方法被重寫 (Overriding)? 。子類的對(duì)象使用這個(gè)方法時(shí)莺戒,將調(diào)用子類中的定義伴嗡,對(duì)它而言,父類中的定義如同被"屏蔽"了.

如果在一個(gè)類中定義了多個(gè)同名的方法从铲,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型或有不同的參數(shù)次序瘪校,則稱為方法的重載(Overloading)。不能通過(guò)訪問(wèn)權(quán)限食店、返回類型渣淤、拋出的異常進(jìn)行重載.

Override 特點(diǎn) : ?? ? ??

?????1赏寇、?override的子類的方法名稱吉嫩、參數(shù)類型必須要和父類方法的完全匹配,才能達(dá)到重寫的效果嗅定;???? ? ??

????2自娩、?override的子類的方法的返回值類型必須和?父類方法的一致,其modifier可以擴(kuò)大,不可以縮小?忙迁;?? ? ??

????3脐彩、?override的子類的方法所拋出的異常只能是父類方法拋出異常的子異常;??? ? ??

????4姊扔、被private惠奸、final等關(guān)鍵字修飾的方法是不能被override的;?

? ? 5恰梢、?一個(gè)不是用abstract標(biāo)識(shí)的方法不可以override成abstract方法佛南。

Overload 特點(diǎn) : ?? ? ? ?

????1、在使用重載時(shí)只能通過(guò)不同的參數(shù)樣式(例如嵌言,不同的參數(shù)類型嗅回,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序)摧茴;? ? ??

? ? 2绵载、方法的異常類型和數(shù)目不會(huì)對(duì)重載造成影響;???? ? ? ?

????3苛白、不能通過(guò)訪問(wèn)權(quán)限娃豹、返回類型、拋出的異常進(jìn)行重載(例如丸氛,如果某一方法在父類中是訪問(wèn)權(quán)限是priavte培愁,那么就不能在子類對(duì)其進(jìn)行重載,如果定義的話缓窜,也只是定義了一個(gè)新方法定续,而不會(huì)達(dá)到重載的效果)。

7禾锤、常見的runtime exception私股。

NullPointerException - 空指針引用異常

IllegalArgumentException? -? 傳遞非法參數(shù)異常。

ArithmeticException? ?-? ?算術(shù)運(yùn)算異常

ArrayStoreException? ?-? ?向數(shù)組中存放與聲明類型不兼容對(duì)象異常

IndexOutOfBoundsException? -? 下標(biāo)越界異常

NegativeArraySizeException? -? 創(chuàng)建一個(gè)大小為負(fù)數(shù)的數(shù)組錯(cuò)誤異常

UnsupportedOperationException? ?-? ?不支持的操作異常

ClassCastException? ?-? ?類型強(qiáng)制轉(zhuǎn)換異常

ArrayIndexOutOfBoundsException? ?-? ?數(shù)組下標(biāo)越界異常

SecturityException? ?-? 違背安全原則異常

EOFException? ?-? ?文件已結(jié)束異常

FileNotFoundException? ?-? ?文件未找到異常

NumberFormatException? ?-? ?字符串轉(zhuǎn)換為數(shù)字異常

SQLException? ?-? ?操作數(shù)據(jù)庫(kù)異常

IOException? ?-? ?輸入輸出異常

NoSuchMethodException? ?-? ?方法未找到異常

8恩掷、error和exception區(qū)別

Error和Exception都繼承自Throwable倡鲸;

二者不同之處:

Exception:

1.可以是可被控制(checked)或者不可控制(unchecked);

2.表示一個(gè)由程序員導(dǎo)致的錯(cuò)誤黄娘;

3.應(yīng)該在應(yīng)用程序級(jí)被處理峭状;

Error:

1.總是不可控制的(unchecked);

2.經(jīng)常用來(lái)表示系統(tǒng)錯(cuò)誤或者底層資源錯(cuò)誤逼争;

3.如果可能的話优床,應(yīng)該在系統(tǒng)級(jí)被捕捉;

Java 中定義了兩類異常:?

1) Checked exception: 這類異常都是Exception的子類誓焦。異常的向上拋出機(jī)制進(jìn)行處理胆敞,假如子類可能產(chǎn)生A異常,那么在父類中也必須throws A異常∫撇悖可能導(dǎo)致的問(wèn)題:代碼效率低仍翰,耦合度過(guò)高。

2) Unchecked exception: 這類異常都是RuntimeException的子類观话,雖然RuntimeException同樣也是Exception的子類予借,但是它們是非凡的,它們不能通過(guò)client code來(lái)試圖解決频蛔,所以稱為Unchecked exception 蕾羊。

Java語(yǔ)言要求java程序中(無(wú)論是誰(shuí)寫的代碼)所有拋出(throw)的異常都必須是從Throwable派生而來(lái)。當(dāng)然帽驯,實(shí)際的Java編程中龟再,由于JDK平臺(tái)已經(jīng)為我們?cè)O(shè)計(jì)好了非常豐富和完整的異常對(duì)象分類模型。因此尼变,java程序員一般是不需要再重新定義自己的異常對(duì)象利凑。而且即便是需要擴(kuò)展自定義的異常對(duì)象,也往往會(huì)從Exception派生而來(lái)嫌术。所以哀澈,對(duì)于java程序員而言,它一般只需要在它的頂級(jí)函數(shù)中catch(Exception ex)就可以捕獲出所有的異常對(duì)象度气。 所有異常對(duì)象的根基類是 Throwable 割按,Throwable從Object直接繼承而來(lái)(這是java系統(tǒng)所強(qiáng)制要求的),并且它實(shí)現(xiàn)了 Serializable接口(這為所有的異常對(duì)象都能夠輕松跨越Java組件系統(tǒng)做好了最充分的物質(zhì)準(zhǔn)備)磷籍。

從Throwable直接派生出的異常類有Exception和Error 适荣。Exception是java程序員所最熟悉的,它一般代表了真正實(shí)際意義上的異常對(duì)象的根基類院领。也即是說(shuō)弛矛, Exception 和從它派生而來(lái)的所有異常都是應(yīng)用程序能夠catch到的,并且可以進(jìn)行異常錯(cuò)誤恢復(fù)處理的異常類型。而Error則表示Java系統(tǒng)中出現(xiàn)了一個(gè)非常嚴(yán)重的異常錯(cuò)誤,并且這個(gè)錯(cuò)誤可能是應(yīng)用程序所不能恢復(fù)的贰军,例如LinkageError ,或 ThreadDeath 等

9万俗、List和Set是否繼承自Collection接口

List,Set是饮怯。??

Map不是闰歪。?

List特點(diǎn):元素有放入順序,元素可重復(fù)?

Map特點(diǎn):元素按鍵值對(duì)存儲(chǔ)硕淑,無(wú)放入順序?

Set特點(diǎn):元素?zé)o放入順序课竣,元素不可重復(fù)(注意:元素雖然無(wú)放入順序,但是元素在set中的位置是有該元素的HashCode決定的置媳,其位置其實(shí)是固定的)?

List接口有三個(gè)實(shí)現(xiàn)類:LinkedList于樟,ArrayList,Vector?

LinkedList:底層基于鏈表實(shí)現(xiàn)拇囊,鏈表內(nèi)存是散亂的迂曲,每一個(gè)元素存儲(chǔ)本身內(nèi)存地址的同時(shí)還存儲(chǔ)下一個(gè)元素的地址。鏈表增刪快寥袭,查找慢?

ArrayList和Vector的區(qū)別:ArrayList是非線程安全的路捧,效率高;Vector是基于線程安全的传黄,效率低?

Set接口有兩個(gè)實(shí)現(xiàn)類:HashSet(底層由HashMap實(shí)現(xiàn))杰扫,LinkedHashSet?

SortedSet接口有一個(gè)實(shí)現(xiàn)類:TreeSet(底層由平衡二叉樹實(shí)現(xiàn))?

Query接口有一個(gè)實(shí)現(xiàn)類:LinkList?

Map接口有三個(gè)實(shí)現(xiàn)類:HashMap,HashTable膘掰,LinkeHashMap?

HashMap非線程安全章姓,高效,支持null识埋;HashTable線程安全凡伊,低效,不支持null?

SortedMap有一個(gè)實(shí)現(xiàn)類:TreeMap?

其實(shí)最主要的是窒舟,list是用來(lái)處理序列的系忙,而set是用來(lái)處理集的。Map是知道的惠豺,存儲(chǔ)的是鍵值對(duì)

set 一般無(wú)序不重復(fù).map kv 結(jié)構(gòu) list 有序

10银还、abstract class和interface 的區(qū)別

共同點(diǎn)

A.兩者都是抽象類,都不能實(shí)例化

B.Interface實(shí)現(xiàn)類和abstract繼承類都必須實(shí)現(xiàn)抽象方法

不同點(diǎn)

A.Interface需要實(shí)現(xiàn),用implements;Abstract 需要繼承,用exends

B.一個(gè)類可以實(shí)現(xiàn)多個(gè)Interface ;一個(gè)類只能繼承一個(gè)Abstract

C.Interface強(qiáng)調(diào)功能的實(shí)現(xiàn)洁墙;Abstract強(qiáng)調(diào)從屬關(guān)系

D.Interface的所有抽象類都只有聲明沒有方法體见剩;Abstract抽象方法可以選擇實(shí)現(xiàn),也可以選擇繼續(xù)聲明為抽象方法扫俺,無(wú)需實(shí)現(xiàn)苍苞,留給子類去實(shí)現(xiàn)

interface的應(yīng)用場(chǎng)合

類與類之間需要特定的接口進(jìn)行協(xié)調(diào),而不在乎其如何實(shí)現(xiàn)狼纬。

11羹呵、是否可以繼承String類

不可以,因?yàn)镾tring類有final修飾符疗琉,而final修飾的類是不能被繼承的冈欢,實(shí)現(xiàn)細(xì)節(jié)不允許改變

12、try{}里有一個(gè)return語(yǔ)句盈简,緊跟在try后的finally里的code會(huì)不會(huì)被執(zhí)行凑耻,什么時(shí)候執(zhí)行太示,return前執(zhí)行還是return后執(zhí)行

finally中的代碼肯定會(huì)執(zhí)行,但是會(huì)先執(zhí)行try中的代碼香浩,如果try中有return类缤,那么return的東西會(huì)先放到函數(shù)棧中,然后再執(zhí)行finally中的代碼邻吭,

①餐弱、如果finally中也有return,則會(huì)直接返回并終止程序囱晴,函數(shù)棧中的return不會(huì)被完成8囹尽;

②畸写、如果finally中沒有return驮瞧,則在執(zhí)行完finally中的代碼之后,會(huì)將函數(shù)棧中的try中的return的內(nèi)容返回并終止程序

13枯芬、最有效率的方法算2*8等于幾

2*8=2 << 3剧董;

因?yàn)閷⒁粋€(gè)數(shù)左移n位,就相當(dāng)于乘以了2的n次方破停,那么翅楼,一個(gè)數(shù)乘以8只要將其左移3位即可,而位運(yùn)算cpu直接支持的真慢,效率最高毅臊,所以黑界,2乘以8等於幾的最效率的方法是2 << 3

14管嬉、兩個(gè)對(duì)象值相同朗鸠,x.equal(y)==true,但是卻可有不同的hashcode揭芍,這句話對(duì)不對(duì)

不對(duì)。

有相同的hash code這是java語(yǔ)言的定義:

1) 對(duì)象相等則hashCode一定相等店乐;

2) hashCode相等對(duì)象未必相等

15左电、值傳遞和引用傳遞

值傳遞:(形式參數(shù)類型是基本數(shù)據(jù)類型):方法調(diào)用時(shí),實(shí)際參數(shù)把它的值傳遞給對(duì)應(yīng)的形式參數(shù)潜腻,形式參數(shù)只是用實(shí)際參數(shù)的值初始化自己的存儲(chǔ)單元內(nèi)容暴心,是兩個(gè)不同的存儲(chǔ)單元娜亿,所以方法執(zhí)行中形式參數(shù)值的改變不影響實(shí)際參數(shù)的值躲舌。

引用傳遞:(形式參數(shù)類型是引用數(shù)據(jù)類型參數(shù)):也稱為傳地址约计。方法調(diào)用時(shí)沽瘦,實(shí)際參數(shù)是對(duì)象(或數(shù)組)盛卡,這時(shí)實(shí)際參數(shù)與形式參數(shù)指向同一個(gè)地址助隧,在方法執(zhí)行中,對(duì)形式參數(shù)的操作實(shí)際上就是對(duì)實(shí)際參數(shù)的操作滑沧,這個(gè)結(jié)果在方法結(jié)束后被保留了下來(lái)并村,所以方法執(zhí)行中形式參數(shù)的改變將會(huì)影響實(shí)際參數(shù)

16巍实、switch是否作用在byte、long哩牍、string上

switch可作用于char byte short int

switch可作用于char byte short int對(duì)應(yīng)的包裝類

switch不可作用于long double float boolean棚潦,包括他們的包裝類

switch中可以是字符串類型,String(JDK1.7之后才可以作用在string上)

switch中可以是枚舉類型(JDK1.5之后)

17、ArrayList和Vector區(qū)別膝昆,HashMap和Hashtable區(qū)別(了解這幾個(gè)類的底層jdk中的編碼方式)

ArrayList和HashMap是異步的丸边。Vector和HashTable是同步的。所以Vector和HashTable是線程安全的荚孵,而ArrayList和HashMap并不是線程安全的妹窖。因?yàn)橥叫枰ㄙM(fèi)機(jī)器時(shí)間,所以Vector和HashTable的執(zhí)行效率要低于ArrayList和HashMap

18处窥、GC是什么嘱吗,為什么要有GC玄组,簡(jiǎn)單介紹GC

Java有了GC滔驾,就不需要程序員去人工釋放內(nèi)存空間。當(dāng)Java虛擬機(jī)發(fā)覺內(nèi)存資源緊張的時(shí)候俄讹,就會(huì)自動(dòng)地去清理無(wú)用變量所占用的內(nèi)存空間哆致。當(dāng)然,如果需要患膛,程序員可以在Java程序中顯式地使用System.gc()來(lái)強(qiáng)制進(jìn)行一次立即的內(nèi)存清理摊阀。

19、float f=3.4是否正確

不正確踪蹬。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換胞此,如下所示:

float f=(float)3.4 或float f = 3.4f?

在java里面,沒小數(shù)點(diǎn)的默認(rèn)是int,有小數(shù)點(diǎn)的默認(rèn)是 double跃捣;

20漱牵、String和Stringbuffer的區(qū)別

(1)String:是對(duì)象不是原始類型.為不可變對(duì)象,一旦被創(chuàng)建,就不能修改它的值.對(duì)于已經(jīng)存在的String對(duì)象的修改都是重新創(chuàng)建一個(gè)新的對(duì)象,然后把新的值保存進(jìn)去.String 是final類,即不能被繼承

(2)StringBuffer:是一個(gè)可變對(duì)象,當(dāng)對(duì)他進(jìn)行修改的時(shí)候不會(huì)像String那樣重新建立對(duì)象。它只能通過(guò)構(gòu)造函數(shù)來(lái)建立對(duì)象被建立以后,在內(nèi)存中就會(huì)分配內(nèi)存空間,并初始保存一個(gè)null.向StringBuffer中付值的時(shí)候可以通過(guò)它的append方法.

21疚漆、final酣胀、finally、finalize區(qū)別

final

 當(dāng)用final修飾類的時(shí)娶聘,表明該類不能被其他類所繼承闻镶。當(dāng)我們需要讓一個(gè)類永遠(yuǎn)不被繼承,此時(shí)就可以用final修飾丸升,注意:final類中所有的成員方法都會(huì)隱式的定義為final方法铆农。

當(dāng)用final修飾方法時(shí)

  (1) 把方法鎖定,以防止繼承類對(duì)其進(jìn)行更改狡耻。

  (2) 效率顿涣,在早期的java版本中波闹,會(huì)將final方法轉(zhuǎn)為內(nèi)嵌調(diào)用。但若方法過(guò)于龐大涛碑,可能在性能上不會(huì)有多大提升精堕。因此在最近版本中,不需要final方法進(jìn)行這些優(yōu)化了蒲障。

final方法意味著“最后的歹篓、最終的”含義,即此方法不能被重寫揉阎。

注意:若父類中final方法的訪問(wèn)權(quán)限為private庄撮,將導(dǎo)致子類中不能直接繼承該方法,因此毙籽,此時(shí)可以在子類中定義相同方法名的函數(shù)洞斯,此時(shí)不會(huì)與重寫final的矛盾,而是在子類中重新地定義了新方法坑赡。

當(dāng)用final修飾變量時(shí)final成員變量表示常量烙如,只能被賦值一次,賦值后其值不再改變毅否。類似于C++中的const亚铁。

finally

????finally作為異常處理的一部分,它只能用在try/catch語(yǔ)句中螟加,并且附帶一個(gè)語(yǔ)句塊徘溢,表示這段語(yǔ)句最終一定會(huì)被執(zhí)行(不管有沒有拋出異常),經(jīng)常被用在需要釋放資源的情況下捆探。(×)(這句話其實(shí)存在一定的問(wèn)題)

????finally 語(yǔ)句塊還是沒有執(zhí)行然爆,為什么呢?因?yàn)槲覀冊(cè)?try 語(yǔ)句塊中執(zhí)行了 System.exit (0) 語(yǔ)句黍图,終止了 Java 虛擬機(jī)的運(yùn)行曾雕。那有人說(shuō)了,在一般的 Java 應(yīng)用中基本上是不會(huì)調(diào)用這個(gè) System.exit(0) 方法的雌隅。OK 翻默!沒有問(wèn)題,我們不調(diào)用 System.exit(0) 這個(gè)方法恰起,那么 finally 語(yǔ)句塊就一定會(huì)執(zhí)行嗎修械?

  再一次讓大家失望了,答案還是否定的检盼。當(dāng)一個(gè)線程在執(zhí)行 try 語(yǔ)句塊或者 catch 語(yǔ)句塊時(shí)被打斷(interrupted)或者被終止(killed)肯污,與其相對(duì)應(yīng)的 finally 語(yǔ)句塊可能不會(huì)執(zhí)行。還有更極端的情況,就是在線程運(yùn)行 try 語(yǔ)句塊或者 catch 語(yǔ)句塊時(shí)蹦渣,突然死機(jī)或者斷電哄芜,finally 語(yǔ)句塊肯定不會(huì)執(zhí)行了〖砦ǎ可能有人認(rèn)為死機(jī)认臊、斷電這些理由有些強(qiáng)詞奪理,沒有關(guān)系锄奢,我們只是為了說(shuō)明這個(gè)問(wèn)題失晴。

finalize  

  finalize()是在java.lang.Object里定義的,也就是說(shuō)每一個(gè)對(duì)象都有這么個(gè)方法拘央。這個(gè)方法在gc啟動(dòng)涂屁,該對(duì)象被回收的時(shí)候被調(diào)用。其實(shí)gc可以回收大部分的對(duì)象(凡是new出來(lái)的對(duì)象灰伟,gc都能搞定拆又,一般情況下我們又不會(huì)用new以外的方式去創(chuàng)建對(duì)象),所以一般是不需要程序員去實(shí)現(xiàn)finalize的栏账。特殊情況下帖族,需要程序員實(shí)現(xiàn)finalize,當(dāng)對(duì)象被回收的時(shí)候釋放一些資源发笔,比如:一個(gè)socket鏈接盟萨,在對(duì)象初始化時(shí)創(chuàng)建凉翻,整個(gè)生命周期內(nèi)有效了讨,那么就需要實(shí)現(xiàn)finalize,關(guān)閉這個(gè)鏈接制轰∏凹疲  使用finalize還需要注意一個(gè)事,調(diào)用super.finalize();

  一個(gè)對(duì)象的finalize()方法只會(huì)被調(diào)用一次垃杖,而且finalize()被調(diào)用不意味著gc會(huì)立即回收該對(duì)象男杈,所以有可能調(diào)用finalize()后,該對(duì)象又不需要被回收了调俘,然后到了真正要被回收的時(shí)候伶棒,因?yàn)榍懊嬲{(diào)用過(guò)一次,所以不會(huì)調(diào)用finalize()彩库,產(chǎn)生問(wèn)題肤无。?所以,推薦不要使用finalize()方法骇钦,它跟析構(gòu)函數(shù)不一樣

22宛渐、面向?qū)ο蟮奶卣?/h4>

面向?qū)ο蟮木幊陶Z(yǔ)言有封裝、繼承、抽象窥翩、多態(tài)等4個(gè)主要的特征

面向?qū)ο缶幊逃腥筇匦裕悍庋b业岁、繼承、多態(tài)

23寇蚊、String是最基本的數(shù)據(jù)類型嗎

不是

基本數(shù)據(jù)類型包括byte笔时、int、char仗岸、long糊闽、float、double爹梁、boolean和short右犹。

引用數(shù)據(jù)類型包括:類,數(shù)組,接口等(簡(jiǎn)單來(lái)說(shuō)就是除了基本數(shù)據(jù)類型之外的所有類型)

所以String?是引用數(shù)據(jù)類型

24、運(yùn)行時(shí)異常和一般異常的區(qū)別

Java提供了兩類主要的異常:運(yùn)行時(shí)異常runtime exception和一般異常checked exception姚垃。checked 異常念链。對(duì)于后者這種異常,JAVA要求程序員對(duì)其進(jìn)行catch积糯。所以掂墓,面對(duì)這種異常不管我們是否愿意,只能自己去寫一大堆catch塊去處理可能的異常看成。運(yùn)行時(shí)異常我們可以不處理君编。這樣的異常由虛擬機(jī)接管。出現(xiàn)運(yùn)行時(shí)異常后川慌,系統(tǒng)會(huì)把異常一直往上層拋吃嘿,一直遇到處理代碼。如果不對(duì)運(yùn)行時(shí)異常進(jìn)行處理梦重,那么出現(xiàn)運(yùn)行時(shí)異常之后兑燥,要么是線程中止,要么是主程序終止

不同點(diǎn):

(1)運(yùn)行時(shí)異常都是RuntimeException類及其子類異常琴拧,如NullPointerException降瞳、IndexOutOfBoundsException等。

(2)一般異常是RuntimeException以外的異常蚓胸,類型上都屬于Exception類及其子類挣饥。

1、Java異常機(jī)制:

Java把異常當(dāng)做對(duì)象來(lái)處理沛膳,并定義一個(gè)基類java.lang.Throwable作為所有異常的超類扔枫。

Java中的異常分為兩大類:錯(cuò)誤Error和異常Exception。

2于置、運(yùn)行時(shí)異常:

運(yùn)行時(shí)異常是不檢查異常茧吊,程序中可以選擇捕獲處理贞岭,也可以不處理。這些異常一般是由程序邏輯錯(cuò)誤引起的搓侄。

當(dāng)出現(xiàn)RuntimeException的時(shí)候瞄桨,我們可以不處理,總是由虛擬機(jī)接管讶踪。比如:我們從來(lái)沒有人去處理過(guò)NullPointerException異常芯侥,它就是運(yùn)行時(shí)異常,并且這種異常還是最常見的異常之一乳讥。

出現(xiàn)運(yùn)行時(shí)異常后柱查,如果沒有捕獲處理這個(gè)異常(即沒有catch),系統(tǒng)會(huì)把異常一直往上層拋云石,一直到最上層唉工,如果是多線程就由Thread.run()拋出,如果是單線程就被main()拋出汹忠。拋出之后淋硝,如果是線程,這個(gè)線程也就退出了宽菜。如果是主程序拋出的異常谣膳,那么這整個(gè)程序也就退出了。

運(yùn)行時(shí)異常是Exception的子類铅乡,也有一般異常的特點(diǎn)继谚,是可以被catch塊處理的。只不過(guò)往往我們不對(duì)他處理罷了阵幸。也就是說(shuō)花履,你如果不對(duì)運(yùn)行時(shí)異常進(jìn)行處理,那么出現(xiàn)運(yùn)行時(shí)異常之后侨嘀,要么是線程中止臭挽,要么是主程序終止捂襟。

如果不想終止咬腕,則必須捕獲所有的運(yùn)行時(shí)異常,決不讓這個(gè)處理線程退出葬荷。隊(duì)列里面出現(xiàn)異常數(shù)據(jù)了涨共,正常的處理應(yīng)該是把異常數(shù)據(jù)舍棄,然后記錄日志宠漩。不應(yīng)該由于異常數(shù)據(jù)而影響下面對(duì)正常數(shù)據(jù)的處理举反。

3、一般異常:

一般異常包括IOException扒吁、SQLException等以及用戶自定義的Exception異常火鼻。對(duì)于這種異常,JAVA編譯器強(qiáng)制要求我們必需對(duì)出現(xiàn)的這些異常進(jìn)行catch并處理,否則程序就不能編譯通過(guò)魁索。

所以融撞,面對(duì)這種異常不管我們是否愿意,只能自己去寫一大堆catch塊去處理可能的異常。

4、常見RuntimeException:

ArrayStoreException:試圖將錯(cuò)誤類型的對(duì)象存儲(chǔ)到一個(gè)對(duì)象數(shù)組時(shí)拋出的異常

ClassCastException:試圖將對(duì)象強(qiáng)制轉(zhuǎn)換為不是實(shí)例的子類時(shí)奥邮,拋出該異常

IllegalArgumentException:拋出的異常表明向方法傳遞了一個(gè)不合法或不正確的參數(shù)

IndexOutOfBoundsException:指示某排序索引(例如對(duì)數(shù)組雅采、字符串或向量的排序)超出范圍時(shí)拋出

NoSuchElementException :表明枚舉中沒有更多的元素

NullPointerException :當(dāng)應(yīng)用程序試圖在需要對(duì)象的地方使用 null 時(shí),拋出該異常

25翁脆、說(shuō)出ArrayList、Vector、Linkedlist的存儲(chǔ)性能和特性

ArrayList 是一個(gè)數(shù)組隊(duì)列抖僵。它由數(shù)組實(shí)現(xiàn),實(shí)現(xiàn)了RandomAccess, Cloneable, java.io.Serializable接口缘揪,所以可以隨便訪問(wèn)裆针,克隆,序列化寺晌,隨機(jī)訪問(wèn)效率高世吨,隨機(jī)插入、隨機(jī)刪除效率低呻征。

LinkedList 是一個(gè)雙向鏈表耘婚。它也可以被當(dāng)作堆棧、隊(duì)列或雙端隊(duì)列進(jìn)行操作陆赋。LinkedList隨機(jī)訪問(wèn)效率低沐祷,但隨機(jī)插入、隨機(jī)刪除效率低攒岛。

Vector 是矢量隊(duì)列赖临,和ArrayList一樣,它也是一個(gè)動(dòng)態(tài)數(shù)組灾锯,由數(shù)組實(shí)現(xiàn)兢榨。但是ArrayList是非線程安全的,而Vector是線程安全的顺饮。

Stack 是棧吵聪,繼承于Vector。棧的特點(diǎn)是:先進(jìn)后出(First In Last Out)兼雄。

List和Vector不同吟逝,ArrayList中的操作不是線程安全的!所以赦肋,建議在單線程中才使用ArrayList块攒,而在多線程中可以選擇Vector或者CopyOnWriteArrayList励稳。

26、heap和stack區(qū)別

要點(diǎn): 堆 : 隊(duì)列優(yōu)先,先進(jìn)先出(FIFO—first in first out)囱井。

? ? ? ? ? ? 棧 : 先進(jìn)后出

heap 和 stack有什么區(qū)別

(1)堆椔缶猓空間分配區(qū)別:

  1、棧(操作系統(tǒng)):由操作系統(tǒng)自動(dòng)分配釋放 琅绅,存放函數(shù)的參數(shù)值扶欣,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧千扶;

  2料祠、堆(操作系統(tǒng)):一般由程序員分配釋放, 若程序員不釋放澎羞,程序結(jié)束時(shí)可能由OS回收髓绽,分配方式倒是類似于鏈表。

(2)堆棧緩存方式區(qū)別:

  1妆绞、棧使用的是一級(jí)緩存顺呕, 他們通常都是被調(diào)用時(shí)處于存儲(chǔ)空間中,調(diào)用完畢立即釋放括饶;

  2株茶、堆是存放在二級(jí)緩存中,生命周期由虛擬機(jī)的垃圾回收算法來(lái)決定(并不是一旦成為孤兒對(duì)象就能被回收)图焰。所以調(diào)用這些對(duì)象的速度要相對(duì)來(lái)得低一些启盛。

(3)堆棧數(shù)據(jù)結(jié)構(gòu)區(qū)別:

  堆(數(shù)據(jù)結(jié)構(gòu)):堆可以被看成是一棵樹,如:堆排序技羔;

  棧(數(shù)據(jù)結(jié)構(gòu)):一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)僵闯。

Java中棧和堆的區(qū)別:

  棧(stack)與堆(heap)都是Java用來(lái)在Ram中存放數(shù)據(jù)的地方。與C++不同藤滥,Java自動(dòng)管理?xiàng):投驯钏冢绦騿T不能直接地設(shè)置棧或堆拙绊。

  在函數(shù)中定義的一些基本類型的變量和對(duì)象的引用變量都在函數(shù)的棧內(nèi)存中分配向图。當(dāng)在一段代碼塊定義一個(gè)變量時(shí),Java就在棧中為這個(gè)變量分配內(nèi)存空間时呀,當(dāng)超過(guò)變量的作用域后张漂,Java會(huì)自動(dòng)釋放掉為該變量所分配的內(nèi)存空間,該內(nèi)存空間可以立即被另作他用谨娜。

  堆內(nèi)存用來(lái)存放由new創(chuàng)建的對(duì)象和數(shù)組,在堆中分配的內(nèi)存磺陡,由Java虛擬機(jī)的自動(dòng)垃圾回收器來(lái)管理趴梢。在堆中產(chǎn)生了一個(gè)數(shù)組或?qū)ο蠛竽螅€可以在棧中定義一個(gè)特殊的變量,讓棧中這個(gè)變量的取值等于數(shù)組或?qū)ο笤诙褍?nèi)存中的首地址坞靶,棧中的這個(gè)變量就成了數(shù)組或?qū)ο蟮囊米兞裤灸R米兞烤拖喈?dāng)于是為數(shù)組或?qū)ο笃鸬囊粋€(gè)名稱,以后就可以在程序中使用棧中的引用變量來(lái)訪問(wèn)堆中的數(shù)組或?qū)ο蟆?/p>

Java中變量在內(nèi)存中的分配:

  1彰阴、類變量(static修飾的變量):在程序加載時(shí)系統(tǒng)就為它在堆中開辟了內(nèi)存瘾敢,堆中的內(nèi)存地址存放于棧以便于高速訪問(wèn)。靜態(tài)變量的生命周期–一直持續(xù)到整個(gè)”系統(tǒng)”關(guān)閉尿这。

  2簇抵、實(shí)例變量:當(dāng)你使用java關(guān)鍵字new的時(shí)候,系統(tǒng)在堆中開辟并不一定是連續(xù)的空間分配給變量(比如說(shuō)類實(shí)例)射众,然后根據(jù)零散的堆內(nèi)存地址碟摆,通過(guò)哈希算法換算為一長(zhǎng)串?dāng)?shù)字以表征這個(gè)變量在堆中的”物理位置”。 實(shí)例變量的生命周期–當(dāng)實(shí)例變量的引用丟失后叨橱,將被GC(垃圾回收器)列入可回收“名單”中典蜕,但并不是馬上就釋放堆中內(nèi)存。

  3罗洗、局部變量:局部變量愉舔,由聲明在某方法,或某代碼段里(比如for循環(huán))伙菜,執(zhí)行到它的時(shí)候在棧中開辟內(nèi)存屑宠,當(dāng)局部變量一但脫離作用域,內(nèi)存立即釋放仇让。

這里要涉及到Java內(nèi)存問(wèn)題典奉,可以參考:Java的內(nèi)存機(jī)制

27、排序的幾種方法丧叽,了解卫玖。(算法和數(shù)據(jù)結(jié)構(gòu)在面試的時(shí)候還沒有被問(wèn)到)

冒泡排序

public static void sort(int data[]) {

? ? for (int i = 0; i < data.length - 1; i++) {

? ? ? ? for (int j = 0; j < data.length - i - 1; j++) {

? ? ? ? ? ? if (data[j] > data[j + 1]) {

? ? ? ? ? ? ? ? int temp = data[j];

? ? ? ? ? ? ? ? data[j] = data[j + 1];

? ? ? ? ? ? ? ? data[j + 1] = temp;

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

插入排序

public static void sort(int data[]) {

? ? for (int i = 1; i < data.length; i++) {

? ? ? ? for (int j = i; j > 0; j--){

? ? ? ? ? ? if (data[j] < data[j - 1]) {

? ? ? ? ? ? ? ? int temp = data[j];

? ? ? ? ? ? ? ? data[j] = data[j - 1];

? ? ? ? ? ? ? ? data[j - 1] = temp;

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

28、Java語(yǔ)言如何進(jìn)行異常處理踊淳,throws假瞬,throw,try catch finally代表什么意義迂尝,try塊中可以拋出異常嗎

try塊表示程序正常的業(yè)務(wù)執(zhí)行代碼脱茉。如果程序在執(zhí)行try塊的代碼時(shí)出現(xiàn)了“非預(yù)期”情況,JVM將會(huì)生成一個(gè)異常對(duì)象垄开,這個(gè)異常對(duì)象將會(huì)被后面相應(yīng)的catch塊捕獲琴许。

catch塊表示一個(gè)異常捕獲塊。當(dāng)程序執(zhí)行try塊引發(fā)異常時(shí)溉躲,這個(gè)異常對(duì)象將會(huì)被后面相應(yīng)的catch塊捕獲榜田。

throw用于手動(dòng)地拋出異常對(duì)象益兄。throw后面需要一個(gè)異常對(duì)象。

throws用于在方法簽名中聲明拋出一個(gè)或多個(gè)異常類箭券,throws關(guān)鍵字后可以緊跟一個(gè)或多個(gè)異常類净捅。

finally塊代表異常處理流程中總會(huì)執(zhí)行的代碼塊。

對(duì)于一個(gè)完整的異常處理流程而言辩块,try塊是必須的蛔六,try塊后可以緊跟一個(gè)或多個(gè)catch塊,最后還可以帶一個(gè)finally塊废亭。

try塊中可以拋出異常

29国章、一個(gè)’.java’源文件是否可以包括多個(gè)類,有什么限制

這個(gè)是可以的滔以,一個(gè)“.java”源文件里面可以包含多個(gè)類捉腥,但是只允許有一個(gè)public類,并且類名必須和文件名一致你画。

每個(gè)編譯單元只能有一個(gè)public 類抵碟。這么做的意思是,每個(gè)編譯單元只能有一個(gè)公開的接口坏匪,而這個(gè)接口就由其public 類來(lái)表示拟逮。

你可以根據(jù)需要,往這個(gè)文件里面添加任意多個(gè)提供輔助功能的package 權(quán)限的類适滓。但是如果這個(gè)編譯單元里面有兩個(gè)或兩個(gè)以上的public 類的話敦迄,程序就不知道從哪里導(dǎo)入了,編譯器就會(huì)報(bào)錯(cuò)

30凭迹、是否可以從一個(gè)static方法內(nèi)部發(fā)生對(duì)非static方法調(diào)用

不可以罚屋。因?yàn)榉莝tatic方法是要與對(duì)象關(guān)聯(lián)在一起的,必須創(chuàng)建一個(gè)對(duì)象后嗅绸,

?才可以在該對(duì)象上進(jìn)行方法調(diào)用脾猛,而static方法調(diào)用時(shí)不需要?jiǎng)?chuàng)建對(duì)象,可以

?直接調(diào)用鱼鸠。也就是說(shuō)猛拴,當(dāng)一個(gè)static方法被調(diào)用時(shí),可能還沒有創(chuàng)建任何實(shí)例

?對(duì)象蚀狰,如果從一個(gè)static方法中發(fā)出對(duì)非static方法的調(diào)用愉昆,那個(gè)非static

?方法是關(guān)聯(lián)到哪個(gè)對(duì)象上的呢?這個(gè)邏輯無(wú)法成立麻蹋,所以跛溉,一個(gè)static方法內(nèi)部

?發(fā)出對(duì)非static方法的調(diào)用

31、說(shuō)出常用類、包倒谷、接口蛛蒙,各舉5個(gè)

常用的類:BufferedReader BufferedWriter FileReader FileWirter String Integer java.util.Date糙箍,System渤愁,Class,List,HashMap

常用的包:java.lang java.io java.util

java.sql ,javax.servlet,org.apache.strtuts.action,org.hibernate

常用的接口:Remote List Map Document

NodeList,Servlet,HttpServletRequest,HttpServletResponse,Transaction(Hibernate)

Session(Hibernate),HttpSession

32深夯、同步和異步區(qū)別

同步交互:指發(fā)送一個(gè)請(qǐng)求,需要等待返回,然后才能夠發(fā)送下一個(gè)請(qǐng)求抖格,有個(gè)等 ???待過(guò)程;

異步交互:指發(fā)送一個(gè)請(qǐng)求,不需要等待返回,隨時(shí)可以再發(fā)送下一個(gè)請(qǐng)求咕晋,即不需要等待雹拄。區(qū)別:一個(gè)需要等待,一個(gè)不需要等待掌呜,在部分情況下滓玖, 我們的項(xiàng)目開發(fā)中都會(huì)優(yōu)先選擇不需要等待的異步交互方式

33、簡(jiǎn)述面向?qū)ο蟮睦斫庵式叮⑴e例說(shuō)出你的理解

面向?qū)ο笫腔谌f(wàn)物皆對(duì)象這個(gè)哲學(xué)觀點(diǎn). 把一個(gè)對(duì)象抽象成類,具體上就是把一個(gè)對(duì)象的靜態(tài)特征和動(dòng)態(tài)特征抽象成屬性和方法

34势篡、繼承和實(shí)現(xiàn)的區(qū)別

表面的區(qū)別就是單繼承多實(shí)現(xiàn)

繼承:如果多個(gè)類的某個(gè)部分的功能相同,那么可以抽象出一個(gè)類出來(lái)模暗,把他們的相同部分都放到父類里禁悠,讓他們都繼承這個(gè)類。

實(shí)現(xiàn):如果多個(gè)類處理的目標(biāo)是一樣的兑宇,但是處理的方法方式不同碍侦,那么就定義一個(gè)接口,也就是一個(gè)標(biāo)準(zhǔn)隶糕,讓他們的實(shí)現(xiàn)這個(gè)接口瓷产,各自實(shí)現(xiàn)自己具體的處理方法來(lái)處理那個(gè)目標(biāo)

35、介紹Java中的Collection framework

Java collection是java提供的工具包枚驻,包含了常用的數(shù)據(jù)結(jié)構(gòu):集合濒旦、鏈表、隊(duì)列测秸、棧疤估、數(shù)組、映射等霎冯。

Java集合主要可以劃分為4個(gè)部分:List列表铃拇、Set集合、Map映射沈撞、工具類(Iterator慷荔、Arrays和Collections)。

Collection是一個(gè)interface?缠俺,Collection有List和Set兩大分支显晶。

List<E>是一個(gè)隊(duì)列贷岸,根據(jù)下標(biāo)索引,第一個(gè)元素的下標(biāo)是0磷雇,List的實(shí)現(xiàn)類有LinkedList, ArrayList, Vector, Stack偿警。List是有序的隊(duì)列,List中可以有重復(fù)的值唯笙。

Set<E>是一個(gè)集合螟蒸,SET中的值是唯一的,我們經(jīng)常會(huì)遇到List去重的問(wèn)題崩掘,把List轉(zhuǎn)為SET就可以快速實(shí)現(xiàn) Set的實(shí)現(xiàn)類有HastSet和TreeSet七嫌。HashSet。其中TreeSet是有序的苞慢。

Ma<K,V>是一個(gè)interface诵原,即key-value鍵值對(duì)。Map中的每一個(gè)元素包含“一個(gè)key”和“key對(duì)應(yīng)的value”挽放。?

AbstractMap是個(gè)抽象類绍赛,它實(shí)現(xiàn)了Map接口中的大部分API。而HashMap骂维,TreeMap惹资,WeakHashMap都是繼承于AbstractMap。

Iterator航闺。它是遍歷集合的工具褪测,我們經(jīng)常使用Iterator迭代器來(lái)遍歷集合。Collection的實(shí)現(xiàn)類都要實(shí)現(xiàn)iterator()函數(shù)潦刃,返回一個(gè)Iterator對(duì)象侮措。

抽象類AbstractCollection、AbstractList乖杠、AbstractSet分扎、AbstractMap是抽象類,他們都實(shí)現(xiàn)了各自的大部分方法胧洒,我們直接繼承Abstract類就可以省去重復(fù)編碼相同的方法 畏吓。PS當(dāng)時(shí)來(lái)面試的時(shí)候被問(wèn)到這個(gè)問(wèn)題竟然一下沒想起來(lái)。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卫漫,一起剝皮案震驚了整個(gè)濱河市菲饼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌列赎,老刑警劉巖宏悦,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡饼煞,警方通過(guò)查閱死者的電腦和手機(jī)源葫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砖瞧,“玉大人息堂,你說(shuō)我怎么就攤上這事“沤欤” “怎么了储矩?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵感耙,是天一觀的道長(zhǎng)褂乍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)即硼,這世上最難降的妖魔是什么逃片? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮只酥,結(jié)果婚禮上褥实,老公的妹妹穿的比我還像新娘。我一直安慰自己裂允,他們只是感情好损离,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绝编,像睡著了一般僻澎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上十饥,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天窟勃,我揣著相機(jī)與錄音,去河邊找鬼逗堵。 笑死秉氧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜒秤。 我是一名探鬼主播汁咏,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼作媚!你這毒婦竟也來(lái)了攘滩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掂骏,失蹤者是張志新(化名)和其女友劉穎轰驳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡级解,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年冒黑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勤哗。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抡爹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芒划,到底是詐尸還是另有隱情冬竟,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布民逼,位于F島的核電站泵殴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拼苍。R本人自食惡果不足惜笑诅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疮鲫。 院中可真熱鬧吆你,春花似錦、人聲如沸俊犯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)燕侠。三九已至者祖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贬循,已是汗流浹背咸包。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杖虾,地道東北人烂瘫。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奇适,于是被迫代替她去往敵國(guó)和親坟比。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • JAVA面試題相關(guān)基礎(chǔ)知識(shí) 1籍琳、面向?qū)ο蟮奶卣饔心男┓矫?①抽象: 抽象是忽略一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面菲宴,...
    小宇java閱讀 892評(píng)論 0 6
  • 一、小策略 說(shuō)區(qū)別的時(shí)候趋急,先單獨(dú)說(shuō)出每一個(gè)的特性喝峦,再列出相同點(diǎn)即可。 當(dāng)遇到自己不太擅長(zhǎng)的問(wèn)題的時(shí)候呜达,一定不要慌張...
    唐_方閱讀 480評(píng)論 1 3
  • (一)Java部分 1谣蠢、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,107評(píng)論 0 62
  • 深深的想起了 流水般的年華 此刻可嘆蹉跎 輕輕地夢(mèng)到了 深情般的回望 只是遠(yuǎn)了時(shí)空 夜的黑侵透遠(yuǎn)方的路途 我的心卻...
    念江子閱讀 97評(píng)論 0 2
  • 早睡早起占人體健康的百分之七十,心態(tài)查近、飲食眉踱、調(diào)理各占百分之十,我們就可以知道早睡早起的重要性了霜威。 我們白天是放電谈喳,...
    你的影子y閱讀 530評(píng)論 2 20