天天看點

Java基礎文法學習筆記Java基礎文法

Java基礎文法

1. 注釋、辨別符、關鍵字

注釋

書寫注釋是一個非常好的習慣

  1. 單行注釋
  2. 多行注釋
    /*
    多行注釋 可以注釋一段文字
    */
               
  3. 文檔注釋
    /**
     * @Description HelloWorld 描述
     * @Author 水木林生 作者
     */
               

辨別符

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

Java基礎文法學習筆記Java基礎文法

注意點

  1. 所有辨別符都應該以字母(A-Z 或a-z),美元符($),或下劃線(_)開始
  2. 首字元之後可以是字母(A-Z 或a-z),美元符($),下劃線(_)或數字的任何字元組合
  3. 不能使用關鍵字作為變量名或方法名
  4. 辨別符大小寫敏感
  5. 可用中文命名,但不建議

2. 資料類型

基本類型

Java基礎文法學習筆記Java基礎文法
//八大基本資料類型

//整數

int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//Long類型要在數字後面加個L

//小數:浮點數
float num5 = 50.1F;//float類型要在數字後面加個F
double num6 = 3.141592653589793238462643;

//字元
char name = 'A';
//字元串,String不是關鍵字,類
String namea = "梁彪";

//布爾值:是非
boolean flag = true;
//boolean flag = true;
           

資料類型拓展

//整數拓展  進制 二進制0b  十進制 八進制0 十六進制0x

int i = 10;
int i2 = 010;//八進制0
int i3 = 0x10;//十六進制0x   0~9 A~F 16

System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("============================================");

//============================================
//浮點數拓展     銀行業務怎麼表示?錢
//BigDecimal    數學工具類
//============================================
//float     有限  離散  舍入誤差    大約  接近但不等于
//double
//最好完全避免使用浮點數進行比較
//最好完全避免使用浮點數進行比較
//最好完全避免使用浮點數進行比較


float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false

float d1 = 2323232312323f;
float d2 = d1 + 1;

System.out.println(d1==d2);//true


//============================================
//字元拓展
//============================================
char c1 = 'a';
char c2 = '中';
System.out.println("============================================");
System.out.println(c1);
System.out.println((int)c1);//強制轉換資料類型

System.out.println(c2);
System.out.println((int)c2);//強制轉換資料類型

//所有的字元本質還是數字
//編碼 Unicode 2位元組    0-65536   早期Excel最多能表示到2^16

//U0000 UFFFF

char c3 = '\u0061';
System.out.println(c3);//a

//轉義字元
// \t
// \n
//......

System.out.println("Hello\tWorld\n");

System.out.println("============================================");
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa==sb);

String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc==sd);
//對象    從記憶體分析

//布爾值擴充
boolean flag = true;

//if (flag){}
//if (flag == 1){}
//Less is More
           

引用類型

Java基礎文法學習筆記Java基礎文法

3. 類型轉換

低----------------------------------------------------------------->高

byte, short, char, --> int --> long --> float --> double

運算中,不同類型的資料先轉化為同一類型,然後進行運算

轉換執行個體:

int i = 128;
byte b = (byte)i;

//強制轉換 (類型)變量名 高--低
//自動轉換  低--高

System.out.println(i);
System.out.println(b);

/*
主義點:
1. 不能對布爾值進行轉換
2. 不能把對象類型轉換為不相幹的類型
3. 在把高容量轉換到低容量的時候,強制轉換
4. 轉換的時候可能存在記憶體溢出,或者精度問題
*/
System.out.println("==============");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f);//-45

System.out.println("==============");
char c = 'a';
int d = c+1;
System.out.println(d);//98
System.out.println((char)d);//'b'
           

特殊轉換執行個體:

//操作比較大的數的時候,注意溢出問題
int money = 10_0000_0000;//JDK7新特性,可以在數字之間使用下劃線
int years = 20;
int total = money*years;//-1474836480,計算的時候溢出了
long total2 = money*years;//預設是int,轉換之前已經存在問題了

long total123 = money*((long)years);//先把其中一個值轉換為long型
System.out.println(total123);

//盡量用大寫的L
           

4. 變量、常量

變量

Java是一種強類型語言,每個變量都必須聲明其類型

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

type varName	[=value] [{,varName[=value]}];
//資料類型	變量名	= 值;可以用逗号隔開來聲明多個同類型變量
//不建議一行多個變量名
           

注意事項

  • 每個變量都有類型,類型可以是基本類型,也可以是引用類型
  • 變量名必須是合法的辨別符
  • 變量聲明是一條完整的語句,是以每個聲明都必須以分号結

變量作用域

  • 類變量
  • 執行個體變量
  • 局部變量
//類變量   static
static double salary = 2500;

//屬性:變量

//執行個體變量:從屬于對象;如果不自行初始化,預設為該變量類型的預設值,基本為0或0.0
//布爾值:預設為false
//除了基本類型,其餘的預設值為null
String name;
int age;


