Android 面試題總結 Java基礎篇

#1.public,private,protected,以及不寫時的區別?java

##public緩存

爲公共成員變量和函數成員,在整個類內類外均可使用,在子類變爲public數據結構

##private框架

爲私有成員變量和函數成員,只在聲明的類內可使用,子類不可用函數

##protected工具

爲受保護成員變量和函數成員,類外不可以使用。類內可使用,子類變爲private線程

##不使用關鍵字翻譯

默認爲類內使用。code

#2.int與Integer的區別對象

Ingeter是int的包裝類,int是基本數據類型初值爲0,Ingeter是一個類初值爲null。
##結論

①不管如何,Integer與new Integer不會相等。不會經歷拆箱過程,一個引用指向堆,另外一個指向專門存放他的內存(常量池),他們的內存地址不同,因此爲false
②兩個都是非new出來的Integer,若是數在-128到127之間,則是true,不然爲false java在編譯Integer i2 = 128的時候,被翻譯成-> Integer i2 = Integer.valueOf(128);而valueOf()函數會對-128到127之間的數進行緩存
③兩個都是new出來的,都爲false
④int和integer(不管new否)比,都爲true,由於會把Integer自動拆箱爲int再去比

##例子

由於常量池的範圍在-128到127 因此他們都是新的對象 比較的話 是比較地址值 因此爲false

Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);//false

一個存在常量池 一個是指引常量池的地址值 對比因此爲false

Integer i5 = 127;
Integer ii5 = new Integer(127);
System.out.println(i5 == ii5); //false

new了2個不一樣的對象 確定不想等 地制止不一致

Integer i7 = new Integer(128);
Integer i8 = new Integer(123);
System.out.println(i7 == i8);  //false

#3.Collection和Collections的區別

##Collection

java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操做的通用接口方法。Collection接口在Java 類庫中有不少具體的實現。Collection接口的意義是爲各類具體的集合提供了最大化的統一操做方式。 Collection

##Collections

java.util.Collections 是一個包裝類。它包含有各類有關集合操做的靜態多態方法。此類不能實例化,就像一個工具類,服務於Java的Collection框架。

#4.HashMap和HashTable的區別

##HashMap

底層數據結構是哈希表;容許使用null鍵和null值,不一樣步,效率高 ,遍歷時,取得數據的順序是徹底隨機的。HashMap最多隻容許一條記錄的鍵爲Null;容許多條記錄的值爲 Null;

##HashTable

它繼承自Dictionary類 ,不容許鍵或者值爲空,同步,效率低

#5.sleep和wait的區別

1.sleep指線程被調用時,佔着CPU不工做,而wait被調用時,等待CPU使用 2.sleep方法沒有釋放鎖,而 wait 方法釋放了鎖,使得其餘線程可使用同步控制塊或者方法。 3.wait,notify和notifyAll只能在同步控制方法或者同步控制塊裏面使用,而sleep能夠在任何地方使用 4.sleep必須捕獲異常,而wait,notify和notifyAll不須要捕獲異常 5.sleep是Thread靜態方法,wait是Object的成員方法

相關文章
相關標籤/搜索