1. 程式人生 > >三、java基礎語法

三、java基礎語法

一、java的三個方向  java SE java EE java ME特點:一次編譯,處處執行二、 java語言基礎

* 1.識別符號:識別符號可以標識類名,變數名,介面名,方法名(凡是可以在java語言中可以起名的)
*        識別符號必須以數字,字母,下劃線,$組成,不能以數字開頭
*                  嚴格區分大小寫
*                  關鍵字不能做識別符號
*                  識別符號最好見名知意
* 類名:首字母大寫,後面每個單詞首字母大寫HelloWorld
* 2.關鍵字:定義的一些具有特殊含義的序列
*             關鍵字都是小寫
3.關於java語言中的字面值?
*    1.字面值:一眼看上去就知道是多少的資料,就是字面值(10,3.14,true,'a')
*    2.字面值得本質:字面值就是記憶體中的一塊空間,這塊空間有型別,有值
*    3.java語言中所有的字元都採用單引號括起來,java語言中所有的字串都用雙引號括起來

*/

public class day03 {
    public static void mian(String[] artgs){
        System.out.println(10);//整數型的字面值
        System.out.println(3.14);//浮點型
        System.out.println(true);//布林型
        System.out.println(false);//
        System.out.println('a');//字元
        System.out.println("sss");//字串
    }

}

三、變數

/*
* 關於java語言的變數
*
* 1.java中如何定義變數,語法:
* 資料型別,變數名
* 2.如何給變數賦值,語法:
* 變數名=值
* 3.變數的本質是什麼?
* 變數是記憶體中的一塊空間,這塊空間有“型別”,有“名字”,有“值”
* 4.深入變數
* //變數可以重複賦值,但不能重複宣告
//在同一個域中,變數名不能重複
*/

