1. 程式人生 > >java基礎知識(常用的簡單面試題)

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);

    }

}