天天看點

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

1 JAVA文法基礎

1.1 辨別符

辨別符可以簡單的了解成一個名字。

在Java中,我們需要辨別代碼的很多元素,包括類名、方法、字段、變量、包名等等。我們選擇的那個名稱就稱為辨別符,一個正确的辨別符需要遵循以下規則:

1. 辨別符可以由字母、數字、下劃線(_)、美元符($)組成,但不能包含 @、%、空格等其它特殊字元
2. 不能以數字開頭。如:123name 就是不合法
3. 辨別符嚴格區分大小寫。如: tmooc 和 tMooc 是兩個不同的辨別符
4. 辨別符的命名最好能反映出其作用,做到見名知意。
5. 辨別符不能是Java的關鍵字

1.2 關鍵字

在Java中,有一些單詞被賦予了特定的意義,一共有50個關鍵字。

這50個單詞都是全小寫,其中有兩個保留字:const和goto。

注意,關鍵字不能被用作辨別符!

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

需要注意的是,除了上述的50個關鍵字以外,true,false,null也不可以被用作辨別符~

1.3 注釋

幾乎所有程式設計語言都允許程式員在代碼中輸入注釋,因為編譯器會忽略注釋,是以注釋并不會影響程式的運作結果。

注釋的真正作用是: 它可以向任何閱讀代碼的人描述或者解釋程式的實作思路,如何使用以及其它任何相關資訊, 提高代碼的可讀性,友善後期的維護與複用。Java的注釋有3種:

1. 單行注釋: 注釋單行内容.

格式: 每行都以”//”開頭.

快捷方式: Ctrl+/ 添加注釋,同樣的快捷鍵,再按一次取消注釋

2. 多行注釋:注釋多行内容,雖然叫多行注釋,也可注釋單行内容.

格式: 以” /* ”開頭, 以” * / ”結束.

快捷方式: Ctrl+shift+/ 添加注釋, Ctrl+shift+\ 取消注釋, 也可以輸入”/*”之後按回車添加注釋

3. 文檔注釋: 一般用來注釋類和方法,通過注釋内容來記錄類或者方法的資訊.

格式: 以” /** ”開頭。 以” * / ”結尾

快捷方式: 輸入“/**” 之後按回車添加注釋

1.4 變量

在JAVA中,我們需要記錄一些資料,但這些資料的值是不固定的,總在變,我們可以把這些資料了解為變量。

我們通過三個元素來描述變量:變量類型 變量名以及變量值。

int age = 18; //聲明int類型的變量并指派

String tel ; //聲明String類型的變量

注意:

  1. 變量名必須是一個有效的辨別符
  2. 變量名不可以使用java關鍵字
  3. 變量名不能重複

1.5 常量

在程式運作過程中,值一直不會改變的量成為常量。(後續會進一步學習,略…)

2 資料類型

2.1 基本類型介紹(八種)

變量就是申請記憶體來存儲值。也就是說,當建立變量的時候,需要在記憶體中申請空間。

java是一個強類型的語言,會把日常見到的資料,分成好多類型.

記憶體管理系統根據變量類型來配置設定存儲空間,配置設定的空間隻能用來儲存該類型資料。

常用的轉換關系:

位 bit,來自英文bit,音譯為“比特”,表示二進制位。

1 Byte = 8 Bits (1位元組 = 8位)

1 KB = 1024 Bytes 1 MB = 1024 KB 1 GB = 1024 MB

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

2.2 練習: 輸入個人資訊

建立包: cn.tedu.basic

建立類: TestInfo.java

需求: 在控制台列印: java架構師今年20歲,月薪100000.99,感慨java是世界上最好的語言

package cn.tedu.basic;
/**本類用于完成個人資訊輸出案例*/
public class TestInfo {
	//1.添加程式的入口函數main Alt+/補全代碼
	public static void main(String[] args) {
		/**1.定義變量的規則:變量的類型 變量的名字 變量的值*/
		//2.建立變量
		int age = 18;//表示變量年齡,值為18
		double salary = 100000.99;//表示變量薪水,值為100000.99
		/**2.一串字元,在Java中用String類型也就是字元串類型儲存
		 * 注意:String類型的資料需要使用" "包裹起來*/
		String name = "泡泡";
		
		//3.可以通過列印語句檢視變量的值
		System.out.println(age);
		
		//4.完成靜态與動态資料的拼接
		/**3.我們可以使用+把靜态資料【"我是"】與動态資料【name】拼接起來*/
		System.out.println("我是"+name);
		
		//5.需求:Java架構師XXX今年XXX歲,月薪XXX,感慨Java是世界上最好的語言
		System.out.println("Java架構師"+name+"今年"+age+"歲,月薪"+salary+",感慨Java是世界上最好的語言");
	}

}
           

2.3 練習:檢視基本類型的最大值與最小值

建立包: cn.tedu.basic

建立類: TestTypeScope.java

