1. 程式人生 > >Java面試,從我開始

Java面試,從我開始

Java面試,從我開始

基本資料型別

short 16位 2位元組
int 32位 4位元組
long 64位 8位元組
char 16位 2位元組
byte 8位 1位元組
boolean 1位 1位元組
float 32位 4位元組
double 64位 8位元組

do get 與do post 的區別

使用表單提交資料到伺服器的時候有兩張方式可共選擇,一個是post一個是get。預設情況下是get。
區別:1.傳輸資料大小有區別 get一般只能傳輸1024位元組;post無限制。
2.傳輸方式不同,get通過key-value的方式跟在url路徑後傳輸,post通過http請求的附件傳輸
3.get傳輸資料安全性不高,post相對安全一些。
除了doget和dopost之外,還有doPut、doDelete、doTrace、doHead、doOptions等方式,但是極少使用

什麼是Java虛擬機器?為什麼Java被稱作是“平臺無關的程式語言”?

java虛擬機器是能執行Java位元組碼的一種虛擬機器程序;Java原始碼被編譯成Java虛擬機器能夠執行的位元組碼檔案(.class檔案)。正是因為java虛擬機器的存在讓java成為了與“平臺無關的變成語言”。

JDK、JRE、JVM關係是什麼 ?

JDK是Java的開發工具,包括開發所需要的編譯,執行等開發工具以及JRE;
JRE是執行Java檔案的環境,包括JVM以及其他的類庫;
JVM是Java虛擬機器,提供了Java位元組碼(.class檔案)的執行環境;
簡而言之:JDK包含JRE,JRE包含JVM。

什麼是自動拆箱,裝箱

自動拆箱和裝箱就是基礎型別和引用型別之間的轉換,實現這個可以讓基礎型別轉換成引用型別,進行例項化,即可以new一個物件,呼叫包裝類中封裝好的方法或者toString。

面向物件

面向物件是一種思想。世間萬物皆物件,通過物件是獲取事物的屬性或者事物擁有的行為。Java就是一種面向物件程式設計的語言。
面向物件的四大特性:抽象,封裝,繼承,多型。
抽象是為了形成類,封裝是為了保護類,繼承是為了重用類,多型為了拓展類。

&與&&的區別

&按位與 &&邏輯與。&&是先短路在運算,即如果&&左側為false,則不會對右邊的邏輯再進行判斷,

當user.name() != null && !user.name().equals("")時若使用&進行判斷,則會出現空指標異常。

什麼是值傳遞,什麼是引用傳遞

值傳遞是對基本型的變數而言得,傳遞的是值得副本,對副本進行改變不會影響原變數。
引用傳遞是對物件型的變數而言的,傳遞的是物件的地址的一個副本,而不是原物件本身。

是否可以在static環境中訪問非static變數

在java中static變數是屬於java類的,static變數在所有的例項中都是一樣的;在Java虛擬機器對類進行載入的時候,會對static變數進行初始化;非static變數是屬於例項的,如果在static環境中不通過例項去訪問非static變數會編譯報錯,因為變數還未建立,跟例項尚未關聯。

HashMap與HashTable的區別

1.HashTable的方法是同步的,HashMap未經同步,所以在多執行緒中要手動同步HashMap。(HashTable執行緒安全,但是效率低;HashMap效率高,但是執行緒不安全)
2.HashTable不允許NULL值(key,value均不允許),HashMap是允許有null的(key,value均可以)。HashMap使用containsKey()方法判斷是否存在某個鍵,而不使用get方法。
3.繼承的父類不一樣。並且HashTable繼承的父類Dictionary已經被廢棄使用了。
4.對外提供的介面不同,HashTable比HashMap多提供了elements()和contains()兩個方法。
5.遍歷方式的內部實現不同。兩者都使用了Iterator。而Hashtable還使用了Enumeration的方式。
HashMap的Iterator是fail-fast迭代器。當有其他執行緒改變了HashMap的結構時會拋錯Concurrent ModificationException。使用remove方法不會拋錯。而Hashtable在JDK1.8以後才使用fast-fail的。
6.初始容量大小和每次的擴充容量大小不同。Hashtable預設大小為11,每次擴容大小是原來的2n+1;而HashMap是16,每次擴容是原來的2倍。原因是因為兩者設計的側重點不同,Hashtable的側重點是雜湊的結果更均勻(個數值為素數,取模結果均勻),使得雜湊衝突減少。HashMap更加關注雜湊的計算效率問題。在取模計算時,如果模數時2的冪,那麼可以直接用位運算得到結果,所以將雜湊表大小定為2的冪。HashMap為了解決雜湊分佈不均勻,就對hash演算法進行了修改,導致兩者計算hash值方式不同

本人主頁多多留言互相學習

連結: link.