文章目錄
- 一、什么是Java?特點?
- 二、什么是JVM、JDK、JRE?
- 三、java跨平臺實現原理
- 四、java數據類型有哪些?
- 五、char能不能存一個中文漢字?
- 六、存在數字i加1小于i或者i減1小于i?
- 七、什么是自動類型轉換與強制類型轉換?
- 八、什么是裝/拆箱?為什么這么設計?
- 九、&&運算符和&運算符區別?
- 十、switch表達式的值?
- 十一、Math.round(-1.5) 等于多少?
- 十二、break,continue,return區別及作用?
- 十三、什么是自增?什么是自減?
- 十四、最高效率計算2的冪次方乘法?比如2乘以4?
- 總結
一、什么是Java?特點?
- Java是一門面向對象的編程語言
- 面向對象(封裝,繼承,多態),跨平臺(一次編寫,到處運行)
二、什么是JVM、JDK、JRE?
- JVM:Java Virtual Machine,Java虛擬機,Java程序運行在Java虛擬機上。針對不同系統的實現(Windows,Linux,macOS)不同的 JVM,因此Java語言可以實現跨平臺。
- JRE:Java運?時環境。包括JVM和Java類庫
- JDK: Java Development Kit(軟件開發工具包)。包括了JRE以及編譯器(javac)、Java 文檔生成工具(Javadoc)、Java調試器等開發工具。
- JDK包含JRE,JRE包含JVM。
三、java跨平臺實現原理
- 跨平臺性,是指Java語言編寫的程序,一次編譯后,可以在不同系統平臺(windows、linux、mac)上運行。
- 實現原理:Java程序是通過Java虛擬機在系統平臺上運行的,只要該系統可以安裝相應的Java虛擬機就可以運行java程序
四、java數據類型有哪些?
基本數據類型 | 八種 | 字節數 | 數據表示范圍 | 默認值 | 包裝類 |
---|---|---|---|---|---|
整型 | byte | 1 | -27-1,27-1 | 0 | Byte |
short | 2 | -215,215-1 | 0 | Short | |
int | 4 | -231,231-1 默認是int | 0 | Integer | |
long | 8 | -263,263-1 +L | 0 | Long | |
浮點型 | float | 4 | -3.403E38~3.403E38 E科學計數10^38 128-127次方+F 1位符號位,8位指數位(偏移量127,實際值應該減去127),23位尾數位,7位有效數字 | 0.0f | Float |
double | 8 | -1.798E308~1.798E308 E科學計數10^308 1024-1023次方+D 1位符號位,11位指數位,52位尾數位,16位有效數字,默認是雙精度 | 0.0d | Double | |
布爾型 | boolean | 1 | true、false | false | Boolean |
字符型 | char | 2 | ''包裹,只包含一字符,運算按ASCII碼對應的整數運算 | ‘’ | Character |
引用數據類型 | 數組、類、接口 | String是對象 | null |
五、char能不能存一個中文漢字?
- Java中無論漢字還是英文字母都用Unicode編碼(2字節)表示。char類型占2個字節。所以可以存儲一個中文漢字
六、存在數字i加1小于i或者i減1小于i?
- 整型類型是有范圍的,如果發生越界,那么將出現該情況
七、什么是自動類型轉換與強制類型轉換?
- java數值類型變量從表示范圍小的轉化為表示范圍大的變量,此時需要強制轉換,反之則為自動類型轉換
- 數據類型數據范圍從小到大:byte -> short -> int -> long -> float -> double
long i = 100L;
int j = (int) i;//強制轉換
int k = 100;
long m = k;//自動類型轉換
八、什么是裝/拆箱?為什么這么設計?
- 自動裝箱是Java編譯器在基本數據類型和對應的包裝類之間做轉化。比如:把int轉化成Integer。反之就是自動拆箱。
- 為了簡化代碼,因為jdk1.5需要手寫代碼才能完成基本數據類型轉成包裝類放入集合中
九、&&運算符和&運算符區別?
- 都是表示與的邏輯運算符and,當兩邊的表達式都為true,結果才為true
- &&:有短路功能,當第一個表達式的值為false的時候,則不再計算第二個表達式;
- &:2個表達式都會執行。當兩邊的表達式不是Boolean類型則表示按位操作
十、switch表達式的值?
- 在jdk1.8下支持byte、short、int、char、enum(枚舉)、String這6種類型
十一、Math.round(-1.5) 等于多少?
- round表示’四舍五入’,算法為Math.floor(x+0.5)即加0.5后再向下取整,所以Math.round(1.5)=2,Math.round(-1.5)=-1
十二、break,continue,return區別及作用?
- break跳出循環
- continue跳出本次循環
- return結束方法返回
十三、什么是自增?什么是自減?
自增是指i++、或者++i相當于i=i+1
自減是指i–、或者–i相當于i=i-1
如果符號在前面則先自增、后面則先執行別的再自增
public static void main(String[] args) {int i=1;int j=1;System.out.println(i++);//結果1 先輸出System.out.println(i);//結果2 再+1System.out.println(++j);//結果2 先+1再輸出}
十四、最高效率計算2的冪次方乘法?比如2乘以4?
- 2<<2。位運算,二進制位左移三位相當于乘以2的2次方。
總結
本文介紹了的java基礎的面試(上),如有問題歡迎私信和評論