package cn.tedu.basic;
/**本類用于測試基本類型*/
public class TestTypeScope {
	//1.建立程式的入口函數
	public static void main(String[] args) {
		/**1.整形類型:byte short int long*/
		/**2.Java給8大基本類型都提供了類型對應的“工具箱”*/
		/**3.int類型的工具箱比較特殊,叫做:Integer*/
		//2.定義對應類型的變量:格式:類型 名字 = 值 ;
		byte byteMin = Byte.MIN_VALUE;
		byte byteMax = Byte.MAX_VALUE;
		System.out.println("byte類型的最小值為:" + byteMin);
		System.out.println("byte類型的最大值為:" + byteMax);
		
		short shortMin = Short.MIN_VALUE;
		short shortMax = Short.MAX_VALUE;
		System.out.println("short類型的最小值為:" + shortMin);
		System.out.println("short類型的最大值為:" + shortMax);
		
		int intMin = Integer.MIN_VALUE;
		int intMax = Integer.MAX_VALUE;
		System.out.println("int類型的最小值為:" + intMin);
		System.out.println("int類型的最大值為:" + intMax);
		
		long longMin = Long.MIN_VALUE;
		long longMax = Long.MAX_VALUE;
		System.out.println("long類型的最小值為:" + longMin);
		System.out.println("long類型的最大值為:" + longMax);
		
		/**4.浮點類型 :float double*/
		float floatMin = Float.MIN_VALUE;
		float floatMax = Float.MAX_VALUE;
		System.out.println("float類型的最小值為:" + floatMin);
		System.out.println("float類型的最大值為:" + floatMax);
		
		double doubleMin = Double.MIN_VALUE;
		double doubleMax = Double.MAX_VALUE;
		System.out.println("double類型的最小值為:"+ doubleMin);
		System.out.println("double類型的最大值為:"+ doubleMax);
		
		/**5.boolean布爾類型隻有兩個值true與false
		 * 雖然true和false不是關鍵字,但是也不可以用作辨別符*/
		boolean b1 = true;
		boolean b2 = false;
		
		/**6.測試char 字元類型
		 * 字元型的資料需要使用單引号 ' ' 來包裹
		 * char類型可以存數字,但是會從ASCII碼表查出這個數字對應的字元來列印
		 * 128~65535這些數字,也可以儲存,但是eclispe一般顯示為?*/
		char c1 = 'a';//字元型可以儲存一個字母
		char c2 = '中';//字元型還可以儲存一個漢字
		char c3 = '7';//字元型可以儲存一個字元7
		char c4 = 97;//字元型可以儲存數字,但是會查ASCII,列印的是字元a
		char c5 = 55;//字元型可以儲存數字,但是會查ASCII,列印的是字元7
		char c6 = 199;
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println(c4);
		System.out.println(c5);
		System.out.println(c6);
		
	}



}
           

2.4 練習:求圓形的面積

需求:求出指定半徑圓的面積

公式:圓的面積:π * r * r

建立包: cn.tedu.basic

建立類: TestCircleArea.java

package cn.tedu.basic;

import java.util.Scanner;

/**本類用于求圓形的面積*/
public class TestCircleArea {
	//1.建立程式的入口函數main()
	public static void main(String[] args) {
		/**等号右邊的值指派給等号左邊的變量來儲存*/
		//1.提示使用者輸入圓的半徑:
		System.out.println("請您輸入要求的半徑值:");
		
		/**變量的第二種定義方式:先定義,再指派*/
		//2.1定義一個變量用來儲存圓的半徑
		//double r = 5.5;
		double r ;
		//2.2接收使用者在鍵盤上輸入的資料,并把這個資料交給r儲存
		//開啟掃描(發出一個系統指令,準備接收控制台輸入的資料)
		//nextDouble()控制使用者隻能輸入double類型的資料,否則報錯
		r = new Scanner(System.in).nextDouble();
		
		//根據半徑值求出圓的面積
		double circleArea = 3.14 * r * r;
		//列印計算的結果
		System.out.println("圓的面積是:"+circleArea);
	}

}

           

2.5 練習:變量交換

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

需求: 接收使用者輸入的兩個值:假設a=1,b=2,并将這兩個變量的值進行互換

建立包: cn.tedu.basic

建立類: TestValueExchage.java

package cn.tedu.basic;

import java.util.Scanner;

/**本類用于練習值交換案例*/
public class TestValueExchange {
	//1.建立程式的入口函數main
	public static void main(String[] args) {
		//2.提示并接受使用者在控制台輸入的兩個整數
		System.out.println("請輸入要交換的第一個整數:");
		int a = new Scanner(System.in).nextInt();
		System.out.println("請輸入要交換的第二個整數:");
		int b = new Scanner(System.in).nextInt();
		System.out.println("a的值:"+a);
		System.out.println("b的值:"+b);
		
		//3.交換 a b 這兩個變量儲存的值
		int t;//定義一個變量用來輔助值交換
		t = a;//把a的值交給t來儲存
		a = b;//把b的值交給a來儲存
		b = t;//把t的值交給b來儲存
		
		System.out.println("交換後,a的值:"+a);
		System.out.println("交換後,b的值:"+b);
		
	}

}
           