//main 方法
public static void main(String[] args) {

    //局部變量,作用域在方法内。必須聲明和初始化值
    //例如以下:
    int i = 10;
    System.out.println(i);

    //變量類型  變量名字 = new Demo08();
    Demo08 demo08 = new Demo08();
    System.out.println(demo08.age);
    System.out.println(demo08.name);

    //類變量   static
    System.out.println(salary);

}




//其他方法
public void add(){

}
           

常量

常量名一般使用大寫的字元,關鍵字:final

//final 常量名 = 值;
final double PI = 3.14;

//修飾符,不存在先後順序
 static final double PI = 3.14;
           

變量的命名規範

  • 所有變量、方法、類名:見名知意
  • 類成員變量:首字母小寫和駝峰原則:monthSalary
  • 局部變量:首字母小寫和駝峰原則
  • 常量:大寫字母和下劃線:MAX_VALUE
  • 類名:首字母大寫和駝峰原則:Man,GoodMan
  • 方法名:首字母小寫和駝峰原則:run(),runRun()

5. 運算符

算數運算符

//二進制運算符
//ctrl + D : 複制目前行到下一行
int a = 10;
int b = 20;
int c = 3;
int d = 10;

System.out.println(a+b);// 30 = 10 + 20
System.out.println(a-b);//-10 = 10 - 20
System.out.println(a*b);//200 = 10 * 20
System.out.println(a/b);//  0 = (10 / 20) = 0.5 由于是int型,故向數值小的整數取整,取0
System.out.println(d%c);//  1 = (10 / 3 )  餘數為 1 ,故最後的值為 1 

//不同類型的變量的運算結果類型比較
long a = 123123123123L;
int b = 123;
short c = 10;
byte d = 8;

System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int

//幂運算2^3    2*2*2 = 8;
double pow = Math.pow(2,3);
System.out.println(pow);


           

關系運算符

//關系運算符傳回的結果是:正确或錯誤(布爾值)
//通常結合if使用

int a = 10;
int b = 20;
int c = 21;

System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true

           

自增運算符

//++ 自增     -- 自減  一進制運算符
//
int a = 3;

int b = a++; //a++  先指派,再運算 a = a + 1;
int c = ++a; //++a  先運算a = a + 1,再指派 ;


System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
           

邏輯運算符

//與(and)    或(or)   非(取反)
boolean a = true;
boolean b = false;

System.out.println("a && b:"+(b&&a));//邏輯與運算:兩個變量都為true,結果才為true
System.out.println("a || b:"+(b||a));//邏輯或運算:兩個變量有一個為true,結果就為true
System.out.println("!(a && b):"+!(b&&a));//邏輯非運算:如果為true,則變為false,反之亦然

//短路運算
int c = 5;
boolean d = (c<4)&&(c++<4);//前面的運算為假,不滿足與運算為true的條件,後面的語句将不執行,從輸出的結果可以看出
System.out.println(d);
System.out.println(c);
           

位運算

/*
A = 0011 1100
B = 0000 1101
----------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B  = 1111 0010

2*8 = 16 ----> 2*2*2*2

左移<< 相當于*2
右移>> 相當于/2
 */

System.out.println(2<<3);//8

           

擴充指派運算符

int a = 10;
int b = 20;

a+=b; //a = a+b
System.out.println(a);//30
a-=b; //a = a-b
System.out.println(a);//

//字元串連接配接符
System.out.println(a+b);//30 = 10 + 20
System.out.println(""+a+b);//""為空字元串,和int型相加,結果為字元型,實際就是将字元串和a與b相連接配接
System.out.println(a+b+"");//此處空字元串在末尾,先執行a+b,再将結果與空字元串相連接配接
           

條件運算符

//x ? y : z
//如果x==true,則結果為y,否則結果為z

int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
           

優先級

可利用小括号來區分運算優先級

System.out.println(a+b/c);//結果為10,先進行b/c=0,再運算a+0
System.out.println((a+b)/c);//結果為1,先進行a+b=30,再運算30/c
           

6. 包機制

  • 為了解決類名重複的問題引入了包機制
  • 一般利用公司域名倒置作為包名
Java基礎文法學習筆記Java基礎文法

這樣命名後在Project一欄裡可以看到以下内容

Java基礎文法學習筆記Java基礎文法

也許會出現以下情況

Java基礎文法學習筆記Java基礎文法

這種情況隻需要點選Project右側小齒輪,将Compact Middle Package取消勾選

Java基礎文法學習筆記Java基礎文法
  • 如果要使用某一個包内的成員,這是需要在Java程式中導入該包,使用"import"語句

7.JavaDoc

Javadoc指令是用來生成自己的API文檔

參數資訊

/**
 * @author Liangbiao 	//作者
 * @version 1.0 		//版本号
 * @since 1.8 			//指明需要最早使用的jdk版本
 * @param name  		//參數名
 * @return				//傳回值情況
 * @throws Exception	//異常抛出情況
 */
           
  • 可以利用cmd指令來生成doc文檔,在包所在的路徑輸入以下指令将會在該目錄下生成doc文檔
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
           

以下代碼是将内容以UTF-8的格式來編碼,并且将字元格式設定為UTF-8

我學習Java的網站:https://www.bilibili.com/read/cv5702420