1.String,StringBuffer與StringBuilder的區(qū)別
1. 字符串廣泛應(yīng)用在Java 編程中,在 Java 中字符串屬于對象窑邦,Java 提供了?String 類來創(chuàng)建和操作字符串鞋怀。但是String的值是不可變的,這就導(dǎo)致每次對String的操作都會生成新的String對象,這樣不僅效率低下传货,而且大量浪費(fèi)有限的內(nèi)存空間。
2. 為了應(yīng)對經(jīng)常性的字符串相關(guān)的操作宏娄,谷歌引入了兩個新的類——StringBuffer類和StringBuild類來對此種變化字符串進(jìn)行處理问裕,和String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改孵坚,并且不產(chǎn)生新的未使用對象僻澎。StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)十饥。由于?StringBuilder 相較于 StringBuffer 有速度優(yōu)勢,所以多數(shù)情況下建議使用StringBuilder 類祖乳。然而在應(yīng)用程序要求線程安全的情況下逗堵,則必須使用StringBuffer 類。
3. ?String:不可變字符序列
????StringBuffer: 可變字符序列眷昆,效率低蜒秤,線程安全
????StringBuilder: 可變字符序列,效率高亚斋,線程不安全
4.(1)如果要操作少量的數(shù)據(jù)用 String作媚;
(2)多線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) StringBuffer;
(3)單線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù)StringBuilder帅刊。
2.抽象類與接口的區(qū)別
接口interface關(guān)鍵字纸泡,他是公開的,里面方法與變量不可以是私有的赖瞒,接口的存在就是被其他類去使用女揭,抽象類可以擁有自己私有方法和私有變量。接口的出現(xiàn)解決了java不能多重繼承的問題栏饮。
1吧兔、我們可以這么認(rèn)為抽象類是對類的抽象,接口是行為的抽象袍嬉,所以接口相較更為抽象境蔼。
2、設(shè)計層次不同伺通,抽象類是一種自下而上的設(shè)計箍土,先有子類才能提取出公共的屬性與行為,抽象出父類罐监。接口是一種自上而下的設(shè)計涮帘,先規(guī)定行為方法,只要可以實(shí)現(xiàn)這些行為笑诅,就可以成為接口的實(shí)現(xiàn)類调缨。
3疮鲫、派生關(guān)系的不同,抽象類與其派生類是一種“is-a”弦叶,說明其父類子類本質(zhì)是相同的俊犯。接口與其實(shí)現(xiàn)類是一種“l(fā)ike-a”即父類與派生子類的關(guān)系只是實(shí)現(xiàn)了定義的行為,而并無本質(zhì)上的聯(lián)系伤哺。
3.session與cookie
HTTP是一種無狀態(tài)協(xié)議燕侠,為了區(qū)別誰發(fā)起,就需要我們自己去解決這個問題立莉,不然有些情況下即使同一個網(wǎng)站我們每打開一個頁面都要登陸一下绢彤,這樣顯然不太合理。而Session和Cookie就是為了解決這個問題提出的兩個機(jī)制蜓耻。
通俗說,Cookie是訪問某些網(wǎng)站以后再本地存儲一些網(wǎng)站的相關(guān)信息茫舶,下次訪問時候可以減少一些步驟。準(zhǔn)確的說的話就是Cookies是服務(wù)器在本地機(jī)器上存儲的小段文本并隨每一個請求發(fā)送到同一個服務(wù)器刹淌,是一種客戶端保持在線的方案饶氏。
Session是存儲在服務(wù)器的一種用來存放用戶數(shù)據(jù)類的hashTable的結(jié)構(gòu),但這個值一般會有一個時間有效性有勾。
關(guān)于區(qū)別有兩種理解:
1 Session是服務(wù)端保存的一個數(shù)據(jù)結(jié)構(gòu)疹启,用來追蹤用戶的狀態(tài),這個數(shù)據(jù)可以保存集群蔼卡、數(shù)據(jù)庫喊崖、文件中,Cookie是客戶端保存用戶信息的一種機(jī)制雇逞,用來記錄用戶的一些信息贷祈,也是實(shí)現(xiàn)Session的一種方式。
2 session是一種更抽象概念喝峦,開發(fā)者為了實(shí)現(xiàn)中斷势誊、繼續(xù)等操作、抽象出“會話”進(jìn)而衍生到“會話狀態(tài)”谣蠢,這也就是session的概念粟耻。
cookie是一個實(shí)際存在東西,http協(xié)議中定義在header字段中眉踱,可以認(rèn)為是sesion在后端無狀態(tài)的實(shí)現(xiàn)挤忙。目前較好的通用實(shí)現(xiàn)方案就是講session id借助cookie去顯示。
4.HTTP請求GET與POST的方式區(qū)別
GET方法會把名值對追加在請求的URL后面谈喳。因?yàn)閁RL對字符數(shù)目有限制册烈,進(jìn)而限制了用在客戶端請求的參數(shù)值的數(shù)目。并且請求中的參數(shù)值是可見的婿禽,因此赏僧,敏感信息不能用這種方式傳遞大猛。
Get最大容量不大于2kb
POST方法通過吧請求參數(shù)值放在請求體中來克服GET方法的限制,因此淀零,可以發(fā)送的參數(shù)的數(shù)目是沒有限制的挽绩。最后POST請求傳遞敏感信息對外部客戶端不可以見。