2.6 引用類型

出來啦基本類型以外的就是引用類型,目前我們學習的隻有字元串類型,資料需要使用雙引号包裹

引用類型是一個對象類型,值是什麼呢?

它的值是指向記憶體空間的引用,就是位址,所指向的記憶體中儲存着變量所表示的一個值或一組值。如:類,接口,數組,後面講。。。

(後續會進一步學習,略…)

3 基本類型的字面值(5條)

3.1 整數字面值是int類型

int x = 99999;//對,右面資料的字面值是int類型
int x = 99999999999;//錯,右面資料的字面值是int類型,但是已經超出int的取值範圍。

3.2 浮點數的字面值是double類型

double r =3.14;//對
float r =3.14;//錯,右面的資料字面值是double,float是4位元組存不下double類型的資料

3.3 byte,short,char三種比int小的整數可以用範圍内的值直接指派

byte b1=127;//對,
byte b2=128;//錯,超出byte的範圍
char c1=97;//對,對應的是碼表中的’a’
char c2 =69999;//錯,超出char的範圍

3.4 字面值字尾L D F

long x =99999999999L;//字面值是int類型,需轉成long類型的資料,加字面值字尾L即可
float b = 3.0F;//3.0字面值是double類型,加字尾F會變成float類型
double d = 3D;//3字面值是int類型,加字尾D,會變成double類型

3.5 進制字首

0b - 辨別這是2進制 ,如:0b0101
0 - 辨別這是8進制, 8進制是三位,如: 023
0x - 辨別這是16進制,如: 0x0001

4 基本類型的類型轉換

箭頭開始的地方是小類型,箭頭指向的地方是大類型

我們此處所指的"大"和"小",指的是對應類型的取值範圍,不是位元組數哦

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

4.1 小到大(隐式轉換)

byte m = 120;
int n = m;//小轉大,右面的m是小類型,給左面的n大類型指派,可以直接使用
float f = 3.2f; double d = f; -->可以執行

4.2 大到小(顯式轉換)

容量大的類型轉換為容量小的類型時必須使用強制類型轉換。

int x = 999;
byte y =(byte)x;//大轉小,右面x給左面的y小類型指派,不可以,需要強制類型轉換
  1. 轉換過程中可能導緻溢出或損失精度

    例如:int i =128; byte b = (byte)i; //列印的結果是-128

    因為 byte 類型是 8 位,最大值為127,是以當 int 強制轉換為 byte 類型時,值 128 時候就會導緻溢出。

  2. 浮點數到整數的轉換是通過舍棄小數得到,而不是四舍五入

    例如:float f = 32.7f; int a2 =(int) f; //列印的結果是32

  3. 不能對boolean類型進行類型轉換。

4.3 口訣:

小到大,直接轉 大到小,強制轉 浮變整,小數沒

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

byte,short,char→ int→ long→float→double

5 運算規則(5條)

5.1 計算結果的資料類型,與最大資料類型一緻

System.out.println(3/2);//1,int/int,得到的結果類型還是int
System.out.println(3/2d);//1.5,int/double。得到的結果是double

5.2 byte,short,char三種比int小的整數,運算時會先自動轉換成int

byte a = 1;
byte b = 2;
byte c = (byte)(a+b);
//a+b會自動提升成int類型,右面得運算結果就是int大類型
//給左面的byte小類型指派,不可以,需要強轉。

5.3 整數運算溢出

JAVA文法基礎 辨別符 關鍵字 注釋 變量 資料類型與類型轉換1 JAVA文法基礎2 資料類型3 基本類型的字面值(5條)4 基本類型的類型轉換5 運算規則(5條)6 拓展 辨別符命名風格

整數運算,類似于一個鐘表,轉到最大時,再轉會回到最小。

計算:光速運作一年的長度是多少米?3億m/s

//溢出的現象:
//因為做了大的整型資料的運算,會超出int取值範圍。解決方法:把整數提升成long類型。
System.out.println(300000000L * 60 * 60 * 24 * 365);

5.4 浮點數運算不精确

1-0.8 (這是一個現象,後續會學習解決方案)

5.5 浮點數的特殊值

Infinity 無窮大 3.14/0
NaN not a number 0/0.0 或 0.0/0

6 拓展 辨別符命名風格

1.【強制】辨別符命名均不能以數字開頭,而且下劃線或美元符号開始,也不能以下劃線或美元符号結束

錯誤案例:1name / _ name / name_ / $ name / name $

2.【強制】代碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。

說明:正确的英文拼寫和文法可以讓閱讀者易于了解,避免歧義。

注意,即使純拼音命名方式也要避免采用。

正确案例:alibaba / taobao / youku / hangzhou 等國際通用的名稱,可視同英文。

錯誤案例:DaZheModule [打折子產品] / getPingfenByName() [評分]

3.【強制】類名使用 UpperCamelCase 風格,即第一個單詞的首字母就要大寫

繼續閱讀