public class day04 {
    public static void main(String[] args){
        //int是一種資料型別,是整型
        int a;//在記憶體中開闢一塊空間,這塊空間的型別是整型,給這塊空間起名叫a
        
        
//賦值 a=100; System.out.println(a); //申請一塊int型別的空間,並起名b,並賦值10 int b=10; System.out.println(b); //重新賦值 b=100; //變數可以重複賦值,但不能重複宣告 //在同一個域中,變數名不能重複 //int b=1000;//error //java語言中變數必須先宣告,再賦值,才可使用 int c; c=20; System.out.println(c); //宣告三個變數,型別都是int型別,i1,i2兩個變數沒有賦值,只有i3賦值 int i1,i2,i3 =333; //System.out.println(i1);//i1沒有初始化,沒有賦值 System.out.println(i3); } public static void m1(){ int b=2000; } }

/*

*5.關於變數作用域,有效範圍,作用範圍
* 出了大括號就不認識
*/

public class day05 {
    //類體
    //宣告變數
    int m=100;
    public void m1(){
        int m=200;
        System.out.println(m);
    }
    public void m(){
        int k=100;
    }
    
    public static void main(String[] args){
        int m2=100;
        System.out.println(m2);
        //System.out.println(k);
        
        System.out.println("---------------------------------");

        for(int j=0;j<10;j++){
            System.out.println(j);
        }
        //System.out.println(j);
        System.out.println("---------------------------------");
        int p;
        for(p=0;p<10;p++){
            System.out.println(p);
        }
        System.out.println("p的值為"+p);
    }

}

/*
* 6.變數根據出現的位置可以分為兩種:
*    1.區域性變數:在方法體中宣告的變數為區域性變數,包括形式引數列表
*    2.成員變數:在方法之外宣告的變數統稱為成員變數
*/

public class Day06 {
    //成員變數
    int i=100;
    //成員變數
    int m;
    public void m1(){
        int k=100;//區域性變數
    }
    public void m2(){
        System.out.println(m);
        
    }
    public static void main(String[] args){
        Day06 nd=new Day06();
        nd.m2();
    }

四、資料型別:

* 資料型別:8種                     1 byte=8個bit                                     1kB=1024byte
* 1.基本資料型別:
*   整型(byte(1位元組):取值範圍:-128~127 1111 1111~0111 1111 (起始位為符號位,1表示負值,0表示正值)
*   short(2個位元組)
*   int(4個位元組),long(8個位元組))
*   浮點型(float(4個位元組),double(8個位元組))
*   字元型(char(2個位元組)):0~2的(16次方減1)0~65536
*   布林型(boolean(1個位元組),只取true,flase)

* 2.引用資料型別:陣列,類,介面
*/
/*
* 3.進位制換算
* 十進位制轉二進位制:除2取餘,逆序
* '    a'---97 'A'----65 '0'----48
*/

/*
* 4.字元編碼:
*   ASCII字元編碼:採用一個位元組編碼,主要針對英文編碼
*   GB2312/GBK/GB18030主要針對漢子編碼,三種編碼從容量上是包含關係
*   unicode:統一了世界上所有的文字編碼,unicode有幾種實現:UTF-8,UTF-16,UTF-32
*/

/*
* 5.關於char型別
*   1.char是字元型別,java中採用unicode編碼。
*   2.底層佔用兩個位元組
*   3.char型別涉及到字元編碼方式:

* 字元如果採用編碼和解碼不一致的話,會出現亂碼
*
*/

public class Day07 {
    public static void main(String[] args){
        char c1='a';
        //error
        //char c2='AB';
        //漢字佔用2個位元組,所以java中的char可以儲存一個漢字
        char c3='中';
        System.out.println(c3);
    }
}

/*
* 6.關於java語言中的整型資料
*   byte 1byte(8bit) -128~127
*   short 2byte
*   int 4byte
*   long 8byte
*
* 7.整數型別有三種表示方式:
*    十進位制
*    八進位制 以0開始
*    十六進位制 0x開始
*/
/*
* 結論:如果這個整數沒有超出byte,short,char的範圍,可以直接將這個整數賦值給byte,short,char
*/

public class Day09 {
    public static void main(String[] args){
        //十進位制
        int i1=10;//常用
        //八進位制
        int i2=010;
        //十六進位制
        int i3=0x10;
        
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        
        //將一個int型別的100字面值賦值給i4
        int i4=100;
        //將一個int型別的123字面值賦值給long的l1
        //int型別的容量小於long型別
        //一下程式存在型別轉換,只不過叫做“自動型別轉換”
        long l1=123;
        
        //由於123後面加了一個L,所以就會把123看做long型別
        //所以以下程式不存在型別轉換,只是一個複製運算
        long l2=123L;
        
        //int最大的值為2147483647,如果超過long l3=2147483648,則編譯不成功
        long l3=2147483647;
        long l4=2147483648L;//long型別
        
        //將long轉化成int型別,不能自動型別轉化
        //需要加強制型別轉換符
        //以下的程式雖然編譯通過,但是程式執行階段可能會損失精度,所以一定要謹慎
        //
        long m1=100;
        //int m2=m1;
        int m3=(int)m1;
        
        //記憶一個規則,如果這個整數沒有超出byte的範圍,可以直接將這個整數賦值給byte型別
        byte b1=10;
        byte b2=127;
        //byte b3=128;//128超出範圍byte的取值範圍
        
        //如果這個整數沒有超出short的範圍,可以直接將這個整數賦值給short
        short s1=32767;
        //short s2=32768;
        
        //如果這個整數沒有超出char的範圍,可以直接將這個整數賦值給char
        char c1=97;
        char c2=65535;
        //char c3=65536;

        
        
        
    }

}

/*
* 8.關於浮點型
*   float 4個位元組
*    double 8個位元組
*
*/

/*
* 9.布林型別:
*   1.boolean型別的資料只有true和false,沒有1和0
*   2.boolean型別的資料主要在邏輯運算和條件控制語句中
*   3.在java中基本型別可以互相轉化,boolean型別比較特殊不可以轉換其他型別
*   4.預設轉化:容量小的型別自動會轉化為容量大的型別
*      1.byte--->short--->int--->float--->double
*          char---->
*      2.byte,short,char之間不會相互轉換,只能先轉化成int
*    5.強制轉換:
*      1.將容量大的型別轉換成容量小的型別,需要進行強制轉換成int
*      2.只要不超出範圍,可以將整型值直接賦值給byte,short,char
*      3.在多種型別混合運算中,首先將所有的資料型別轉化成容量大的那種,在運算
*/

public class Day10 {
    public static void main(String[] args){
        double d1=1.2;
        //強制型別轉化
        //float f1=3.2;
        float f2=(float)3.2;
        float f3=3.2F;
        
        boolean sex=true;
        if(sex){
            System.out.println("男");
        }else{
            System.out.println("女");
        }
        
        //byte,short,char做混合運算時候先各自轉化成int做運算
        byte b1=10;
        short s1=20;
        int i1=b1+s1;
        System.out.println(i1);
        //byte b2=b1+s1;
    }
}

/*
* 10.關於基本資料型別轉換規則:
*   1.8種基本資料型別除boolean型別之外可以相互轉化
*   2.小容量向大容量轉換叫做自動型別轉化
*   3.byte--->short--->int--->long--->float--->double
*       char--->
*   4.byte,short,char做混合運算時候,各自都先轉化成int再做運算
*   5.大容量向小容量轉換時強制型別轉化,需要強制型別轉化(編譯雖然通過,執行期可能損失精度,謹慎使用)
*   6.如果整數沒有超出byte,short,char的取值範圍,可以直接將這個整數賦值給byte,short,char
*   7.多種資料型別做混合運算,先轉換成容量大的那種,再做運算
*   8.byte:-127~128 short:32767
*/

public class Day11 {
    
    public static void main(String[] args){
        //超出byte範圍
        //byte b1=1000;
        byte b2=20;
        
        short s1=1000;
        //變數不能重名
        //short b2=1000;
        
        int i1=1000;
        //小容量向大容量轉換,自動轉換
        long l1=i1;
        //將long強制轉換成int型別
        
        //int i2=l1;
        //因為大型別向小型別轉換會出現問題,精度缺失
        int i3=(int)l1;//因為1000沒有超出int範圍,所以轉換時正確的
        //因為java中的運算會轉換成最大的型別
        //而10和3預設為int,所以運算後最大的型別為int
        int i4=10/3;
        
        //宣告10為long型別
        long l2=10;
        //出現錯誤,多個型別混合運算過程中,會轉換成容量最大的型別
        //以下示例最大的型別為long,而i5為int,所以就會出現大型別的long到小型別int
        //int i5=l2/3;
        //可以強制轉換,運算結果沒有超出int範圍
        int i6=(int)l2/3;
        //可以使用long來接收運算結果
        long l3=l2/3;
        
        //出現精度缺失問題,以下問題主要是優先順序的問題:
        //將l2轉化成int後,再將int型別的l2轉換成byte型別,然後和3運算,那麼運算結果是int型別而非byte型別
        //byte b3=(byte)(int)l2/3;//錯誤
        int b4=(byte)(int)l2/3;
        byte b5=(byte)(int)(l2/3);
        //不能轉換,需要先轉換成int---》byte
        //byte b6=(byte)l2/3;
        byte b7 =(byte)(l2/3);
        
        short s2=100;
        byte b8=5;
        //錯誤,short和byte型別運算,先轉化成int在運算,所以int賦值給short會精度缺失
        //short s3=s2+b8;
        short s4=(short)(s2+b8);
        
        char c1='a';
        System.out.println(c1);
        //將char轉化成byte型別
        System.out.println((byte)c1);
        
        int i10=c1+100;
        System.out.println(i10);
        
        

    }
}

 

五、轉義字元

* 1.關於轉義字元
*   \t
*   \n
*   \'
*   \"
*
*/

/*
*2. 預設值:
*   byte,short,int,long:0
*   float,double:0.0
*   boolean: false
*   char \u0000
*/

public class Day08 {
    public static void main(String[] args){
        /*
        char c1='t';
        System.out.print(c1);
        System.out.println("abc");
        */
        // \斜線在java語言中有轉義功能,可以將普通的字元t,轉化成製表符
        char c1='\t';
        System.out.print(c1);
        System.out.println("abc");
        
        
        char c2='\'';
        System.out.println(c2);
        
        char c3='\\';
        System.out.println(c3);
        
        char c4='\"';
        System.out.println(c4);
        
        char c5='\n';
        System.out.print("abc");
        System.out.print(c5);
        System.out.println("def");
    }

}