Java基礎語法

1.註釋:

單行註釋:// “//”後的內容會被註釋掉

多行註釋:/* 註釋

註釋**/ “/* * */"中間的內容會被註釋

文本註釋:/** 註釋

*註釋

*註釋

*/ 每一行可以添加一些功能

2.標識符:

關鍵字:系統定義的,用於聲明或者具有特殊功能的。取名時避開這些。

Java所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符。

注意點:

  • 所有的標識符都應該以字母(A-Z或a-z),美元符($)、或者下劃線(_)開始
  • 首字母之後可以是字母(A-Z或a-z),美元符($)、下劃線(_)或者數字的任何字符組合
  • 不能使用關鍵字作為變量名或者方法名
  • 標識符是大小寫敏感的
  • 可以使用中文命名,但是不推薦使用

3.數據類型:

強類型語言:變量必須嚴格規定,所有變量都必須先定義後使用。

弱類型語言:變量可以不嚴格符合固定。
Java的數據類型分為兩大類:基本類型(primitive type)和引用類型(reference type)
基本數據類型:數值類型(整數類型:byte、short、int、long;浮點類型:float、double;字符類型char)和boolean類型(佔1位,只有true和false兩個)。其中byte佔一個字節,short佔兩個字節,int佔四個字節,long佔八個字節,float佔四個字節,double佔八個字節,char佔兩個字節。
引用數據類型:類、接口、數組。

整數擴展:

進制:二進制0b(0、1) 八進制0(0-7) 十進制(0-9) 十六進制0x(0-9、A-F)

浮點數擴展:

float是有限的,存在舍入誤差,他只能接近但是不等於。最好完全避免使用浮點數進行比較,涉及精確計算的使用類BigDecimal。

字符擴展:

所有的字符本質還是數字,可以使用int強制轉換進行輸出對應的Unicode編碼。

//System.out.println((int)c1);
Unicode有一張表,每個字符都在其中擁有對應的數字編號。0-65536
char c2='\u0061'
System.out.println(c2);//a

即可輸出對應編號的字符a。

判斷兩個字符、數字是否相等,實質上比的是地址空間。

轉義字符:

\t:製表符 \n:換行

布爾值擴展:

布爾值常用來作為判斷條件,if(flag){}

類型轉換:

Java是強類型語言,進行運算的時候,常需要類型轉換。

例:int i=128;
byte b=(byte)i;//在前面加(),裏面寫強制轉換的類型。(類型)變量名
但此時byte超出範圍了,寫代碼的時候要規避這種情況。
//強制轉換  高--->低
//自動轉換  低--->高
低-------------------------------------------------------------->高
byte,short,char-->int-->long-->float-->double

注意點:

1.不能對布爾值進行轉換

2.不能把對象類型轉換為不相干的類型

3.在把高容量類型轉換到低容量內存的時候,需要強制轉換

4.轉換的時候可能會出現內存溢出或者精度問題的情況,需要多留意

操作比較大的數字的時候,都需要注意溢出問題。(可以使用”_“隔開數字,便於觀看,不影響輸出)

int money=10_0000_0000;
int years=20;
int total1=money*years;//溢出
long total2=money*years;//默認是int,在轉換成long之前已經存在問題了
long total3=money*((long)years);//先把一個數字轉換為long,此時右邊才會以long運算。

變量:

變量就是可以變化的量,每個變量都必須聲明其類型。

Java變量是程序中最基本的存儲單元,包括變量名,變量類型和作用域。

xtype varName [=value] [{,varName[=value]}]
//數據類型 變量名=值;可以用逗號隔開去聲明多個同類型變量。但是不推薦使用,難以觀看管理。

注意:

1.每個變量都有類型,可以是基礎類型也可以是引用類型。

2.變量名必須是合法的標識符。

3.變量聲明是一條完整的語句,每一個聲明都必須以分號結束。英文的分號。

public class Demo {
    static int allClicks=0; //類變量
    String str="Hello World!"; //實例變量

    public void method(){
        int i=0; //局部變量
    }
}
public class Demo {
    //類變量 static
    static int allClicks=20; //類變量
    //實例變量:從屬於對象,如果不初始化,數值類型的默認值是0 0.0
    //布爾值:默認false
    //除了基本類型,其他的默認值都是null
    String name;
    int year;
    String str="Hello World!"; //實例變量
    //main方法
    public static void main(String[] args) {
        //局部變量:必須聲明和初始化
        int i=10; //局部變量
        System.out.println(i);
        //實例變量的使用
        //變量類型 變量名字 = new Demo();
        Demo obj=new Demo();
        System.out.println(obj.name);
        System.out.println(obj.year);
        System.out.println(obj.str);
        //類變量 static
        System.out.println(allClicks);
    }
    //其他方法
    public void method(){
    }
}

常量:

Constant,初始化後不能再改變值。

常量可以理解為特殊的變量,值被設定後,在程序運行過程中不允許改變。

final 常量名=值;

常量名一般使用大寫字符。

public class Demo1 {
    //修飾符不區分前後順序
    static final double PI=3.1415926;
    final static double PI2=3.1415926;
    public static void main(String[] args) {
        System.out.println(PI);
        System.out.println(PI2);
    }
}

變量的命名規範:

  • 所有的變量、方法、類名最好命名可以知道它的含義,不要使用拼音,用英文單詞。
  • 類成員變量:首字母小寫和駝峯原則:monthSalary
  • 局部變量:首字母小寫和駝峯原則
  • 常量:大寫字母和下劃線:MAX_VALUE
  • 類目:首字母大寫和駝峯原則:Man,GoodMan
  • 方法名:首字母小寫和駝峯原則:run(),runRun()

運算符:

  • 算術運算符:+,,*,/,%,++,--
  • 賦值運算符:=
  • 關係運算符:>,<,>=,<=,==,!=,instanceof
  • 邏輯運算符:&&,||,!
  • 位運算符:&,|,^,~,>>,<<
  • 條件運算符: ? :
  • 擴展賦值運算符:+=,-=,*=,/=

運算時若有一個數字為long(double),則結果均為long(double),負責全為int。

a++// 先賦值,再自增

++a//先自增,再賦值

//邏輯運算符
public class Demo3 {
    public static void main(String[] args) {
        //與&& 或|| 非!
        boolean a=true;
        boolean b=false;
        System.out.println("a&&b:"+(a&&b));
        //邏輯與運算:兩個都為真才為真
        System.out.println("a||b:"+(a||b));
        //邏輯或運算:有一個為真即為真
        System.out.println("!(a&&b):"+(!(a&&b)));
        //邏輯非運算:真即為假,假即為真
        //短路運算
        int c=5;
        boolean d=(c<4)&&(++c<4);
        //&&之前的為假,直接返回運算結果了,不在計算&&之後的
        System.out.println(c);//所以c沒有自增
        System.out.println(d);
    }
}
public class Demo4 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        //字符串連接 + ,String
        System.out.println(a+b);//30
        System.out.println(""+a+b);//1020 字符串在運算前是連接
        System.out.println(a+b+"");//30 字符串在後邊是運算
        //三元運算符
        //x?y:z 如果x為true,輸出y,否則輸出z
        int c=10;
        System.out.println(a>b ? c:b);
    }
}

包機制:

包是為了更好的組織類,用於區別類名的命名空間。包就是文件夾。

語法格式:

package pkg1[. pkg2[. pkg3...]];

Java程序導入包時,使用"import"語句。

import package pkg1[. pkg2...].(classname|*);