java基礎知識(常用的簡單面試題)
本文為筆者學習過程中根據老師指導自行整理!
1、JDK、JRE、JVM
① JDK: Java Development kit Java 開發工具包
② JRE: Java Runtime Environment Java 執行環境
③ JVM: Java virtual Machine Java 虛擬機器
2、簡述Java程式編譯和執行的過程
① Java編譯程式將Java源程式翻譯為JVM可執行程式碼--位元組碼,建立完原始檔之後,程式會先被編譯成 “.class” 檔案。
② 在編譯好的java程式得到“.class”檔案後,使用命令java 執行這個 .class 檔案,系統就會啟動一個jvm程序,並找到主函式的入口,開始執行main函式。
3、八種基礎資料型別及位元組大小
① byte 8位
② short 16位
③ int 32位
④ long 64位
⑤ float 32位
⑥ double 64位
⑦ boolean 1位
⑧ char 16位
4、使用巢狀的for迴圈列印九九乘法表。public class Multiplication {
public static void main(String[] args) {
for (int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
1、值傳遞和引用傳遞的區別
①值傳遞:值傳遞是將進行傳遞的值進行拷貝,然後對拷貝之後的值進行傳遞,傳遞過程前後不改變原值的大小;
②引用傳遞:引用傳遞是將需要傳遞值的地址進行傳遞,傳遞過程前後會改變原值的大小。
2、什麼是方法過載
方法過載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的引數的型別或引數的個數。
3、4種訪問控制符區別描述
① Private(當前訪問許可權):被宣告為private的成員只能被當前類中的其他成員訪問,不能在類外看到;
② 預設(包訪問許可權):如果一個類或類的成員前沒有訪問控制符,則獲得預設的訪問許可權,預設的可以被同一包中的所有類訪問;
③ Protected(子類訪問許可權):被宣告為protected的成員既可以被同一個包中的其他類訪問,也可以被不同包中的子類訪問;
④ Public(公共訪問許可權):被宣告為public的成員可被同一包或不同包中的所有類訪問,即public訪問修飾符可以使類的特性公用於任何類。
4、寫出8個基本資料型別提供了對應的封裝類
①byte Byte 位元組
②short Short 短整型
③ int Integer 整型
④ long Long 長整型
⑤ char Character 字元型
⑥ float Float 單精度浮點型
⑦ double Double 雙精度浮點型
⑧ boolean Boolean 布林型
5、什麼是裝箱和拆箱
①裝箱:指將基本型別資料值轉換成對應的封裝物件,即將棧中的資料封裝成物件存放到堆疊中;
②拆箱:拆箱是裝箱的反過程,是封裝的物件轉換成基本型別的資料值,即將堆中的資料值存放到棧中的過程。
6、String 和StringBuilder的區別
①String創新的字串建的字串是不可變的,如果改變字串變數的值,是在記憶體中建立一個新的字串,字串變數將引用新建立的字串地址,而原來的字串在記憶體中依然存在且內容不變,直至java的垃圾回收系統對其進行銷燬;
②StringBuilde建立一個可變的字串,StringBuilder沒有實現執行緒安全,因此效能較好。
編寫一個 PointDemo 類,並提供一個distance(Point p1,Point p2)方法用於計
算兩點之間的距離,例項化兩個具體的 Point 物件並顯示它們之間的距離public class PointDemo {
public void distance(Point p1 ,Point p2 ){
double dist =0;
double a = Math.pow((p1.getX()-p2.getX()),2);
double b = Math.pow((p1.getY()-p2.getY()),2);
dist=Math.sqrt(a+b);
System.out.println(dist);
}
public static void main(String[] args) {
Point p1 = new Point();
Point p2 = new Point();
Scanner a = new Scanner(System.in);
System.out.print("Please input x for point 1:");
p1.setX(a.nextDouble());
System.out.print("Please input y for point 1:");
p1.setY(a.nextDouble());
System.out.print("Please input x for point 2:");
p2.setX(a.nextDouble());
System.out.print("Please input y for point 2:");
p2.setY(a.nextDouble());
PointDemo s =new PointDemo();
s.distance(p1,p2);
}
}