JAVA第二周

來源:互聯網
上載者:User

標籤:

  一、 第五章 

調試斷點debug    

  1、定位邏輯錯誤(設定斷點)    

  2、啟動調試    

  3、逐步執行,觀察變數    

  4、修改

 null與" "是有區別的,後者分配了空間

調用方法  

當一個方法正在執行時,有三種情況  

  1、方法返回一個值  

  2、方法不反回一個值  

  3、方法拋出一個異常給調用者(以後專門討論)

方法簽名  

  方法簽名包括存取修飾詞、可選修飾符、  方法名、參數列表、傳回值的資料類型等資訊  

  例如:   public static double random()

存取修飾詞

   public、private、protected

可選修飾符  

  static、final、abstract、native、synchronized.  

  用static修飾的方法為靜態成員,為類的所有對象共用  

  在靜態方法中,只能夠直接調用靜態成員,不能直接調用非靜態成員     

  靜態成員的調用,通過類名打點的方式調用  

  在成員方法中(未被static修飾的方法),可以直接調用靜態成員與非靜態成員  

  形式參數與實際參數 按值調用 方法重載(真他媽機智的方式,也叫做靜態多態)  

  當一個類有兩到多個同名但是有不同參數列表的方法時,就是方法重載。  

  重載一個方法,只要方法的形式參數列表對編譯器來說是截然不同時,就會方法重載。  

  與參數的類型相關,與名字無關。  

  例如:getDay(int year)與getDay(int day)不是方法重載   

  而println()中如果輸入不同的參數就可以調用不同的方法

   構造器  Person someOne = new Person();

   注意:構造方法的名字必須和類名一致,構造方法沒有傳回型別       

  預設情況下,類中有一個無參構造方法       

  例如:public Person( ){

     }       

  並且我們可以在這個構造方法中初始化資料。       

  除此之外,我們可以建立一個含參數的構造方法。       

  注意:如果我們寫出了有參構造器時,系統不會再產生無參構造器,如果要使用,必須自己重新再寫。  

  構造器是一個特殊的方法,它在類建立一個執行個體時被調用執行。  

  構造器的目的是初始化類的執行個體,使其成為一個有效狀態。  

  只要是一個對象被建立,構造器中再調用同一個類中其他的構造器,用到this語句 (必須要是構造語句中的第一句)。  

  例如:   public Person(int stuNum,char name){

    }   

      public Person(int stuNum,char name,String age){    

        this(stuNum,name);   

      }

比較字串的大小  

  忽略大小寫.equalsIgnoreCase( );    

 

   二、第六章

數組  

  什麼是數組? 

   數組是儲存在一個連續的記憶體塊中的元素集合     

   數組中的每個元素必須是相同的資料類型,並且通過索引  進行區分。

   數組中的第一個元素的索引為0

 為什麼要使用數組?     

  單一實值型別變數有時候很難滿足應用程式的設計要求。     

  數群組類型變數可以同時儲存多個同類型基礎資料類型變數或對象。

建立數組  

  聲明數組      

  int score [];      

  int [] score;//提倡使用的方式  分配空間      

  score = new int [10];(分配空間後,預設的值是0)      

  ArrayIndexOutOfBoundExceotion(數組下標越界)  

  聲明並分配空間     

  int [] score = new int [10];

   初始化      

  score [0] = 1;  

  聲明、分配空間並初始化      

  int [] score = new int []{1,2,3,4,5};      

   int [] score = {1,2,3,4,5};//不能分開成兩條語句

   數組的大小(長度)     

  用到length屬性     

  例如:for(int i = 0;i < score.length;i++){    sum += score;    }    

   int avg = sum / score.length;     

  java中的數組是對象

  補充  

  迴圈結構for each:用於數組或者集合的遍曆操作   

  用法:for(單個資料類型  變數 : 數組或集合的名稱){

       }   

  例如:   for (int item : score){         sum += score;    }  

  注意:不可以通過item改變數組元素的值

  對象數組/* 痛點 */  

  User [] users = new User[100];

  數組拷貝  

  使用Arrays.copyof(oraginalArrays,length)  

  int [] score = new int []{1,2,3,4,5};  

  int [] temp = Arrays.copyof(score,score.length);

  數組的排序(升序)  

  簽名  public static void sort(int [] a)

  多維陣列  

  arrays[行][列]  

  arrays.length 的結果值是行數  

  arrays[0].length的結果是列數  

  如何遍曆?  

  for (int [] is : arr){  

     for(int [] i : is){

      }      

   }  

 

  三、JVM  

java程式運行在JVM上  

JVM是java程式和作業系統之間的橋樑  

JVM實現了java的平台無關性  

JVM是記憶體配置原理的基礎與前提

記憶體配置  

——寄存器     

  JVM內部虛擬寄存器,存取速度非常快,程式不可控制  

——棧(First in,last out)     

  儲存局部變數的值,包括:

    1、用來儲存基礎資料型別 (Elementary Data Type);     

    2、儲存類的執行個體(即堆區對象)的引用(指標)  

——堆     

  用來存放動態產生的資料,比如new出來的對象。  

  注意建立出來的對象只包含屬於各自成員變數,並不包含成員方法。  

  因為同一個類的對象擁有各自的成員變數,儲存在各自的堆中。

——java運行過程涉及的記憶體地區     

  1、常量池           

    常量池就是這個類型用到的常量的一個有序集合   

例如字串的建立    

  String str = "abc";    

    這裡是在常量池中尋找或者建立abc,再由棧引用常量池中的值   

    而String str2 = new String("abc");(這兒會建立兩個對象,分別在堆和常量池中)    

    先在堆中拷貝下常量池中的值,再由棧引用堆中的值   

    注意: System.out.println(str == str2);比較的是地址的值,返回false;         

  2、程式碼片段     

  3、資料區段  

字串常用的方法

 測試尾碼名字是否相同  

  public boolean endswith(String suffix);

 返回指定字元在此字串中第一次出現的索引  

  public int indexOf(int ch);

  傳回值是否為空白

   public boolean isEmpty();  

       若且唯若length()為0時返回true.

  分割字串  

  public String[] split (String regex);  

  Regex  

結果  :     { "boo", "and", "foo" }

    o  { "b", "", ":and:f" }

  返回一個新的字串,它是此字串的一個子字串。

  該子字串從指定索引處的字元開始, 直到此字串末尾。

     public String substring(int beginIndex);     

    樣本:  

       "unhappy".substring(2) returns "happy"   

      "Harbison".substring(3) returns "bison"   

      "emptiness".substring(9) returns "" (an empty string)

使用預設語言環境的規則

  將此 String 中的所有字元都轉換為小寫

     public String toLowerCase();

  使用預設語言環境的規則將此

  String 中的所有字元都轉換為大寫  

    public String toUpperCase();

  返回字串的副本,忽略前置空白和尾部空白(去掉前後空格)  

    public String trim();

 字串的拼接  

  String name = "張三";  

  String address = "成都";  

  String infor = name + address;    

  StringBuilder = new StringBuilder();  

 

    四、補充

在字串中,length是一個屬性,後面不加括弧  

而在求字串的長度的時候,調用的是一個方法,length後面要加括弧

 存取修飾詞    

        本類 同一包中不同類 不同包 子類  

public         ?           ?               ?       ?

protected    ?           ?                       ?  

default        ?           ?  

private        ?   

註:?表示可以使用

JAVA第二周

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.