天天看點

JAVA_XXBJ_ALL一、變量二、資料類型三、運算符四、結構語句:五、數組六、方法七、面向對象八、線程九、圖形使用者界面

一、變量

1、Java命名規範:

1.駝峰命名法   studentName  (不報錯)
        2.辨別符由字母數字和特殊符号組成(報錯)
               注意:不能以數字開頭
                    特殊符号僅僅局限為:¥ $ _
        3.類名的首字母要大寫(不報錯)
        4.不能使用關鍵字來命名(報錯)
        5.不建議使用中文來命名(不報錯)
           

2、變量:可以改變的量(資料)。

1、本質:是一個存儲空間,存儲的是使用者需要用到的資料。
        2、為什麼要使用變量的存在?
                 通過變量來存儲使用者需要的資料,程式通過操作變量來間接的達到操作資料的目的。
            比直接操作資料更加友善和安全。
        3、如何去使用變量?
                 文法: 資料類型 變量名;---------聲明一個變量
                  初始化一個變量:聲明 + 指派。 int a = 1;
           

*經典面試題:聲明一個變量的同時有沒有開辟存儲空間?

聲明一個變量的同時開辟了存儲空間。
                因為:變量存在的意義就是存儲資料,如果沒有開辟存儲空間的話,該變量不能被指派。
             該變量将沒有意義。
           

*經典面試題:沒有被初始化的變量能不能被直接通路?

不能,否則會報編譯錯誤。
           

二、資料類型

1、Java中的資料類型: 基本資料類型 、引用類型

Java中的基本資料類型8種:
          整數類型:byte(位元組型)< short(短整型)< int(整形) < long(長整型)
          浮點型(小數類型):float double
              float(單精度浮點型):
              double(雙精度浮點型)常用:
          字元型:char
              char類型可以存儲一個中文漢字,占2個位元組。
          布爾型(開關類型):boolean
      引用類型:JDK類庫自帶的,使用者自定義的。
           

2、字元串的連結:

+:連接配接符的使用,字元串與字元串之間的+是連接配接符
  字元串旁邊的+都是連接配接符
           

3、資料類型的轉換:

1、byte short char 在進行數學運算的時候,先自動轉化為int類型的整數,然後再進行數學運算。
    2、在Java中,所有整數的直接量 都預設是int類型。
           

三、運算符

1、運算符:

指派運算符: =
      數學運算符:+ - * / %        
      進階指派運算符:+= -= *= /= %=
      關系運算符:> < >= <= == != 運算的最終結果是bool類型
      邏輯運算符:&& !
      位移運算符:>> <<
      三目運算符:表達式1 ?表達式2 : 表達式3
           

*經典面試題:&& 與 & 的異同點:

相同點:
       二者都滿足 見false為 false。表達式1 && 表達式2,表達式1和表達式2
       有任意一個為false,整體的結果為false,二者都為true,結果才為true。
   不同點: 
        && :當表達式1為false時候,表達式2不執行。
        & : 無論表達式1是true,還是false,表達式2都依然執行。
   ||:短路或     &&:短路與
           

四、結構語句:

1、條件控制

if(表達式){
       語句塊1;
     }else{
       語句塊2;
     }
     如果條件表達式的結果為true,執行語句塊1,否則執行語句塊2。
   
if(表達式){
     }else if(表達式){
     }else{
     }
           

2、多分支結構(選擇分支結構)switch case

switch(擷取值){//擷取值:整數//1.6之後可以字元串
         case 值1:
             語句塊1;
             break;
         case 值2:
             語句塊2;
             break;
           ...
         default:
             語句塊n;
     }
           

3、循環結構

