一些常見的面試題:
string a = "hello2";
string b = "hello" + 2;
system.out.println(a == b);
a == b輸出true。很明顯b在編譯時就被優化成「hello2」,因此在執行期間,a和b指向的是統一物件
string a = "hello2";
string b = "hello";
string c = b + 2;
system.out.println(a == c);
a==c輸出false,因為b是變數,不會在編譯期間被優化,不會把 b + 2當成字元常量來處理的。這種情況生成的物件實際上儲存在堆上。
string a = "hello2";
final string b = "hello";
string c = b + 2;
system.out.println(a == c);
輸出:true。被final修飾的變數,會在class檔案常量池中儲存乙個副本。那麼b + 2在編譯期間會被優化成」hello」 + 2。也可以把final修飾的變數看做常量。
public
class main
public
static string gethello()
}
輸出:false。因為b雖然是final變數,但是由於其賦值只能在執行期間確定。
public
class main
}
輸出:false,false,false,true
intern方法是乙個本地方法,會在執行時常量池中查詢是否存在內容相同的字串,如果有則返回該物件的引用;如果沒有,則將該字串入池,並且返回該物件的引用,所以是true。
關於JDBC的一些面試題
1.statement prestatement有什麼區別 解答 後者的效率比前者高,在使用preparedstatement物件執行sql命令時,命令被資料庫進行編譯和解析,然後被放到命令緩衝區。然後,每當執行同乙個preparedstatement物件時,它就會被再解析一次,但不會被再次編譯。在...
關於redis的一些面試題
一.使用redis有哪些好處?1.速度快,因為資料是存在記憶體中的。2.支援豐富的資料型別,string,list,set,sorted set,hash 3.支援事務,操作都有原子性,也就是對陣列的更改要麼不執行,要麼全部執行。4.豐富的特性 可用於快取,訊息,按key設定過期時間,過期後自動刪除...
關於Shell的一些面試題
shell指令碼 shell指令碼是什麼,是必須的嗎?乙個shell指令碼是乙個文字檔案,包含乙個或多個命令的檔案。作為系統管理員,我們經常使用多個命令來完成一項任務,我們可以新增這些命令在乙個文字檔案 shell指令碼,字尾為.sh 來完成這些日常工作。什麼是預設登入shell?bin bash ...