類(lèi)型
-
int[][] a = new int[][]{}; a是哪些類(lèi)型的實(shí)例(使instanceof判斷為true)
- Object
- int[][]
對(duì)于object instanceof Boolean操作,若object為null,會(huì)不會(huì)拋出異常?若不會(huì),其值是什么?
答:不會(huì)拋出異常,其值是false
內(nèi)存模型
- 包裝類(lèi)的比較問(wèn)題
Integer x = 1;
Integer y = 1;
Integer z = 2;
System.out.println(x == y); // true:編譯器只為常量1分配一次空間(常量區(qū))
System.out.println(x.equals(y)); // true:包裝類(lèi)會(huì)覆蓋實(shí)現(xiàn)為比較類(lèi)型與內(nèi)容
System.out.println(x == z)); // false:常量1和2,在不同的地址空間
System.out.println(x.equals(z)); // false:常量1和2,無(wú)論地址和值都不相等
Integer x = new Integer(1);
Integer y = new Integer(1);
System.out.println(x == y); // false:x和y指向堆空間上的不同對(duì)象
System.out.println(x.equals(y)); // true:包裝類(lèi)會(huì)覆蓋實(shí)現(xiàn)為比較類(lèi)型與內(nèi)容
- volatile的作用
- 根據(jù)JVM內(nèi)存模型,線程會(huì)將主內(nèi)存(物理內(nèi)存)映射到本地內(nèi)存(高速緩存),每個(gè)線程對(duì)主內(nèi)存上修改(對(duì)象屬性)對(duì)其他線程存在可見(jiàn)性問(wèn)題(時(shí)效),volatile要求對(duì)直接在主內(nèi)存讀寫(xiě),以此來(lái)保障可見(jiàn)性。
- volatile可阻止編譯器對(duì)指令的亂序優(yōu)化
常用工具類(lèi)
System.out.println(new Date(0))的打印結(jié)果是?
答:The Jan 08:00:00 CST 1970覆蓋對(duì)象默認(rèn)的equals方法后,是否需要覆蓋其hashCode實(shí)現(xiàn)
答:需要,基于HashMap規(guī)約,兩個(gè)對(duì)象equals操作若為true,則需要有相同的hashcode。反之,沒(méi)有要求。