java基本知識

代碼塊的執行順序:靜態代碼塊–>構造代碼塊–>構造方法塊。

public class A{
    static{
       System.out.println("靜態代碼塊!");
    }
    {
       System.out.println("構造代碼塊!");
    }
    A(){
        System.out.println("構造方法塊!");
    }
}//輸出結果:靜態代碼塊!-->構造代碼塊!-->構造方法塊!(這個書寫的順序無關)

final修飾局部變量的問題:
1)基本類型:基本類型的值不能夠發生改變;
2)引用類型:引用類型的地址不能發生改變,但是該對象的堆內存的值是可以進行改變。

 `public  class Person(){
      final int age  = 10;
      Person(){}
      public static void main(String[] args){
           age = 100;//此處編譯通不過,final變量不能進行改變
           final Person p = new Person();
           p.setAge(100);//引用中的值是能夠改變
           p = new Person();//編譯通不過,因爲引用地址不能改變  
      }
  }`

final修飾的變量只能賦值一次。
抽象類有構造方法,它不是具體的,不能實例化,但是有構造方法,構造方法是用於子類訪問父類數據的初始化。抽象類不一定有抽象方法,但是有抽象方法的一定是抽象類。

  • 一個類沒有抽象方法,可以定義爲抽象類,這樣定義的意義就是不讓創建對象。
  • abstract不能和final、privatet同時使用(private 和fiinal都不能夠被重寫)、static()(抽象方法是沒有方法體的,而靜態方法是可以通過類名直接調用的,組合在一起使用,沒有意義)

接口

接口成員特點:
1)成員變量:在接口中成員變量只能是常量,並且是靜態的,可以直接通過接口 去訪問。相當於public static final int num = 3;
2)構造方法:接口沒有構造方法,所有的類都默認繼承Object類
3) 成員方法:只能是抽象方法,默認修飾符public abstract。

接口內部類

形式參數:基本類型和引用類型。
類的修飾符不能爲private、protected、static。
內部類訪問特點:

  • 內部類可以直接訪問外部類的成員,包括私有;
  • 外部類要訪問內部類,必須要創建對象;

成員內部類如何直接訪問內部類的成員:
外部類名.內部類名 對象名 = 外部類對象.內部類對象
Outer.Inner oi = new Outer().new Inner();
成員內部類的修飾符:private爲了保證數據的安全性
static :內部類用static修飾可以看出是外部類的成員,靜態內部類訪問的外部類的數據必須用靜態修改。
成員內部類被靜態修飾後的訪問方式是:
外部類名.內部類名 對象名 = new 外部類名.內部類名()
Outer.Inner oi = new Outer().Inner();

String s1 = new String(“hello”)和 String s2 = “hello”的區別

這裏寫圖片描述
前者創建兩個對象,而後者是創建一個對象。
s1 == s2是false (s1的引用地址是0001,s2的引用地址是001)
s1.equal(s2)是true,他麼指向的內容都是hello

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