好程序員大數據培訓分享大數據面試寶典三

  好程序員大數據培訓分享大數據面試寶典三1、當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏到底是值傳遞還是引用傳遞? 【基礎】
  答:是值傳遞。Java 編程語言只有值傳遞參數。當一個對象實例作爲一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
  2、String 和StringBuffer 的區別? 【基礎】
  答:JAVA 平臺提供了兩個類:String 和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數據。
  這個String 類提供了數值不可改變的字符串。
  而這個StringBuffer 類提供的字符串進行修改。當你知道字符數據要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers 來動態構造字符數據。
  3、String, StringBuffer StringBuilder 的區別。【基礎】
  答:String 的長度是不可變的;StringBuffer 的長度是可變的,如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer 的toString()方法;線程安全;StringBuilder 是從JDK 5 開始,爲StringBuffer 該類補充了一個單個線程使用的等價類;通常應該優先使用StringBuilder 類,因爲它支持所有相同的操作,但由於它不執行同步,所以速度更快。
  4、Overload 和Override 的區別。Overloaded 的方法是否可以改變返回值的類型? 【基礎】
  答:方法的重寫Overriding 和重載Overloading 是Java 多態性的不同表現。重寫Overriding 是父類與子類之間多態性的一種表現,重載Overloading 是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱爲方法的重載(Overloading)。Overloaded 的方法是可以改變返回值的類型。
  5、定義類A 和類B 如下:【基礎】
  class A {
  int a=1;
  double d=2.0;
  void show(){
  System.out.println("Class A: a="+a +"td="+d);
  }
  }
  class B extends A{
  float a=3.0f;
  String d="Java program.";
  void show(){
  super.show( );
  System.out.println("Class B: a="+a +"td="+d);
  }
  }
  (1) 若在應用程序的main 方法中有以下語句:
  A a=new A();
  a.show();
  則輸出的結果如何?
  (2) 若在應用程序的main 方法中定義類B 的對象b:
  A b=new B();
  b.show();
  則輸出的結果如何?
  答:輸出結果爲:
  1)Class A: a=1 d=2.0 ;
  2)Class A: a=1 d=2.0
  Class B: a=3.0 d=Java program。
  6、描述一下JVM 加載class 文件的原理機制? 【基礎】
  答:JVM 中類的裝載是由ClassLoader 和它的子類來實現的,Java ClassLoader是一個重要的Java 運行時系統組件。它負責在運行時查找和裝入類文件的類。
  7、char 型變量中能不能存貯一箇中文漢字?爲什麼? 【基礎】
  答:能夠定義成爲一箇中文的,因爲java 中以unicode 編碼,一個char 佔16個字節,所以放一箇中文是沒問題的。
  8、abstract class 和interface 有什麼區別? 【基礎】
  答:聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),。然而可以創建一個變量,其類型是一個抽象類,它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類爲它們父類中的所有抽象方法提供實現,否則它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類可以在類中實現這些方法。接口(interface)是抽象類的變體。新型多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,所有成員變量都是publicstatic final 的。一個類可以實現多個接口,當類實現特殊接口時,它定義(即
  將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作爲引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
  9、Static Nested Class 和Inner Class 的不同?【基礎】
  答:Static Nested Class 是被聲明爲靜態(static)的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化後才能實例化。
  10、Java 中會存在內存泄漏嗎,請簡單描述。【基礎】
  答:會;存在無用但可達的對象,這些對象不能被GC 回收,導致耗費內存資源。

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