JavaSE面試總結(一)。本站提示廣大學習愛好者:(JavaSE面試總結(一))文章只能為提供參考,不一定能成為您想要的結果。以下是JavaSE面試總結(一)正文
- JDK和JRE的區別:
答:JDK是Java言語的開發工具包,包括JRE和開發工具包(java,exe等),JRE是Java的言語的運轉環境,包括jvm和中心類庫,jvm是Java的虛擬機,保證了Java的跨平台向性
- JVM跨平台嗎?
jvm是Java的虛擬機,不同的操作零碎對應jvm不一樣,jvm不具有跨平台性
- 保存字
保存字是還未運用的關鍵字,能夠在Java當前的版本中運用,goto和const
- Java言語的特點:
完片面向對象性,跨平台性,開源,平安牢靠,高功能性,多線程,強健性,
- main是關鍵字嗎
不是的,main是主函數的名字,可以被虛擬機辨認,是順序執行的入口
- path和classpath的區別:
path環境變量配置的是可執行文件.exe的執行途徑,classpath配置的Java言語編譯後聲場的字節碼文件執行途徑
- 計算機最根本的存儲單位是:字節
計算機直接辨認的進制:二進制
- 變量和常量有什麼區別:
變量在運算進程中的值是變化的,可以被屢次賦值,常量則是固定的
- 變量數據類型的分類:
變量需求先定義,再賦值,再運用
根本數據類型:4類8種 byte short int long float double char boolean
援用數據類型:數組,類,接口
- 常量分類:
自定義常量:自己經過final修飾定義的常量
字面值常量:包括整數,小數,布爾,字符,字符串
- byte的范圍:-128 127
char的范圍: 0 65535
- long是8個字節,float是4個字節,為什麼long比float小
底層的運算規則不同
- ++和--的運用:
獨自運用時,在前後都一樣
參與運算時,在前是先自加或自減,在後是先參與運算,在停止自加或許自減
- 邏輯 | 與 短路 || 的區別
| 不論後面的是真是假都會運算, || 後面為真前面不參與運算,進步了運算的效率
- 邏輯 & 與 短路 && 的區別
& 不論後面是真是都會運算, && 後面假如為假的話,前面的不參與運算了,進步了運算的效率\
- while和dowhile,for的區別:
do while 是先執行後判別
while和for先判別後執行,for循環完畢後,其定義的初始化條件不能再運用
- break和continue的區別:
break是完全跳出循環,continue是跳出本次循環,停止下次循環
- 辦法重載和辦法重寫的區別:
辦法重載是在同一個類中呈現同名辦法,參數列表不同,與前往值有關
辦法重寫在子類之間,子類呈現和父類聲明完全相反的辦法時,就成為辦法重寫,重寫要求前往值相反或許有字父類關系
- 結構辦法,set辦法後可以給成員變量賦值,這兩種賦值的區別?
結構辦法次要的作用是用來給對象初始化的,賦值只是他的兼職任務,也可以不賦值
- 靜態代碼塊和結構代碼塊的區別:
靜態代碼塊屬於類,給類停止初始化,類一加載就會執行,只執行一次
結構代碼塊給對象停止一致初始化,每創立一次就會執行一次
- 四種權限修飾符:
public protectd 默許 private
- == 和 equal的區別:
"=="是比擬運算符,既能比擬根本數據類型,有可以比擬援用數據類型,根本數據類型比擬的是數值,援用數據類型比擬的是地址值
equal是辦法,重寫equal辦法比擬的是對象的內容,假如沒有重寫將調用object的equal辦法,比擬的是地址值
- string和stringBuffer和stringBuilder的區別:
string是一個特殊的援用數據類型,是一個長度不可以改動的字符序列,沒有緩沖區,,一旦創立不可以改動,即便重新賦值不是在原來的根底上改動,而是重新創立了一個對象,將援用指向這個新的對象,糜費空間,效率比擬低
stringBuffer和stringbuilder是一個容器,是可變的字符串序列
stringBuffer,線程平安的,效率比擬低,
stringBuilder的底層是字符數組,線程不平安,效率比擬高
- 集合體系:
- ArrayList與LinkedList的區別:
ArrayList的底層采用的數據的數據構造,查詢慢,增刪快
LinkedListd底層是鏈表,增刪快,查詢慢
- 數據構造的復雜引見:
棧:先進後出,壓棧,彈棧
隊列:先進先出
鏈表:每個元素都指向下一個元素
數組:一快延續的存儲區域
- 線程和進程多線程:
進程是一個正在執行的順序,每個順序至多有一個控制單元,正在運轉的順序
線程是進程中的控制單元,線程控制著進程的執行,是進程的執行途徑
多線程:進程的多條執行途徑,每個執行途徑就是線程
- 多線程並發和多線程並行:
兩個或多個義務發送懇求時,CPU只能執行一個,就會交替執行這些義務,CPU會高速切換執行,這就是多線程並發
多線程並行,兩個或許多個義務同時執行,前提是多核CPU
- 多線程的特點:具有隨機性和和延遲性
- 線程的兩種完成方式:
承繼Thread類,益處是承繼,代碼復雜,可以直接運用Thread的辦法, 缺陷就是擴展性差,應為承繼了thread類,不可以再承繼其他的類了
完成Runnable接口,益處就是擴展性比擬強,缺陷:代碼比擬多,無法直接運用Thread類
- 線程的生命周期:
新建 就緒 運轉(能夠發作阻塞和等候) 死亡
- sleep和wait的區別:
sleep是讓線程睡眠,必需給相應的時間,時間到了自動喚醒,睡眠的時分不保持CPU的執行權益
wait是讓線程等候,可以傳參也可以不傳參,傳參是讓指定時間後等候,需求被喚醒,等候的時間保持CPU的執行權益
- 讓線程暫停:
wait:讓線程等候,等候的時分保持CPU的執行權
yield:讓線程暫停,並執行其他的線程
- 什麼是IO流:
用來硬盤和內存之間交互數據的
- IO流分類
- close()和flush()的區別:
flush()是用來刷新緩存區的,刷新之後還是可以再次寫出的
close()是用來封閉釋放資源的,封閉之後無法寫出