標籤:還需 ++ 維數 基本 標準 使用 條件 應用 hbm
1:String是最基本的資料類型嗎?
不是
基礎資料型別 (Elementary Data Type)包括byte、int、char、long、float、double、boolean和short。
引用資料類型包括:類,數組,介面等(簡單來說就是除了基礎資料型別 (Elementary Data Type)之外的所有類型)
所以String 是引用資料類型
2:說說&和&&的區別。
&和&&都可以用作邏輯與的運算子,表示邏輯與(and),當運算子兩邊的運算式的結果都為true時,整個運算結果才為true,否則,只要有一方為false,則結果為false。
&&還具有短路的功能,即如果第一個運算式為false,則不再計算第二個運算式,例如,對於if(str != null && !str.equals(“”))運算式,當str為null時,後面的運算式不會執行,所以不會出現NullPointerException如果將&&改為&,則會拋出NullPointerException異常。If(x==33 & ++y>0) y會增長,If(x==33 && ++y>0)不會增長
&還可以用作位元運算符,當&操作符兩邊的運算式不是boolean類型時,&表示按位與操作,我們通常使用0x0f來與一個整數進行&運算,來擷取該整數的最低4個bit位,例如,0x31 & 0x0f的結果為0x01。
備忘:這道題先說兩者的共同點,再說出&&和&的特殊之處,並列舉一些經典的例子來表明自己理解透徹深入、實際經驗豐富。
3:switch語句能否作用在byte上,能否作用在long上,能否作用在String上?
在switch(expr1)中,expr1隻能是一個整數運算式或者枚舉常量(更大字型),整數運算式可以是int基本類型或Integer封裝類型,由於,byte,short,char都可以隱含轉換為int,所以,這些類型以及這些類型的封裝類型也是可以的。顯然,long和String類型都不符合switch的文法規定,並且不能被隱式轉換成int類型,所以,它們不能作用於swtich語句中。
4:Integer與int的區別
int是java提供的8種未經處理資料類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。int的預設值為0,而Integer的預設值為null,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別,則只能使用Integer。在JSP開發中,Integer的預設為null,所以用el運算式在文字框中顯示時,值為空白字串,而int預設的預設值為0,
所以用el運算式在文字框中顯示時,結果為0,所以,int不適合作為web層的表單資料的類型。
在Hibernate中,如果將OID定義為Integer類型,那麼Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm對應檔中設定其unsaved-value屬性為0。
另外,Integer提供了多個與整數相關的操作方法,例如,將一個字串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。
5:J2EE是技術還是平台還是架構?
J2EE本身是一個標準,一個為企業分布式應用的開發提供的標準平台。
J2EE也是一個架構,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術
6:在JAVA中如何跳出當前的多重嵌套迴圈?
在Java中,要想跳出多重迴圈,可以在外面的迴圈語句前定義一個標號,然後在裡層迴圈體的代碼中使用帶有標號的break 語句,即可跳出外層迴圈。例如,
ok:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
System.out.println(“i=” + i + “,j=” + j);
if(j == 5) break ok;
}
}
另外,我個人通常並不使用標號這種方式,而是讓外層的迴圈條件運算式的結果可以受到裡層迴圈體代碼的控制,例如,要在二維數組中尋找到某個數字。
int arr[][] = {{1,2,3},{4,5,6,7},{9}};
boolean found = false;
for(int i=0;i<arr.length && !found;i++)
{
for(int j=0;j<arr[i].length;j++)
{
System.out.println(“i=” + i + “,j=” + j);
if(arr[i][j] == 5)
{
found = true;
break;
}
}
}
7:用最有效率的方法算出2乘以8等於幾?
2 << 3,
因為將一個數左移n位,就相當於乘以了2的n次方,那麼,一個數乘以8隻要將其左移3位即可,而位元運算cpu直接支援的,效率最高,所以,2乘以8等於幾的最效率的方法是2 << 3。
Java面試題