牛客網刷java題目總結三

1.Java語言中,如果"xyz"沒有被創建過,String s =new String(“xyz”);創建了幾個string object?

兩個  一個在常量池中 另一個在堆中

2.運算符的優先級

單目運算符:+,-,++,--

算數運算符:+,-,*,/,%

移位運算符:<<,>>

關係運算符:>,<,>=,<=,==,!=

位運算符:&,|,~,^,

邏輯運算符:&&,||

三目運算符:表達式1?表達式2:表達式3;

賦值運算符:=等

單目>算數運算符>移位>比較>按位>邏輯>三目>賦值

3.Java 中構造器、構造塊、靜態代碼塊、main()方法的執行順序

靜態代碼塊>main()>構造塊>構造器        

當父類子類均有靜態代碼塊、構造器、構造塊時順序爲:

父類B靜態代碼塊->子類A靜態代碼塊->父類B非靜態代碼塊->父類B構造函數->子類A非靜態代碼塊->子類A構造函數

4.重載

方法重載的方法名一定相同,但參數表不相同,返回值也不一定相同 (但當參數表和函數名一樣時,返回值不能作爲區分)

方法重寫的返回值類型需要小於等於父類返回類型(小於意思是相對於父類方法返回值是子類),方法名必須相同

5.關於java的編譯、運行等的命令

編譯:javac +你的 Java 程序名字加後綴

運行:java +你的 Java 程序的名字但是不加後綴 

java運行時運行的就是.class文件,但是命令卻沒有.class

6.轉義字符加上大寫字母和小寫字母的意思是相反的

比如\d 和\D的意思是相反的 \d的意思時表示數字 而\D的意思表示非數字

7.不同的服務器之間的通信,是要要求全雙工形式的,而管道只能是半雙工,雖然可以雙向,但是同一時間只能有一個方向傳輸

,但是消息隊列 高速緩存數據庫 套接字是可以不同服務器之間通信的

8.泛型代碼與JVM

1.虛擬機中沒有泛型,只有普通類和方法。

2. 在編譯階段,所有泛型類的類型參數都會被Object或者它們的限定邊界來替換。(類型擦除)

3. 在繼承泛型類型的時候,橋方法的合成是爲了避免類型變量擦除所帶來的多態災難。 無論我們如何定義一個泛型類型,相應的都會有一個原始類型被自動提供。原始類型的名字就是擦除類型參數的泛型類型的名字。

4.在運行時動態獲取List<T>中T的實際類型的原因是類的反射機制

9.外部類只能被public 和default修飾

內部類可以被4種權限修飾符修飾

10.類加載機制涉及加載類

  • Bootstrap :一般用本地代碼實現,負責加載 JVM 基礎核心類庫( rt.jar );
  • Extension :從 java.ext.dirs 系統屬性所指定的目錄中加載類庫,它的父加載器是 Bootstrap ;
  • system class loader :又叫應用類加載器,其父類是 Extension 。它是應用最廣泛的類加載器。它從環境變量 classpath或者系統屬性 java.class.path 所指定的目錄中加載類,是用戶自定義加載器的默認父加載器。
  • 用戶自定義類加載器: java.lang.ClassLoader 的子類

11. 一個以”.java”爲後綴的源文件只能有一個與文件名相同的類(public類),可以包含其他類(非public類)

12.java 語言使用的字符碼集是Unicode

13.json對象的格式

鍵必須爲字符串,值可以爲數組,也可以爲鍵值對,也就是json對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章