學習java過程中的一些筆記.

來源:互聯網
上載者:User

1。abstract 類中可以有非abstract方法,在abstract的子類中必須實現父類的所有abstract方法,至少要有一個空的方法體。
2。介面是一種特殊的abstract類,在介面中的方法不能含有方法體,預設的修飾是public abstract,不能人為的設定方法是private等修飾符

,但可以指定方法為abstract方法。當類implements介面,類中實現介面中的方法必須加上public修飾。
3。介面中定義的欄位會自動具有static和final屬性。它們不能是“空白final”,但可初始化成非常數運算式,介面中的欄位可以在其他類中

通過介面調用(如:  在主類中:System.out.println(jiekao.value))。
當然,欄位並不是介面的一部分,而是儲存於那個介面的static儲存地區中。

 

4.初始化順序:
 class A              
 class B extends A    
 Class C extends B  
 
(1)載入類到記憶體:一般在第一次使用的時候載入類(static)
(2)所有的對象和類變數設定預設,即對象為null,變數預設為0;
(3)初始化static方法和變數
(4)建構函式:從父類開始.在同一個類中,在調用建構函式之前是先類變數的初始化.

 思考下面程式的輸出:
   class A{
     private a=11;
     public A(){
       show();
       System.out.println("this is A struction");
     }
     public void show(){System.out.println("the a is value ="+a+" in class A");}
     static{System.out.println("this is a static in class A");}
     {System.out.println("this is a clock in class A");}
   }
   public class B extends A{
     private a=22;
     public static void main(String arg[]){
       //new A();
       //A test1=new B();
       B test2=new B();  
     }
     public B(){
       show();
       System.out.println("the B struction");
     }
     public void show()
     {System.out.println("the a is value ="+a+" in class B");}
     static{System.out.println("the static in class B");}
     {System.out.println("the clock in class B");}
   }

5.Math.random() 的範圍是:[0,1)

6.將一個float或double值造型成整數值後,總是將小數部分“砍掉”,不作任何進位處理。例如:char a=(char)(1.4+'a')的值為'b';

7.十六進位(Base 16)——0x;八進位(Base 8)----0;
  按位元運算符~對於+數符號位先取反然後加1.如: ~3=-4;對於-數符號位取反然後減1.如 ~-2=1

8.移位元運算符
  移位元運算符面向的運算對象也是二進位的“位”。可單獨用它們處理整數類型 (主類型的一種)。左移位元運算符(<<)能將運算子左邊的運

算對象向左移動運  算符右側指定的位元(在低位補0)。“有符號”右移位元運算符(>>)則將運算  符左邊的運算對象向右移動運算子右側指

定的位元。“有符號”右移位元運算符  使用了“符號擴充”:若值為正,則在高位插入0;若值為負,則在高位插入1  。Java也添加了一種“

無符號”右移位元運算符(>>>),它使用了“零擴充”:  無論正負,都在高位插入0。這一運算子是C或C++沒有的。

9.記憶體回收機制的設計方案:
   reference counting 方案,自適應(adaptive)記憶體回收方案--stop-and-copy(停止-拷貝模式) 和 mark-and-sweep(標誌-清掃模式)

10.java有4中存取控制符:public,package(預設),protected,private;類只有兩種存取控制許可權:public,package(預設),類不能是private或

protected

11.singleton設計模式:
  public class A
  {
    private A(){}
    private static A a=new A();
    public A getA()
    {
      return a;
    }
  }

12.類的裝載通常發生在這個類的對象第一次被建立的時候,但是在訪問static資料或static方法的時候也被調用.

13.方法重載的方式:
   參數的類型不同 or 個數不同 or 順序不同.
   注:僅通過傳回值來確定方法的重載,編譯不通過.

14.abstract 與 interface:
  interface只提供形式,不談實現:
    interface中的資料成員天生就是public static和final的,方法預設是public的,當然在一個類中定義介面或類可以用private等修飾符.
    interface允許多重繼承(interface A extends B,C{} B,C是介面);
 
 
15.普通內部類中不允許有static方法,static屬性或static內部類(即嵌套類).

16.java中編譯後的.class名字:
    如:class A{
         class B{
           class C{}
          }
         public void f()
         {
           class D{}
         }
         public E getE()
         {
           return new E(){
            
           };
         }
       }
       interface E{}
  編譯後得到的.class檔案有:A.class,E.class,A$B.class,A$B$C.class,A$1.class,A$1D.class

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.