1、while循環
        文法結構:
          while(循環條件){
              循環體;
          }
       循環條件:可以是一個布爾類型的表達式,也可以是布爾類型的值
      while循環特點:
           不限次數的循環,滿足某一條件的時候,跳出循環。
     while循環嵌套:
         while(){//外循環
           while(){
           //内循環}
           }
    2、do while循環
        文法結構:
          do{
           循環體;
           }while(循環條件);
           //特點:先執行一次,然後再進行判斷是否滿足循環。
                 3、for循環
        文法結構:
            for(循環變量;循環條件;循環變量變化方式){
                循環體;
            }
           

4、跳出循環

break:跳出目前循環。
    continue:終止本次循環,進入下次循環。
    return:直接結束所有循環(結束目前循環所在的方法,return後面的内容,都不再執行)
           

五、數組

1、建立數組(數組的初始化)有兩種方式: 靜态建立,動态建立

靜态建立:建立數組的同時,開辟存儲空間,且給存儲空間指派。
                int [] arr {1,2,3,4,5};
      動态建立:資料類型 [] 數組名 = new 資料類型[數組長度]
           ex:  int [] arr = new int [4];
           

2、數組的複制:

1.假複制
    2.數組元素的複制:System.arraycopy(源數組 ,源數組的起始位置 ,目标數組 ,目标數組的起始位置,複制的元素個數);
    3.數組的複制:Arrays.copyOf(源數組, 長度);
    4.修改數組的長度
3、數組的排序:
    Arrays.sort(數組名);
           

六、方法

1、文法結構:

修飾符 static 傳回值類型 方法名(參數清單){
           方法體;        
      }
           

2、含義:

傳回值類型:
        資料類型: 基本資料類型  引用類型
        關鍵字:void
    方法名:符合Java的命名規範
    參數清單:可以有0個或多個參數
    方法體:是方法的具體執行内容
           

七、面向對象

1、特征

封裝、繼承、多态
           

2、構造方法(函數)/構造器:

定義:方法名和類名相同,且沒有傳回值類型的方法,叫做構造方法。
       無參構造方法:建立對象
       有參構造方法:建立對象 傳值
      作用:1.建立對象。
             2.傳值。
           

*經典面試題:面向對象的特征

封裝、繼承、多态    
           

3、類和對象

類(類型):是具有相同特性和行為的對象的抽象。//Person
      對象:是類的一個代表(執行個體化)//類的執行個體化    //Person中的某一個人 (名字 學号 年齡)
           對象可以是抽象的,也可以是非抽象的。
           一切皆為對象。//能看到的,看不到的(空氣)                                                                                        
           

4、繼承 關鍵字:extends

子類 繼承 父類:Son extends Father
    子類可以繼承(擁有)父類可被繼承的功能和屬性(私有化除外),
    同時還可以建立自己的功能和屬性。
    注意:一個類隻能 繼承一個父類。
    在Java當中,繼承關系是單繼承關系。
        Object是所有類的父類。(頂級父類)//預設繼承
           

5、多态:

是同一個行為具有不同表現形式的能力。(同一種事物的不同表現形式),多展現在方法上面。
*經典面試題:實作多态的兩種機制是什麼?并分别進行解釋說明。
    重載和重寫
     重載:在同一個類當中,方法名相同,參數清單不同,叫做重載。
     重寫(覆寫):在繼承關系當中,方法簽名相同(方法名和參數清單都相同),方法體不同,叫做重寫。
           

6、向上造型:父類聲明子類對象。

父類聲明子類對象:ex:Father s = new Son();
         該對象(S)擁有的屬性和方法都是父類的。但是當調用子類重寫父類的方法時,
         編譯期間執行的是父類的方法,運作期間執行的是子類的方法。
           

7、this、super

this關鍵字:指代目前對象。
      this(參數清單):可以調用本類裡面的其他構造方法,具體調用哪個構造方法,
          根據this方法中的參數清單來确定。
          特殊情況:this方法隻能放在構造方法的第一行。
      super:super指代父類的對象。
      super方法,可以調用父類的構造方法,根據super方法的參數清單确定具體調用哪一個構造方法
           

*經典面試題:this()和super()可不可以同時出現?

不能。因為this()和super()都必須放在構造方法的第一行。有沖突,二者不能同時出現
           

8、抽象:

關鍵字:abstract
      抽象類:用abstract修飾的類叫做抽象類。
      抽象方法:用abstract修飾的方法叫做抽象方法。
      能夠定義(存儲)抽象方法的類一定是抽象類。√
      抽象類裡面一定要有抽象方法。×         
           

9、接口:

接口是一個特殊的抽象類,接口中的方法都是抽象方法,和常量。(解決類單一繼承問題)
      關鍵字:interface
    類和接口的關系是實作,類可以實作接口。
           

10、final:

final修飾變量,不能被更改
        final修飾的方法不能被重寫
        final修飾的類:不能被繼承
        static final配合修飾的是常量
        String類被final修飾
           

八、線程

建立線程的兩種方式:繼承Thread類、實作Runnable接口
        線程的生命周期:
       建立線程(兩種方式)----就緒狀态(start方法,啟動線程)-----運作狀态(執行run方法)--
       阻塞(休眠)狀态---死亡狀态(線程結束)
           

九、圖形使用者界面

public class JFrameTest {
 /**
  * 建立一個800×400的窗體,并設定背景顔色。
  */
 public static void main(String[] args) {
      // 1、建立一個窗體(JFrame)的對象。
      JFrame frame = new JFrame();
      // 3、設定窗體的寬高為800×400px。
      frame.setSize(600, 400);
      // 4、設定窗體的坐标位置居中。     frame.setLocation(200, 100);
      frame.setLocationRelativeTo(null);
      // 5、設定預設關閉按鈕功能(關閉界面的同時結束程式)。
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // 6、設定窗體的大小不可被更改。
      frame.setResizable(false);
      // 7、取消窗體邊框。
      frame.setUndecorated(true);
      
      
 /*// 8、設定窗體的背景顔色。
      frame.setBackground(Color.BLACK);*/
      
// 8、建立一個面闆對象panel。
      JPanel panel = new JPanel();
      // 9、設定面闆顔色。(自制/選擇)
      panel.setBackground(new  Color(182,10,200));//panel.setBackground(Color.BLACK);
      // 10、窗體添加面闆。
      frame.add(panel);
      // 2、設定窗體可見。
      frame.setVisible(true);
 }
 }