1、基本數(shù)據(jù)類型有哪些?
基本數(shù)據(jù)類型包括byte、int、char、long、float、double、boolean和short。 java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節(jié)省空間,我們應該用StringBuffer類。
2、get和post的區(qū)別
get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳遞數(shù)據(jù);
get傳送的數(shù)據(jù)量小,不能大于2KB,post傳送的數(shù)據(jù)量較大;
get安全性低,傳遞的參數(shù)都顯示在地址欄,post高,但是執(zhí)行效率上get好一些;
在進行文件上傳的時候,只能使用post而不能使用get
3、string stringbuffer stringbuilder 區(qū)別及選用
String字符串常量,Stringbuffer與Stringbuilder是字符串變量
String長度不可變,Stringbuffer與Stringbuilder長度可變。因為String類中使用final關(guān)鍵字字符數(shù)組保存字符串,private final char value[],所以String不可變
String使用字符串拼接的時候是兩個不同的空間,Stringbuffer與Stringbuilder則是直接在字符串后面追加,所以大數(shù)據(jù)量上不用string
StringBuffer線程安全,StringBuilder線程不安全,是因為StringBuffer對方法加了同步鎖
執(zhí)行效率上StringBuilder>StringBuffer>String
總結(jié):對于操作少量的數(shù)據(jù)用String,大量的數(shù)據(jù),單線程用StringBuiler,多線程用StringBuffer
4、HashMap與Hashtable區(qū)別
HashMap非線程安全,HashTable線程安全,因為HashTable內(nèi)部的方法都經(jīng)過synchronized修飾
HashMap允許null的鍵/值,HashTable不允許
HashMap性能優(yōu)于Hashtable
初始容量Hashtable默認11,每次擴充,容量變?yōu)樵瓉淼?n+1。HashMap默認16,每次擴充,容量變?yōu)樵瓉淼?倍
底層數(shù)據(jù)結(jié)構(gòu)不同,jdk1.8之后,當鏈表長度大于閾值(默認為8)時,將鏈表轉(zhuǎn)換為紅黑樹,來減少搜索時間,Hashtable沒有這樣的機制,Hashtable基本被淘汰了,少用。
5、Spring MVC和Spring boot有啥區(qū)別
1、springMVC是Spring的一個模式,是一個Web框架,提供了一個輕度耦合的方式來開發(fā)Web應用;
2、SpringBoot是習慣優(yōu)于配置,降低了項目搭建的難度(約定大于配置,可以簡化spring的配置流程);
3、springMVC需要適用到TomCat服務(wù)器,而springboot內(nèi)置服務(wù)器容器,通過@SpringBootApplication中注解類中main函數(shù)啟動即可;
6、session和cookie的區(qū)別