版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2.面向?qū)ο蟮睦斫?/p>
面向?qū)ο笫荍ava的基本特性,是軟件開發(fā)過程使用的基于面向過程一種思維方式,將
功能封裝進(jìn)對(duì)象,強(qiáng)調(diào)具有功能的對(duì)象和調(diào)用結(jié)果,不關(guān)注具體實(shí)現(xiàn)這個(gè)功能的過程。
面向?qū)ο筇攸c(diǎn):是一種更符合人們思考習(xí)慣的思想,可以將復(fù)雜的事情簡樸化,將程序
由執(zhí)行者轉(zhuǎn)換成為指揮者。
面向?qū)ο筇匦裕悍庋b,繼承,多態(tài)
封裝:封裝是把數(shù)據(jù)和方法包裝進(jìn)類中,隱藏其具體實(shí)現(xiàn)細(xì)節(jié),對(duì)外提供公共訪問方
法。封裝的結(jié)果是一個(gè)同時(shí)帶有特性和行為的數(shù)據(jù)類型。(安全性,復(fù)用性)
繼承:當(dāng)一個(gè)類的屬性與行為均與現(xiàn)有類相似,屬于現(xiàn)有類的一種時(shí),這一個(gè)類可以定
義為現(xiàn)有類的子類。或者,當(dāng)多個(gè)類具有相同的屬性和行為,我們可以抽取出共性的內(nèi)
容定義父類,再創(chuàng)建相似的"兄弟"類時(shí)只要繼承父類即可。當(dāng)子類繼承父類后,擁有了父
類非私有的方法并可以直接調(diào)用。假如認(rèn)為父類提供的方法不夠強(qiáng)大,子類可以按照
子類自身的邏輯重寫繼承過來的父類方法。(復(fù)用性,可維護(hù)性,多態(tài)前提)
多態(tài):繼承是多態(tài)的前提,多態(tài)是指一種事物具有多種形態(tài),比如貓具有貓類的形態(tài),也
具有動(dòng)物的形態(tài),多態(tài)的具體表現(xiàn)是父類引用指向子類對(duì)象,父類的引用也可以接受
自己子類的對(duì)象。(可維護(hù)性,擴(kuò)展性)
面試:跟我談?wù)勈裁词敲嫦驅(qū)ο?/p>
1面向?qū)ο笫腔诿嫦蜻^程的2什么是面向過程什么是面向?qū)ο?面向?qū)ο蟮奶攸c(diǎn)
3.面向?qū)ο蠛兔嫦蜻^程的區(qū)別
面向過程強(qiáng)調(diào)的是功能行為,分析解決問題所需的環(huán)節(jié),以函數(shù)為基礎(chǔ),完畢各種環(huán)節(jié)
的操作和實(shí)現(xiàn)。
面向?qū)ο笫腔诿嫦蜻^程的,將功能封裝成對(duì)象,強(qiáng)調(diào)的是具有了這些功能的對(duì)象,讓對(duì)
象去調(diào)用方法來解決問題。
面向?qū)ο笈e例
4.abstract與哪些關(guān)鍵字不能共存為什么
private:私有的方法是不可見的,無法被重寫
行naI:被final修飾的方法是最終方法,無法被重寫
static:被static修飾的方法,要隨類加載到方法區(qū),由于抽象方法沒有方
法體所以不能加載
5.static的特點(diǎn)
(1)隨著類的加載而加載;優(yōu)先于對(duì)象存在;
被所有對(duì)象所共享;可以直接被類名所調(diào)用。
(2)靜態(tài)方法只能訪問靜態(tài)徘靜態(tài)方法既可以訪問靜態(tài)也可訪問非靜態(tài)
(3)靜態(tài)方法中不可以定義this、s叩er關(guān)鍵字,由于靜態(tài)優(yōu)先于對(duì)象存
在,this和super所代表的對(duì)象還不存在。
6.類與類、類與接口、接口與接口的關(guān)系
繼承(單繼承,多層繼承,object),實(shí)現(xiàn)(多實(shí)現(xiàn)),繼承(多繼承)
7.final,fina11yxfinalize的區(qū)別
final:可以修飾類、方法和變量,被final修飾的類無法被繼承,方法無法被
重寫,變量為常量只能賦值一次
finally:異常解決,和try、catch結(jié)合使用,可以添加也可以不添加,用于執(zhí)行
一些必須執(zhí)行的代碼,如釋放資源等
finalize:Object類中的方法,其中定義了對(duì)象要被垃圾收集器回收之前要做
的相關(guān)的清理工作
8.什么是多態(tài),多態(tài)的好處和弊端
多態(tài)可以理解為事物存在的多種體現(xiàn)形態(tài)。父類的引用指向了自己的子類對(duì)象;
父類的引用也可以接受自己子類的對(duì)象。
提高了程序的可維護(hù)性和擴(kuò)展性
弊端:父類的引用只能訪問父類中有的成員而無法調(diào)用子類中特有的方法
10.wait()和sleep。的區(qū)別
(1)所在的類不同:wait是Object類中的方法,s1eep是Thread類中
的方法(2)sleep方法沒有釋放同步鎖,而wait方法釋放了同步鎖,使得
其他線程可以使用。
(3)sleep()必須指定期間,wait()可以指定也可以不指定期間。
(4)wait,notify和notifyAlI只能在同步方法或者同步代碼塊里面使用,
而sleep可以在任何地方使用
(5)sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異
常
16.對(duì)匿名內(nèi)部類的理解
匿名內(nèi)部類就是沒有名字的內(nèi)部類,是內(nèi)部類的簡化形式。一般只使用一次的時(shí)候使用
匿名內(nèi)部類,匿名內(nèi)部類本質(zhì)上是一個(gè)匿名子類對(duì)象。匿名內(nèi)部類的使用前提:內(nèi)部類繼
承一個(gè)類或?qū)崿F(xiàn)接口。匿名內(nèi)部類涉及兩個(gè)環(huán)節(jié)嗆II建一個(gè)類或者接口的子類,即亥愴?。萁?/p>
該子類的對(duì)象。簡化書寫。
17.10體系
字節(jié)流InputStream/0utputStream|-FileInputStream/FileOutput
Stream:文獻(xiàn)字節(jié)流,用于文獻(xiàn)的讀寫操作卜-BufferedlnputStream/Buffered
OutputStream:加緩沖區(qū)的字節(jié)流,用于提高效率字符流Reader/Writer|-File
Reader/FileWriter:文獻(xiàn)字符流,用于文本文獻(xiàn)的讀寫操作卜-Buffere
dReader/BufferedWrite:加緩沖區(qū)的字符流,用于提高效率轉(zhuǎn)換流InputStr
eamReader/OutputStreamWriter:是字節(jié)流和字符流之間的橋梁
18.集合體系
I-Vector:功能同ArrayList類似,底層也是數(shù)組,線程是同步的,所以是安全的,
效率較低,數(shù)據(jù)增長是50%的增長。
I--Set:元素是無序的,元素不允許反復(fù),底層用到了Map
|--HashSet:底層hash表,存儲(chǔ)的對(duì)象最佳復(fù)寫hashCode和equals方法,
I--TreeSet:底層自平衡的二叉樹,存儲(chǔ)的對(duì)象具有比較性,有兩種方法:自然排
序、匕徽器排序
l-Collection|--List:元素是有序的,元素允許反復(fù),由于該集合體系都具有索
引
|-ArrayList:底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢速度快,增刪操作較慢,線程不同步
|-LinkedList:底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢效率較低,增刪操作快,線程不同步,數(shù)據(jù)增
長是100%的增長。保證元素不會(huì)反復(fù)
|--Map:數(shù)據(jù)是以鍵值對(duì)的形式存儲(chǔ)的,有的元素存在映射關(guān)系就可以使用該集合,
|-HashMap:允許有null鍵或值,線程不同步,鍵是唯一的
|--TreeMap:元素可排序
卜-HashTabIe:類似HashM叩,不允許有null鍵或值,線程同步,元素不允許反復(fù)
21.局部變量和成員變量區(qū)別
成員變量
定義位置:類中,整個(gè)類中均可以訪問,通常用pnvate修飾。
內(nèi)存:成員變量隨著對(duì)象的建立而建立,存在于對(duì)象所在的堆內(nèi)存中。
默認(rèn)值:成員變量有默認(rèn)值。
回收:隨著對(duì)象的回收而回收。
局部變量
定義位置:定義在局部范圍,如方法內(nèi),語句內(nèi)等。
內(nèi)存:局部變量存在于棧內(nèi)存中。
默認(rèn)值:沒有默認(rèn)值。
回收:隨著作用域結(jié)束而回收,通常為語句或方法范圍。
22.同步函數(shù)與同步代碼塊的區(qū)別
同步代碼塊使用的鎖可以是任意對(duì)象。
同步函數(shù)使用的鎖是this,靜態(tài)同步函數(shù)的鎖是該類的字節(jié)碼文獻(xiàn)對(duì)象。
在一個(gè)類中只有一個(gè)同步的話,可以使用同步函數(shù)。假如有多同步,必須使用同步代
碼塊,來擬定不同的鎖。所以同步代碼塊相對(duì)靈活一些。
23.數(shù)組和集合的區(qū)別
容器長度:
集合長度可變,數(shù)組長度固定
存儲(chǔ)內(nèi)容類型:
集合存儲(chǔ)引用數(shù)據(jù)類型,數(shù)組存儲(chǔ)任意類型
是否可存儲(chǔ)不同類型數(shù)據(jù):
數(shù)組只能存儲(chǔ)同種數(shù)據(jù)類型的元素,集合可以存儲(chǔ)不同類型(鍵值)的元素。
有序可反復(fù):
數(shù)組是有序可反復(fù)的
集合中有些是有序可反復(fù)的如1ist,有些是無序不可反復(fù)的如set,m叩
24.StringBuffer和StringBui1der的區(qū)別
StringBuffer是同步的,所以線程安全,但是效率低,StringBuilder是不同步
的,所以線程不安全,但是效率高。StringBuiIder要比StringBuffer快。單線程
的程序使用StringBuilder比較好,多線程的情況下可以自己加鎖,也可以直接使用
StringBuffer?
25.String和StringBuffer區(qū)別
String對(duì)象一經(jīng)創(chuàng)建就不會(huì)發(fā)生變化了,即便是賦新值也不是在原對(duì)象的基礎(chǔ)上改
變,而是創(chuàng)建一個(gè)新的字符串對(duì)象,將引用指向這個(gè)新的對(duì)象,會(huì)導(dǎo)致空間的浪費(fèi),效率
較低。StringBuffer只創(chuàng)建一個(gè)對(duì)象,是在同一個(gè)實(shí)例的基礎(chǔ)之上追加,效率更高,
當(dāng)需要用到String的時(shí)候toString就可以了
第二部分知識(shí)點(diǎn)
26.說明Java中Stringstr=nuJ與Stringstr=""的區(qū)別?
Stringstr=nu11表達(dá)聲明了一個(gè)String對(duì)象的引用str,但是沒有為其分派
內(nèi)存空間。Stringstr=""表達(dá)創(chuàng)建了一個(gè)長度等于0的空字符串,并在內(nèi)存
中為其分派了內(nèi)存空間。
Stringstr=newString("tw");str在內(nèi)存中有兩個(gè)對(duì)象,1.堆內(nèi)存有一
個(gè)newSting
2.常量池中有一個(gè)字符串。
27.使用運(yùn)算符"=="和方法equals()進(jìn)行比較對(duì)象的區(qū)別?
使用"=="算符比較基本數(shù)據(jù)類型時(shí),比較的是值相等;使用"=="算符比較對(duì)象時(shí),比
較的是內(nèi)存地址值
使用equals()方法比較對(duì)象時(shí),比較的是對(duì)象的內(nèi)容,與地址無關(guān),假如沒有重寫
equa1s()方法就直接調(diào)用的是0bject的equals()方法。
28.接口和抽象類有何區(qū)別?
(1)成員特點(diǎn):
構(gòu)造方法:接口沒有構(gòu)造方法;抽象類有構(gòu)造方法。
成員變量:接口中只有常量;抽象類中可以是常量,也可以是變量。
成員方法:接口中只有抽象方法;抽象類中既有抽象方法,也有非抽象方法。
(2)關(guān)系特點(diǎn):
類與類:類與類之間只有單繼承,可以有多層繼承。
類與接口:類與接口之間是實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。接口與接口:接口與
接口之間是繼承關(guān)系,可以單繼承,也可以多繼承。
(3)設(shè)計(jì)理念:
接口相應(yīng)的設(shè)計(jì)模式是簡樸工廠設(shè)計(jì)模式,抽象類對(duì)象的設(shè)計(jì)模式是模板設(shè)計(jì)模式。
(5)必須實(shí)現(xiàn)抽象類或接口的所有抽象方法才可以實(shí)例化。
黑馬程序員入學(xué)面試題
32.不借用第三方變量,互換兩個(gè)變量。
n=nAm;
m=nAm;//(nAm)Am一個(gè)數(shù)異或另一個(gè)數(shù)兩次,還是得本來那個(gè)數(shù)n=nAm//nA
(nAm)
33.傳統(tǒng)for和增強(qiáng)for有什么區(qū)別呢?
1.增強(qiáng)for對(duì)集合進(jìn)行遍歷,集合不能為空。只能獲取集合元素,但是不能對(duì)集合進(jìn)行
操作。增強(qiáng)for有一個(gè)局限性,必須要有被遍歷的目的。
2.迭代器除了遍歷,還可以進(jìn)行remove集合中元素的動(dòng)作。
假如是用ListIterator,還可以在遍歷過程中進(jìn)行增刪改查的動(dòng)作。
建議在遍歷數(shù)組的時(shí)候,還是希望是用傳統(tǒng)for.由于傳統(tǒng)for可以定義角標(biāo)。
1.增強(qiáng)for循環(huán)和iterator遍歷的效果是同樣的,也就說增強(qiáng)for循環(huán)的內(nèi)部也就
是調(diào)用iteratoer實(shí)現(xiàn)的,但是增強(qiáng)for循環(huán)有些缺陷,例如不能在增強(qiáng)循環(huán)里動(dòng)態(tài)的
刪除集合內(nèi)容。不能獲取下標(biāo)等。
2.ArrayList由于使用數(shù)組實(shí)現(xiàn),因此下標(biāo)明確,最佳使用普通循環(huán)。
34.Collection和C。lecti。ns的區(qū)別是什么?
Collection是一個(gè)單列集合的頂層接口,它是List、Set.Queue等接口的父接
口。在這個(gè)接口中,定義了集合類中通用的方法。
Collections是針對(duì)集合操作的工具類,有對(duì)集合進(jìn)行排序和二分查找等靜態(tài)方法。
37.線程的狀態(tài):
線程的五種狀態(tài):
1)新建(new)用new語句創(chuàng)建的線程對(duì)處在新建狀態(tài),此時(shí)它和其它Java對(duì)象同樣,
僅僅在Heap中被分派了內(nèi)存。當(dāng)一個(gè)線程處在新建狀態(tài)時(shí),它僅僅是一個(gè)空的線程
對(duì)象,系統(tǒng)不為它分派資源。Threadt=newThread(newRunner());
2)就緒(Runnab1e)程序通過線程對(duì)象調(diào)用啟動(dòng)方法start()后,系統(tǒng)會(huì)為這個(gè)線
程分派它運(yùn)營時(shí)所需的除解決器之外的所有系統(tǒng)資源。這時(shí),它處在隨時(shí)可以運(yùn)營的
狀態(tài),在隨后的任意時(shí)刻,只要它獲得解決器即會(huì)進(jìn)入運(yùn)營狀態(tài)。t.start()
3)運(yùn)營(Running)處在這個(gè)狀態(tài)的線程占用CPU,執(zhí)行程序代碼。在并發(fā)環(huán)境中,假
如計(jì)算機(jī)只有一個(gè)CPU,那么任何時(shí)刻只會(huì)有一個(gè)線程處在這個(gè)狀態(tài)。假如計(jì)算機(jī)中
有多個(gè)CPU,那么同一時(shí)刻可以讓幾個(gè)線程占用不同的CPU,使它們都處在運(yùn)營狀態(tài),
只有處在就緒狀態(tài)的線程才有機(jī)會(huì)轉(zhuǎn)到運(yùn)營狀態(tài)。
4)阻塞(Blocked)阻塞狀態(tài)是指線程由于某些因素放棄CPU,暫時(shí)停止運(yùn)營。當(dāng)線
程處在阻塞狀態(tài)時(shí),Java虛擬機(jī)不會(huì)給線程分派CPU,直到線程重新進(jìn)入就緒狀態(tài),它
才有機(jī)會(huì)轉(zhuǎn)到運(yùn)營狀態(tài)。
阻塞狀態(tài)可分為以下3種:
位于對(duì)象等待池中的阻塞狀態(tài)(B1ockedinobject'swaitpool):當(dāng)線程處在
運(yùn)營狀態(tài)時(shí),假如執(zhí)行了某個(gè)對(duì)象的wait()方法,Java虛擬機(jī)就會(huì)把線程放到這
個(gè)對(duì)象的等待池中。
位于對(duì)象鎖池中的阻塞狀態(tài)(Blockedinobject's1ockpool):當(dāng)線程處在運(yùn)
營狀態(tài),試圖獲得某個(gè)對(duì)象的同步鎖時(shí),假如該對(duì)象的同步鎖已經(jīng)被其他線程占用,Java
虛擬機(jī)就會(huì)把這個(gè)線程放到這個(gè)對(duì)象的鎖池中。
其他阻塞狀態(tài)(OtherwiseBlocked):當(dāng)前線程執(zhí)行了sleep()方法,或者調(diào)用了
其他線程的join()方法,或者發(fā)出了1/0請(qǐng)求時(shí),就會(huì)進(jìn)入這個(gè)狀態(tài)。當(dāng)一個(gè)線程
執(zhí)行System.out.println。或者System.in.read()方法時(shí)是,就會(huì)發(fā)出一個(gè)I/。請(qǐng)
求,該線程放棄CPU,進(jìn)入阻塞狀態(tài),直到I/O解決完畢,該線程才會(huì)恢復(fù)執(zhí)行。
5)死亡(Dead)當(dāng)線程退出run()方法時(shí),就進(jìn)入死亡狀態(tài),該線程結(jié)束生命周期。線
程有也許是正常執(zhí)行完run()方法而退出,也有也許是碰到異常而退出。不管線程是
正常結(jié)束還是異常結(jié)束渚B不會(huì)對(duì)其他線程導(dǎo)致影響。
40.集合
集合名稱閱讀技巧:
JDK1.2出現(xiàn)的集合框架中常用的子類對(duì)象
前綴名是結(jié)構(gòu)名,后綴名是體系名。
ArrayList:數(shù)組結(jié)構(gòu),看到Array就知道查詢速度快,看到List就知道可以又反復(fù)
元素,可以增刪改查
LinkedList:鏈表結(jié)構(gòu),增刪快
HashSet:哈希結(jié)構(gòu),查詢速度更快,不保證有序,不可以反復(fù),必須覆蓋hashCode
和equals方法
LinkedHashSet:鏈表加哈希結(jié)構(gòu),可以實(shí)現(xiàn)有序
TreeSet:二叉樹結(jié)構(gòu),可以排序。有兩種方法:L自然排序compable,2.比較器
comparatorJava提供了只包含一個(gè)compareTo()方法的Comparable接口。這
個(gè)方法可以個(gè)給兩個(gè)對(duì)象排序。具體來說,它返回負(fù)數(shù),0,正數(shù)來表白輸入對(duì)象小于,
等于,大于已經(jīng)存在的對(duì)象。
Java提供了包含compare()和equals()兩個(gè)方法的Comparator接口。compare
()方法用來給兩個(gè)輸入?yún)?shù)排序,返回負(fù)數(shù),0,正數(shù)表白第一個(gè)參數(shù)是小于,等于,大
于第二個(gè)參數(shù)。equals()方法需要一個(gè)對(duì)象作為參數(shù),它用來決定輸入?yún)?shù)是否和
comparator相等。只有當(dāng)輸入?yún)?shù)也是一個(gè)comparator并且和當(dāng)前comparator
的排序結(jié)果是相同的時(shí)候,這個(gè)方法才返回true.
ArrayList和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)
據(jù)以便增長和插入元素,允許直接按序號(hào)索引元素.但是插入元素要涉及數(shù)組元素移動(dòng)
等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,
Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList
差,Vector屬于遺留容器,現(xiàn)在已經(jīng)不推薦使用,
LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ)(將內(nèi)存中零散的內(nèi)存單元通過附加的引用
關(guān)聯(lián)起來,形成一個(gè)可以按序號(hào)索引的線性結(jié)構(gòu),這種鏈?zhǔn)酱鎯?chǔ)方式與數(shù)組的連續(xù)存儲(chǔ)
方式相比,其實(shí)對(duì)內(nèi)存的運(yùn)用率更高),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但
是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。
由于ArrayList和LinkedListed都是非線程安全的,假如需要多個(gè)線程操作同
一個(gè)容器,可以通過工具類Co1lections中的synchronizedList方法將其轉(zhuǎn)換成
線程安全的容器后再使用(這其實(shí)是裝潢模式最佳的例子,將已有對(duì)象傳入另一個(gè)類的
構(gòu)造器中創(chuàng)建新的對(duì)象來增長新功能)。
M叩集合
Map(k,v)k:此映射所維護(hù)的鍵的類型v:映射值的類型
Map集合:雙例集合,一次存一對(duì),稱為鍵值對(duì)。要保證鍵的唯一性。
Map集合沒有迭代器,必須先將map集合轉(zhuǎn)成set集合,在使用迭代器,就可以取出
結(jié)合中的元素;或者使用map集合特有的entrySet方法,也可以取出map集合中雖
有元素。Map集合常見子類:
l.HashTab1e:底層數(shù)據(jù)結(jié)構(gòu)是哈希表結(jié)構(gòu),線程同步的,不允許null鍵,nu11值;
2.HashMap:哈希表結(jié)構(gòu),不同步,允許null鍵,null值
3.TreeMap:二叉樹結(jié)構(gòu),不同步,可以對(duì)map集合眾多鍵進(jìn)行排序。
41.為什么需要配置path,什么時(shí)候需要
答:path途徑:是操作系統(tǒng)的環(huán)境變量,目的是希望在任意目錄下都能執(zhí)行該命令操作
起來更加方便快捷;
classpath是給類提供途徑:想在其他目錄下執(zhí)行java程序時(shí)需要配置classpath
途徑。
42.工。流
輸入流:InputStream輸出流:0utputStream
字節(jié)輸入流:FiIeInputStream字節(jié)輸出流:FiIeOutoutStream
字節(jié)輸入流緩沖區(qū):BufferedInputStream字節(jié)輸出流緩沖區(qū):BufferedOutput
Stream
轉(zhuǎn)換流:InputStreamReader字符輸出流:OutputStreamWriter
字符流:FileReaderFileWriter
字符輸入流緩沖區(qū):BufferedReader字符輸出流緩沖區(qū):BufferedWriter
49.list,set,map是否繼承自collection接口?Iist,set是map不是。
50.array1ist和vector的區(qū)別。
-.同步性:vector是線程安全的,也就是說是同步的,而arraylist是線程序不
安全的,不是同步的
二.數(shù)據(jù)增長:當(dāng)需要增長時(shí),vector默認(rèn)增長為本來一培,而arraylist卻是本來
的一半
51.hashmap和hashtable的區(qū)別
一.歷史因素:hashtab1e是基于陳舊的dictionary類的,hashmap是java1.2
引進(jìn)的map接口的一個(gè)實(shí)現(xiàn)
二.同步性:hashtable是線程安全的,也就是說是同步的,而hashmap是線程序不安全
的,不是同步的
三.值:只有hashmap可以讓你將空值作為一個(gè)表的條目的key或va1ue
7:給成員變量賦值的方式有幾種?分別怎么實(shí)現(xiàn)?
答:A:給靜態(tài)的成員變量賦值
(1)可以通過類中的方法給成員變量賦值(私有成員變量的也可以)publicvoid
setXXX(){.
(2)可以通過構(gòu)造方法給成員變量賦值(私有成員變量的也可以)publicXXX。{...}
(3)可以通過代碼塊完畢成員變量的初始化值(私有成員變量的也可以){xxx=.
(4)可以通過類名.成員變量賦值
B:給非靜態(tài)的成員變量賦值
(1)可以通過類的方法賦值publicvoidsetXXX(){...}
(2)可以通過對(duì)象調(diào)用
(3)可以通過代碼塊完畢成員變量的初始化值{xxx=
如何理解字符串一旦初始化就不可以被改變。
不可以被改變說的是常量池中的值,并不是引用s(S是可以重新被賦值的)
2、Strings1=newSt門ng("abe");和Strings2="abe";兩者的區(qū)別
第一種方式:第一種方式在內(nèi)存中存在兩個(gè)"abc"字符串,一個(gè)是在常量池中,一個(gè)是在堆
內(nèi)存當(dāng)中.
第二種方式:在內(nèi)存中只存在一個(gè)"abc"在常量池中.
異常:異常是在程序運(yùn)營過程中,發(fā)生的各種不正常狀況。
Java中引入異常,以異常類Exception對(duì)這些不正常狀況進(jìn)行封裝,通過異常解決機(jī)
制對(duì)程序運(yùn)營時(shí)也許發(fā)生的各種問題進(jìn)行解決。Throwable頂層類,涉及err。r錯(cuò)
誤,Exception異常,異常分為運(yùn)營時(shí)異常和編譯時(shí)異常
解決方式:throws聲明拋出,trycatch捕獲解決』inally一定會(huì)被執(zhí)行(釋放資
源)
運(yùn)營時(shí)異常,運(yùn)營時(shí)也許會(huì)報(bào)錯(cuò),可以不解決。
編譯時(shí)異常,編譯時(shí)無法編譯通過,必須解決。
throw和throws:
throws表達(dá)拋出異常類,由方法調(diào)用者使用;throws用在方法聲明后面,跟的是異
常類名;throws后可以跟多個(gè)異常類名,用逗號(hào)隔開。
throw用在方法體內(nèi),跟的是異常對(duì)象名;表達(dá)拋出異常,由方法體內(nèi)的語句解決。只
能拋出一個(gè)異常對(duì)象名;
異常注意事項(xiàng):
子類拋出的異常比父類拋出的異常小。假如父類拋出了多個(gè)異常,子類覆蓋父類方
法時(shí),只能拋出相同的異?;蛘呤撬淖蛹?/p>
父類方法沒有拋出異常,子類覆蓋父類該方法時(shí)也不可拋出異常。此時(shí)子類產(chǎn)生該異
常,只能捕獲解決,不能聲明拋出
泛型:(提前使用未知數(shù)據(jù)類型)
什么是泛型:泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一
個(gè)參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、
泛型接口、泛型方法。
泛型替代了0bject來代表任意類型,在編譯時(shí)會(huì)擦除。
泛型類:定義:類名后(變量>使用嗆U建對(duì)象時(shí)擬定類型
泛型方法:定義:方法返回值前(變量>_使用:調(diào)用方法時(shí)擬定類型
泛型接口:定義:接口名后〈變量〉
使用:1、定義類時(shí)擬定類型,2、始終不擬定類型,直到創(chuàng)建對(duì)象時(shí)擬定類型
泛型優(yōu)點(diǎn):提高程序的安全性,將運(yùn)營期問題轉(zhuǎn)移到了編譯期,省去了類型強(qiáng)轉(zhuǎn)的麻煩,
優(yōu)化了程序設(shè)計(jì)
線程:每個(gè)運(yùn)營的程序都是一個(gè)進(jìn)程,在一個(gè)進(jìn)程中還可以有多個(gè)執(zhí)行單元同時(shí)運(yùn)營,
這些執(zhí)行單元均是程序執(zhí)行的一條條執(zhí)行途徑,這些執(zhí)行途徑就是線程,假如希望程序
中實(shí)現(xiàn)多段程序代碼同時(shí)運(yùn)營,則需要多線程技術(shù)。是由cpu高速切換執(zhí)行,java使
用的是搶占式調(diào)度模型。
L直接繼承Thread類重寫run方法,2.線程與線程執(zhí)行目的分離方式,實(shí)現(xiàn)ru
nnable接口,重寫run方法,相比較而言,2避免了1方法單繼承的局限性,且可以用多
個(gè)線程操作同一份共享數(shù)據(jù),把線程和線程數(shù)據(jù)有效的分離開,也體現(xiàn)java面向?qū)ο?/p>
思想。
此外,尚有線程池技術(shù),提交任務(wù),啟動(dòng)線程。
五種狀態(tài):
新建狀態(tài):new,??蛇\(yùn)營狀態(tài):start方法啟動(dòng),運(yùn)營狀態(tài):獲得cpu
死亡狀態(tài):run方法執(zhí)行完,Exception,error等待或阻塞狀態(tài):wait-
notify,join-調(diào)用jion的線程終止,sIeep-時(shí)間到,io阻塞方法如read-
阻塞方法返回,等待同步鎖-獲得同步鎖
線程安全問題:
當(dāng)多個(gè)線程共同操作一份數(shù)據(jù)時(shí),當(dāng)線程1操作數(shù)據(jù)到一半時(shí),線程2搶走CPU,
會(huì)導(dǎo)致"1使用的數(shù)據(jù)已經(jīng)被其他數(shù)據(jù)修改為1不想要的數(shù)據(jù)了”。
Java中使用synchronized關(guān)鍵字來解決,將一個(gè)完整動(dòng)作使用synchronized包
裹。即線程A中操作數(shù)據(jù)的代碼與線程B中操作數(shù)據(jù)的代碼均使用synchronized
包裹,并使用相同的鎖對(duì)象。這時(shí)線程B會(huì)等待線程A中synchronized包裹的代碼
執(zhí)行完畢后再執(zhí)行,此時(shí)線程已經(jīng)操作完了代碼,反之線程也會(huì)等待線程
AABo
線程執(zhí)行目的類成員位置定義多個(gè)線程要共享的同一份數(shù)據(jù)。
線程執(zhí)行目的類成員位置定義多個(gè)線程要共享的同一把鎖對(duì)象。
鎖可以是任意類型的對(duì)象,只要多個(gè)線程使用同一把鎖就可以使多個(gè)線程操作相同數(shù)據(jù)
時(shí)同步。
死鎖:兩個(gè)線程在運(yùn)營時(shí)都在等待對(duì)方的鎖,導(dǎo)致了程序的停滯,稱為死鎖。
基本數(shù)據(jù)類型包裝類:
基本類型是內(nèi)置的數(shù)據(jù)類型,為了使基本數(shù)據(jù)類型代表的數(shù)據(jù)使用起來更方便,統(tǒng)一面
向?qū)ο蟮乃枷耄琂ava設(shè)計(jì)了基本類型包裝類,即每一種基本類型都相應(yīng)一種引用類型
的包裝數(shù)據(jù)類型。除去整型與字符型,其他基本數(shù)據(jù)類型將首字母大寫即為包裝數(shù)據(jù)類
型。
自動(dòng)裝箱拆箱:jdk1.5之后
裝箱就是把基礎(chǔ)類型封裝成一個(gè)類。比如把int封裝成Integer,這時(shí)你就不能把他當(dāng)
成一個(gè)數(shù)了,而是一個(gè)類了,對(duì)他的操作就需要用它的方法了。拆箱就是把類轉(zhuǎn)換成
基礎(chǔ)類型。比如你算個(gè)加法什么的是不能用類的,就得把它轉(zhuǎn)換成基本類型
迭代器:使用迭代器完畢集合遍歷的過程是反復(fù)獲得集合中元素的過程,通常我們將這
個(gè)反復(fù)獲取的過程叫做迭代。增強(qiáng)for循環(huán)底層也是通過迭代器實(shí)現(xiàn)的。
迭代過程中不能對(duì)集合元素進(jìn)行增刪動(dòng)作,否則會(huì)發(fā)生并發(fā)修改異常(運(yùn)營時(shí))
遞歸:
遞歸就是"在一個(gè)方法內(nèi)可以再次調(diào)用自身"
遞歸調(diào)用必須要在某個(gè)條件下結(jié)束,否則就是死遞歸。
遞歸調(diào)用的層次不能太多,否則會(huì)堆棧溢出。
構(gòu)造方法不能遞歸調(diào)用。
四種訪問權(quán)限:
Private:類訪問級(jí)別
默認(rèn):包訪問級(jí)別
Protected:子類訪問級(jí)別
Public:公共訪問級(jí)別
10:
工。是output和input,是Java中實(shí)現(xiàn)程序與設(shè)備之間數(shù)據(jù)交互動(dòng)作的途徑Java
中將這種數(shù)據(jù)傳輸抽象為流。
字節(jié)流:頂層父類:outputstream,inputstream
Fi1eoutputstream,Fileinputstream,bufferedoutputstream,buffe
redinputstream
字符流:頂層父類:Writer,reader
FileWriter,FileReader,BufferedWriter,BufferedReader
轉(zhuǎn)換流:0utputStreamWriter,InputStreamReader
字節(jié)流和字符流區(qū)別:
字節(jié)流以字節(jié)為單位傳輸數(shù)據(jù),傳輸?shù)氖?101數(shù)據(jù),所以可以解決任何數(shù)據(jù),字符
流是為了方便解決文本數(shù)據(jù),通過字符碼表實(shí)現(xiàn)字符與二進(jìn)制數(shù)的轉(zhuǎn)換。
常見的字符碼表:
ASCII,Unicode,UTF-8,GBK(兼容GB2312并提供更多中文),GB2312
匿名內(nèi)部類:
匿名內(nèi)部類是創(chuàng)建某個(gè)類型子類對(duì)象的快捷方式。
匿名內(nèi)部類有兩個(gè)環(huán)節(jié):
臨時(shí)定義一個(gè)類型的子類
定義后即刻創(chuàng)建剛剛定義的這個(gè)類的對(duì)象
匿名內(nèi)部類就是沒有名字的內(nèi)部類,是內(nèi)部類的簡化形式。一般只使用一次的時(shí)候使
用匿名內(nèi)部類,匿名內(nèi)部類本質(zhì)上是一個(gè)匿名子類對(duì)象。匿名內(nèi)部類的使用前提:內(nèi)部
類繼承一個(gè)類或?qū)崿F(xiàn)接口。匿名內(nèi)部類涉及兩個(gè)環(huán)節(jié):創(chuàng)建一個(gè)類或者接口的子類,即刻
創(chuàng)建該子類的對(duì)象。簡化書寫。
網(wǎng)絡(luò)通信協(xié)議:在計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行連接和通信的規(guī)則。對(duì)數(shù)據(jù)的傳輸格式,傳輸速率,
傳輸環(huán)節(jié)等有統(tǒng)一的規(guī)定,通信雙方需要同時(shí)遵守才干完畢數(shù)據(jù)互換。
IP地址:網(wǎng)絡(luò)通信中計(jì)算機(jī)設(shè)備的唯一標(biāo)記
端口:用于標(biāo)記計(jì)算機(jī)設(shè)備中接受數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用程序具體是哪一個(gè),有效端口0~6
5535,0~1024為系統(tǒng)端口及保存端口
TCP與UDP:
UDP:面向無連接,是不可靠協(xié)議,不能保證數(shù)據(jù)完整性,不安全。每個(gè)數(shù)據(jù)報(bào)限制在
64k以內(nèi),發(fā)送數(shù)據(jù)較少,速度快,視頻。
TCP:面向連接的通信協(xié)議,通過三次握手建立連接通路,是可靠協(xié)議,保證數(shù)據(jù)安全,
可進(jìn)行大量的數(shù)據(jù)傳輸,速度慢,效率較低。
OSI和TCP/IP模型:
OSI:應(yīng)用層,表達(dá)層,會(huì)話層,。傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層
TCP/IP:應(yīng)用層。傳輸層,網(wǎng)際層,主機(jī)至網(wǎng)絡(luò)層
網(wǎng)絡(luò)編程:
在Internet上的主機(jī)一般運(yùn)營了多個(gè)服務(wù)軟件,同時(shí)提供幾種服務(wù)。每種服務(wù)都打開
一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口相應(yīng)于不同的服務(wù)。
Socket就是為網(wǎng)絡(luò)編程提供的一種機(jī)制,又叫套接字編程。特點(diǎn):
網(wǎng)絡(luò)編程三要素:IP(網(wǎng)絡(luò)通信中計(jì)算機(jī)設(shè)備的唯一標(biāo)記),端口(用于表達(dá)計(jì)算機(jī)中接受
網(wǎng)絡(luò)數(shù)據(jù)的應(yīng)用程序是哪一個(gè)),通信協(xié)議(客戶端和服務(wù)器之間連接和通信的規(guī)則,
通常使用TCP/IP,三次握手建立連接)
通信的兩端都有Socket。
網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信。
數(shù)據(jù)在兩個(gè)Socket間通過10傳輸。
Socket編程一般使用TCP與UDP兩種協(xié)議,我們重要使用TCP:TCP協(xié)議通過三
次握手協(xié)議將客戶端與服務(wù)器端連接,兩端使用各自的Socket對(duì)象。Socket對(duì)象中包
含了IO流,供數(shù)據(jù)傳輸。
數(shù)據(jù)庫:
L數(shù)據(jù)庫就是存儲(chǔ)數(shù)據(jù)的倉庫,其本質(zhì)是一個(gè)文獻(xiàn)系統(tǒng),數(shù)據(jù)按照特定的格式將數(shù)據(jù)存
儲(chǔ)起來,用戶可以對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增長,修改,刪除及查詢操作。比如
MySQL,Oracle,SQLServer,DB2等等。
2.數(shù)據(jù)庫是真正存儲(chǔ)數(shù)據(jù)的地方。
數(shù)據(jù)庫中以表為組織單位存儲(chǔ)數(shù)據(jù),類似于java中的類。
根據(jù)表字段鎖規(guī)定的數(shù)據(jù)類型,可以向其中添加數(shù)據(jù),表中的每條數(shù)據(jù)類似于對(duì)象。
SQL語句是用于我們和數(shù)據(jù)庫進(jìn)行交互的命令,完畢增刪改查等等。
數(shù)據(jù)定義語言:DDL,用來定義數(shù)據(jù)庫對(duì)象:數(shù)據(jù)庫,表,列等,例如創(chuàng)建、刪除、修
改:數(shù)據(jù)庫、表結(jié)構(gòu)等;數(shù)據(jù)操作語言:DML,用來對(duì)數(shù)據(jù)庫中表的記錄進(jìn)行更新,例如:
增、刪、改表記錄;數(shù)據(jù)控制語言:DCL,用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級(jí)別,及創(chuàng)建
用戶;數(shù)據(jù)查詢語言:簡稱DQL,用來查詢數(shù)據(jù)庫中表的記錄。
具體命令查文檔
JDBC用于完畢在Java代碼中操作數(shù)據(jù)庫。作用:連接數(shù)據(jù)庫;向數(shù)據(jù)庫發(fā)送SQL語
句;操作SQL語句的返回結(jié)果
JDBC連接數(shù)據(jù)庫過程:
導(dǎo)入mysql的驅(qū)動(dòng)程序jar包
通過DriverManager注冊(cè)驅(qū)動(dòng)
通過DriverManager獲取連接對(duì)象Connection
通過Connection獲取一個(gè)可以向數(shù)據(jù)庫發(fā)送sql語句的對(duì)象Statement
通過Statement對(duì)象執(zhí)行sql語句(select)得到一個(gè)結(jié)果集ResultSet
遍歷結(jié)果集Resu11Set,得到數(shù)據(jù)表中的數(shù)據(jù)
釋放資源
JDBC優(yōu)點(diǎn):
Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須
寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)營。
接口和抽象類:
抽象類即不能創(chuàng)建實(shí)例的類,僅用來描述一種類型應(yīng)當(dāng)具有的基本特性與功能。
抽象方法即只有功能聲明,沒有功能主體實(shí)現(xiàn)的方法。
包含抽象方法的類一定是抽象類。
接口是功能的集合,是比抽象類更為抽象的類,同樣是一種數(shù)據(jù)類型,定義的是一種規(guī)
則。必須實(shí)現(xiàn)抽象類或接口的所有抽象方法才可以實(shí)例化。
區(qū)別:
(1)成員特點(diǎn):
構(gòu)造方法:接口沒有構(gòu)造方法;抽象類有構(gòu)造方法。
成員變量:接口中只有常量;抽象類中可以是常量,也可以是變量。
成員方法:接口中只有抽象方法;抽象類中既有抽象方法,也有非抽象方法。
(2)關(guān)系特點(diǎn):
類與類:類與類之間只有單繼承,可以有多層繼承。
類與接口:類與接口之間是實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。接口與接口:接口
與接口之間是繼承關(guān)系,可以單繼承,也可以多繼承。
抽象類被繼承體現(xiàn)的是所屬關(guān)系isa關(guān)系,抽象類中定義的是繼承體系中的共性功
能;接口被實(shí)現(xiàn)體現(xiàn)的是likea關(guān)系,接口中定義的是繼承體系中的擴(kuò)展功能。
接口特點(diǎn):
Java支持繼承一個(gè)類同時(shí)實(shí)現(xiàn)多個(gè)接口。
接口可以繼承接口。
類可以在繼承一個(gè)類的同時(shí),實(shí)現(xiàn)多個(gè)接口。
接口與父類的功能可以反復(fù),均代表要具有某種功能。
接口中的成員是固定的:
變量修飾符為:pub1icstaticfinal(static與final明天講解)
方法修飾符為:publicabstract(所以重寫接口方法時(shí),必須使用public)
方法重寫與方法重載:
所謂方法重載是指在一個(gè)類中,多個(gè)方法的方法名相同,但是參數(shù)列表不同。參數(shù)列表不同
指的是參數(shù)個(gè)數(shù)、參數(shù)類型或者參數(shù)的N頁序不同。構(gòu)造方法就是重載形式存在的。
重載注意事項(xiàng):
方法名相同,參數(shù)列表不同(參數(shù)個(gè)數(shù)、參數(shù)類型或者參數(shù)的順序不同),與返回值無
關(guān)。
當(dāng)子類繼承父類后,擁有了父類非私有的方法并可以直接調(diào)用。假如認(rèn)為父類提供的
方法不夠強(qiáng)大,子類可以按照子類自身的邏輯重新定義繼承過來的父類方法,這個(gè)重新
定義一個(gè)方法的過程叫做方法重寫。
重寫的結(jié)果是子類的方法便將父類的方法覆蓋。一般情況下,繼承就是為了方法重寫,
不重寫子類和父類同樣就沒故意義了。
Java中方法重寫規(guī)則:
訪問權(quán)限相同或子類方法權(quán)限更大
方法名稱和參數(shù)列表必須相同
返回值為基本類型時(shí)必須相同
返回值為引用類型時(shí)相同或子類小
構(gòu)造方法的特點(diǎn)?構(gòu)造方法的注意事項(xiàng)?
構(gòu)造方法的特點(diǎn):1.方法名與類名相同2.沒有返回值類型,連void都沒有
構(gòu)造方法注意事項(xiàng):
假如我們沒有給出構(gòu)造方法,系統(tǒng)將自動(dòng)提供一個(gè)無參構(gòu)造方法
假如我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的無參構(gòu)造方法。
注意:這個(gè)時(shí)候,假如我們還想使用無參數(shù)構(gòu)造方法,就必須自己給出。建議永遠(yuǎn)自己
給出無參數(shù)構(gòu)造方法。
This和super:
this:
訪問本類對(duì)象成員變量
調(diào)用本類普通方法
本類構(gòu)造方法調(diào)用本類其他構(gòu)造
super:
訪問本類對(duì)象當(dāng)中的父類成員變量
調(diào)用本類對(duì)象當(dāng)中的父類普通方法
本類構(gòu)造方法調(diào)用父類構(gòu)造
注意:
this與super在調(diào)用構(gòu)造方法時(shí),均必須在第一行,只能調(diào)用其中的一個(gè)。
3.對(duì)象內(nèi)存圖
For,while,dowhile:
循環(huán)變量作用域for循環(huán)的循環(huán)變量其作用域僅限于循環(huán)體內(nèi),而While循
環(huán)的循環(huán)變量作用域不局限在循環(huán)體內(nèi)。2.循環(huán)條件for循環(huán)的循環(huán)條件為
空是是死循環(huán),而while循環(huán)的循環(huán)條件不能為空。3.dowhile無論條件是
否滿足,循環(huán)體至少執(zhí)行一次。
Break,continue,return:
break:(1).結(jié)束當(dāng)前整個(gè)循環(huán),執(zhí)行當(dāng)前循環(huán)下邊的語句。忽略循環(huán)體中
任何其它語句和循環(huán)條件測(cè)試。(2).只能跳出一層循環(huán),假如你的循環(huán)是嵌套
循環(huán),那么你需要按照你嵌套的層次,逐步使用break來跳出。[逐層判斷,
逐步跳出](3).break在循環(huán)體內(nèi),強(qiáng)行結(jié)束循環(huán)的執(zhí)行,也就是結(jié)束整個(gè)
循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立,直接轉(zhuǎn)向循環(huán)語句下面的語
句。(4).當(dāng)break出現(xiàn)在循環(huán)體中的Switch語句體內(nèi)時(shí),其作用只是跳出
該switch語句體??偟膩碚f:就近原則,結(jié)束當(dāng)前的整個(gè)循環(huán)。2.cont
inue:終止本次循環(huán)的執(zhí)行,即跳過當(dāng)前這次循環(huán)中continue語句后尚
未執(zhí)行的語句,接著進(jìn)行下一次循環(huán)條件的判斷。3.return:結(jié)束方法,帶參
返回一個(gè)值給調(diào)用者。
類與對(duì)象的關(guān)系:
具有相同特性(屬性)和行為(功能)的一類事物的抽象。,體現(xiàn)的是現(xiàn)實(shí)事物的映射關(guān)
系,對(duì)象是類的具體實(shí)例。
類的使用是創(chuàng)建對(duì)象,一個(gè)類可以有多個(gè)對(duì)象,可以說創(chuàng)建對(duì)象是類最重要的使用方
式。
String,StringBuffer,StringBuilder:
String是不可變的字符序列,String對(duì)象一經(jīng)創(chuàng)建就不會(huì)發(fā)生變化了,即便是賦新
值也不是在原對(duì)象的基礎(chǔ)上改變,而是創(chuàng)建一個(gè)新的字符串對(duì)象,將引用指向這個(gè)新的
對(duì)象,會(huì)導(dǎo)致空間的浪費(fèi),效率較低。StringBuffer只創(chuàng)建一個(gè)對(duì)象,是在同一個(gè)實(shí)例
的基礎(chǔ)之上追加,效率更高,當(dāng)需要用到String的時(shí)候toString就可以了
StringBuffer和StringBuilder的區(qū)別
StringBuffer是同步的,所以線程安全,但是效率低,StringBuiIder是不同步
的,所以線程不安全,但是效率高。StringBui1der要比StringBuffer快。單線程
的程序使用StringBui1der比較好,多線程的情況下可以自己加鎖,也可以直接使用S
tringBuffero
什么時(shí)候使用字符串緩沖區(qū):數(shù)據(jù)多,個(gè)數(shù)無所謂擬定,類型無所謂擬定,只要最后都轉(zhuǎn)
變成字符串,就用字符串緩沖區(qū)。
對(duì)于三者使用的總結(jié):
效率:StringBuilder>StringBuffer>String
String中的對(duì)象是不可變的,也可以理解為常量,線程安全,效率低;
StringBuffer和StringBuilder是可變的。StringBuffer是同步的,所以線程安
全,但是效率低,StringBui1der是不同步的,所以線程不安全,但是效率高。
1)假如要操作少量的數(shù)據(jù)用String
2)單線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù)StringBuilder
3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年農(nóng)業(yè)跨境投資合規(guī)操作指南
- 2026年農(nóng)用傳感器部署維護(hù)技巧
- 2026浙江臺(tái)州市立醫(yī)院招聘高層次衛(wèi)技人員28人備考題庫及1套參考答案詳解
- 2026河南漯河市源匯區(qū)農(nóng)信聯(lián)社寒假實(shí)習(xí)生招募15人備考題庫及參考答案詳解1套
- 2026湖南郴州市桂陽縣縣直事業(yè)單位選聘5人備考題庫及完整答案詳解1套
- 2026年農(nóng)業(yè)信貸風(fēng)控模型構(gòu)建方法
- 職業(yè)噪聲工人心血管健康管理的實(shí)踐指南
- 職業(yè)健康監(jiān)護(hù)檔案與危害因素監(jiān)測(cè)數(shù)據(jù)整合分析
- 馬鞍山2025年安徽馬鞍山師范高等專科學(xué)校招聘緊缺專業(yè)碩士21人筆試歷年參考題庫附帶答案詳解
- 職業(yè)人群高血脂的飲食干預(yù)方案
- 市安全生產(chǎn)例會(huì)制度
- 高新區(qū)服務(wù)規(guī)范制度
- 小程序維護(hù)更新合同協(xié)議2025
- 中國自有品牌發(fā)展研究報(bào)告2025-2026
- 地形測(cè)量投標(biāo)標(biāo)書技術(shù)設(shè)計(jì)書
- 2025及未來5年馬桶水箱組合項(xiàng)目投資價(jià)值分析報(bào)告
- 合伙建廠合同協(xié)議書
- 代建合同安全協(xié)議書
- 貸款掛靠合同(標(biāo)準(zhǔn)版)
- 學(xué)生手機(jī)理性使用教育教案
- 統(tǒng)編版(2024)七年級(jí)上冊(cè)歷史期末復(fù)習(xí)知識(shí)點(diǎn)講義
評(píng)論
0/150
提交評(píng)論