一些java基礎小知識點,小白必看!
本文適合小白和剛入門的程式設計師觀看,大牛可直接跳過,如果有錯誤,歡迎大佬指正。
一、一箇中文幾個位元組?
不同編碼下一個中文所佔的位元組數是不同的 另外utf-8下不同中文所佔的位元組數也不相同可能是2 3 4位元組,GBK下是2位元組。
二、String a=1+9+“abc”;和String b=“abc”+1+9;中a和b的值是什麼?
a的結果為10abc;
b的結果為abc19。
三、java基礎資料型別的大小
四、抽象類和介面的區別?
介面定義的是規範,表示的是你能幹什麼,你能炒菜, 能跑步,能做家務
抽象類本質上還是類,所以表示的你是什麼,你是人,是動物.
其他區別:
成員變數
介面中的只有常量,預設修飾符是public static final
抽象類中可以有變數,可以有常量
構造方法
介面中沒有構造方法,
抽象類中有構造方法
成員方法
介面中的只有預設方法和抽象方法
抽象類中可以有普通方法,可以有抽象方法
五、什麼是多型?
成員變數
編譯看左邊,執行看左邊
普通成員方法
編譯看左邊,執行看右邊
靜態成員方法
編譯看左邊,執行看右邊
總結 編譯看左邊,執行看左邊,即沒有發生多型,多型發生的三個前提分別是要有繼承關係 父類引用執行子類物件 要有方法的重寫因為成員變數和靜態成員方法不存在方法的重寫所以不發生多型.
六、static和final位置問題
public static fianl void method(){}
public final static void method(){}
七、try-catch throws和throw如何使用
try-catch是在方法內部處理異常
throws是在方法引數列表後向上丟擲異常(可以丟擲多個,所以是複數)被丟擲的異常並沒有被處理,只是拋給了上層呼叫的方法,誰呼叫誰處理。
throw是丟擲一個異常,獲取這個異常的引用
八、單例模式實現的兩種方式:
懶漢式
餓漢式
九、String s=new String(“xyz”);在運算的時候涉及幾個String例項
兩個"xyz"的時候會有一個例項,然後new String的時候產生一個例項。
十.氣泡排序
十一、equals()和==的區別?
equals()是Object類中的方法,而==是運算子
equals()比較的是內容,而==比較的是地址
十二、傳值和傳址
傳值:例如a=b把b的值傳給a修改a並不會影響到b
傳址:例如a=b把b的地址傳給a,修改a的同時會影響到b
十三、為什麼我們常說字串是不可變的?
字串的底層是char[]型別的字元陣列
字串被建立的時候儲存在字串常量池裡(jdk1.7之前字串常量池在方法區,jdk1.7之後,字串常量池在堆區),加入有String str=“abc”,當執行str="def"的時候,字串常量池這的abc並不會銷燬,而是在字串常量池中新增新的def並將其指向str。
十四、switch()-case可以接受的型別
jdk1.7之前switch-case所接受的引數只能是整形或者轉換為整形後沒有損失的型別int charbyte short
還有列舉 enum jdk1.8之後在此基礎之上增加了String型別.
十五、執行時異常和編譯器異常有和異同?
執行時異常 這意味著程式存在bug,如陣列越界,0被除,傳參不規範
編譯器異常也叫檢查期異常,編譯器直接飆紅
十種常見的異常
1.java.lang.NullPointerException空指標異常
2.java.lang.ClassNotFoundException指定的類不存在
3.java.lang.NumberFormatException數字格式異常
4.java.lang.IndexOfBoundsException陣列下標越界異常
5.java.lang.IllegalArgumentException方法引數異常
6.java.lang.IllegalAccessException訪問許可權異常
7.java.lang.ArithmeticException數學運算異常
8.java.lang.ClassCastException資料型別轉換異常
9.java.lang.FileNotFoundException檔案未找到異常
10.java.lang.NoSuchMethodException方法不存在異常
十六、隱式轉換問題
注:所有的基本型別對應的包裝類都是final的。
如果有正在學java的程式設計師,可來我們的java技術學習扣qun哦:59789,1510裡面免費送java的視訊系統教程!