黑馬程序員 Java基礎語法——上

Java語言基礎組成

1.關鍵字




2.標識符

(1)就是給類,變量,方法起名字。

(2)組成規則:

由數字0-9,英文大小寫字母,$以及_組成。

(3)注意事項:

A:只能有組成規則規定的內容組成。

B:不能以數字開頭。

C:不能是Java中的關鍵字。

D:區分大小寫。

A:包(文件夾,用於區分同名的類)
全部小寫。如果多級包,用.分開。

舉例:

com一級包

tuozou.interview二級包

注意: www.tuozou.com(域名反寫)
B:類和接口
如果是一個單詞,首字母大寫。

舉例:

Demo,Test,Student

如果是多個單詞,每個單詞的首字母大寫。

舉例:

HelloWorld,StudyJava

C:變量和方法
如果是一個單詞,首字母小寫。

舉例:

main(),name,age.show().method()

如果是多個單詞,從第二個單詞開始每個單詞的首字母大寫。

舉例:

showName(),studentName()

D:常量
全部大寫,如果多個單詞組成,用_連接。

舉例:

PI,STUDENT_MAX_AGE

3.註釋

註釋:就是對程序的解釋性文字。

註釋的分類:

A:單行註釋

a:以//開頭,以回車結束。

b:單行註釋是可以嵌套單行註釋的。

B:多行註釋

a:以/*開頭,以*/結束。

b:多行註釋是不可以嵌套多行註釋的,但可以嵌套單行註釋。

C:文檔註釋(瞭解)

將來被Javadoc工具解析,生成一個說明書。

註釋的作用:

A:解釋程序,提高程序的閱讀性。

B:可以調試錯誤。


對於單行註釋和多行註釋,被註釋的文字,不會被JVM(Java虛擬機)解釋執行。

對於文檔註釋,是Java特有的註釋,其中註釋內容可以被JDK提供的工具javadoc所解析,生成一套以網頁文件形式體現的該程序的

說明文檔。


註釋是一個程序員必須具有的良好編程習慣。

初學者編寫程序可以養成習慣:先寫註釋再寫代碼。

將自己的思想通過註釋先整理出來,在用代碼去體現。

因爲代碼僅僅是思想的一種體現形式而已。


作用:

1、註解說明

          2、調試程序

格式:

單行註釋://

          多行註釋: /*    */

          文檔註釋: /**   */

建議:寫代碼之前寫需求,思路,步驟,養成一個良好的習慣,以後一旦思想確定,後面寫代碼就是行雲流水。

如下一個Hello 黑馬程序員的小程序:

/*

1.需求:

編譯一個Hello 黑馬程序員!!的小程序

2.思路:

1).通過Java關鍵字class定義一個類 

2).通過Java特殊字main定義一個主函數

3).定義一個輸出語句,打印下Hello 黑馬程序員!!

3.步驟:

1).class Demo 定義一個類

2).public static void main(String[] args) 定義一個主函數

3).System.out.println("Hello 黑馬程序員!!");定義一個輸出語句

*/


//創建一個類。

class Demo{

//主函數是程序的入口。

public static void main(String[] args){

//輸出語句,可以打印小括號內容。

System.out.println("Hello 黑馬程序員!!");

}

}

4.常量和變量

常量:表示不能改變的數值。

(1)在程序的運行過程中,其值是不可以發生改變的量。

(2)常量的分類:

1:整數常量

12,-23

2:小數常量

12.5,-65.43

3:字符常量

'a','A','0'

4:字符串常量

"Hello"

5:布爾常量

true,false

6:空常量(後面講)

null

自定義常量(後面講)

(3)常量可以直接被輸出。

(4)進制
(1)是一種進位的方式。X進制,表示逢x進1。
(2)Java中整數常量的表示
A:二進制 由0,1組成。以0b開頭。JDK 1.7以後的新特性。
B:八進制 由0-7組成。以0開頭。
C:十進制 由0-9組成。默認就是十進制。
D:十六進制 由0-9,A-F(不區分大小寫)組成,以0x開頭。
(3)進制轉換:
A:其他進制轉十進制
係數:就是每一位上的數據。
基數:X進制,基數就是X。
權:在右邊,從0開始編號,對應位上的編號即爲該位的權。
結果:把係數*基數的權次冪相加即可。
B:十進制到其他進制
除基取餘,直到商爲0,餘數反轉。

          變量:就是講不確定的數據進行存儲,也就是需要在內存中開闢一個空間。

(1)程序的運行過程中,在指定範圍內發生改變的量。

(2)格式:

格式1:

數據類型 變量名 = 初始化值;

格式2:

數據類型 變量名;

變量名 = 初始化值;

舉例:

方式1: 

byte b = 10;

方式2: 

byte b;

b = 10;

理解:變量就如同數學中的未知數。

數據類型

Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間

數據分類

1)基本類型:4類8種。

整型:佔用字節  

byte(1)short(2)int(4)long(8)

布爾型:

boolean(1) 不明確。可以認爲是1個字節。

只有倆字結果,一個是true,另一個是false

字符型:

char(2)

浮點型:

float(4)double(8)

2)引用類型:類,接口,數組。(先了解)


注意:

整數默認是int類型。long類型需要加L或者l後綴。

浮點數默認是double類型。float類型需要加F或者f後綴。

類型轉換

1、boolean類型不參與轉換。(因爲boolean值是常量,默認只有倆個值,要麼true,要麼false

2、隱式轉換(從小到大)

自動類型提升,從小到大的提升。

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

3、強制轉換(從大到小)

強制類型轉換,從大到小的轉換。

intb;b=(byte)(b+2)

格式:

(數據類型)數據;

表達式的數據類型自動提升

所有byte型、short型和char的值將被提升到int型。

如果一個操作數是long型,計算結果就是long型。

如果一個操作數是float型,計算結果就是float型。

如果一個操作數是double型,計算結果就是double型。

分析:

System.out.println(‘a’)與System.out.println(‘a’+1)的區別。

System.out.println(‘a’)打印的是a。

System.out.println(‘a’+1)打印的是98,自動類型提升,把a轉換成ASCII編碼值(97)與1相加。

變量的什麼時候定義?

當數據不確定時,需要對數據進行存儲時,就定義一個變量來完成存儲動作。

轉義字符  

\n :換行     

\b:退格

\r:按回車

\t:製表符

面試題:

byte b = 4;b = 3+7;

System.out.println(b);//打印出來是10

------------------------------------------------

byte b = 4;byte b1 = 3;byte b2 = 7;

b = b1 + b2;

System.out.println(b);

提示可能損失精度

byte b=4; 編譯器在編譯的時候,右邊默認是整型,但是他會判斷.這數字在不在byte字節這個範圍之內(-128~127),如果在的話,把這個4做了一個默認的強轉,把最後一個字節賦到b中,這時b是在byte範圍內所以編譯不會報錯。

b1b2是變量,是不確定的值,不能檢查。

int x;

int x1 =Integer.MAX_VALUE;//2147483647Z最大數

int x2 = 2;

x = x1+x2;

System.out.println(x);

不出錯,打印出來是負數。

int是默認類型,一旦超出範圍,底層有強制轉換過程,只保留自己原有位,高位全捨棄。

5.運算符

(1)就是把常量和變量連接的符號,一般參與運算使用。

(2)分類:

算術運算符 +,-,*,/,%,++,--

+):正號,加法,字符串連接符。

System.out.println("5+5="+5+5);//5+5=55

System.out.println(5+5+"=5+5");//10=5+5

%):取得餘數

左邊如果大於右邊,結果是餘數。

左邊如果小於右邊,結果是左邊。

左邊如果等於右邊,結果是0。

正負號跟左邊一致。

++與--:

++ 其實相當於把數據+1

- -  其實相當於把數據-1

單獨使用:在數據的前後,結果一致。

參與操作使用:

如果在數據的後邊,數據先操作,在++/--

如果在數據的前邊,數據先++/--,在操作。

賦值運算符 =,+=,-=,*=,/=,%=

int a = 10;

把10賦值給int類型的變量a。

a += 20;

把左邊和右邊的和賦值給左邊。

注意事項:

a = a + 20;

a += 20;

結果是等價的,理解不是等價的。

因爲+=這種運算符,內含了強制類型轉換功能。

比如:

short s = 2;

s+=3;

等價於  s = (short)(s+3);

關係運算符  ==,!=,>,>=,<,<=

特點:關係運算符的結果都是boolean類型。

請千萬注意:== 不要寫成 =

 邏輯運算符

&與運算   |或運算  ^異或運算   !非運算  &&短路與運算  ||短路或運

&:符號的運算特點:

true  &  true    =  true;

true  &  false   =  false;

false &  true    =  false;

false &  false   =  false;

&:運算規律:

&運算的兩邊只有有一個是false,結果肯定是false

只有兩邊都爲true,結果纔是true

|:符號的運算特點:             

true  &  true    =  true;

true  &  false   =  true;

false &  true    =  true;

false &  false   =  false;

|:運算規律:

|運算的兩邊只要有一個是true,結果肯定是true

只有兩邊都爲false。結果是false

^:異或 :和或有點不一樣。

^:運算特點。

true  true  false;

true  false true;

false true  true;

false false false;

^異或的運算規律:

^符號的兩邊結果如果相同,結果是 false

兩邊的結果不同,結果是true

              !:非運算,判斷事物的另一面。

!true =false

!false=true;

!!true=true;

面試題:

&&和&運算的結果是一樣的。但是運算過程有點小區別。

&:無論左邊的運算結果是什麼,右邊都參與運算。

&&:當左邊爲false時,右邊不參與運

||和|運算的結果是一樣的。但是運算過程有點小區別。

|:無論左邊的運算結果是什麼,右邊都參與運算。

||:當左邊爲true時,右邊不參與運算的。

位運算是直接對二進制進行運算

<<左移運算   >>右移運算   >>>無符號右移運算   &與運算  |或運算    ^異或運算   ~反碼運算

<<左移幾位其實就是該數據乘以2的幾次方。左移:可以完成2的次冪運算

>>右移幾位其實就是該數據除以2的幾次冪。右移:對於高位出現的空位,原來高位是什麼就用什麼補這個空位。

>>>:無符號右移:數據進行右移時,高位出現的空位,無論原高位是什麼,空位都用0補。

^一個數異或同一個數兩次,結果還是這個數。

練習:

對兩個整數變量的值進行互換(不需要第三方變量)

開發時,使用第三方變量的形式,因爲閱讀性強。

int a = 3,b = 5, c;

c = a ;a = b ;b = c ;

Sytem.out.println("a="+a+",b="+b);

這種方式不要用,如果兩個整數的數值過大,會超出int範圍,會強制轉換。數據會變化。

a= a + b;//a = 3 + 5;a = 8;

b= a - b;//3+5-5 = 3;b = 3;

a= a - b;//3+5-3 = 5;a = 5;

面試的時候用。

a= a ^ b;//a = 3 ^ 5;

b= a ^ b;//b = (3^5)^5; b = 3;

a= a ^ b;//a = (3^5)^3; a = 5;

三元運算符

格式:(條件表達式)?表達式1:表達式2 ;

如果條件爲true,運算後的結果是表達式1,

如果條件爲flase,運算後的結果是表達式2

示例:獲取兩個數中大數。

int x = 3, y = 4, z;

z = (x>y) ? x:y;  //z變量存儲的就是兩個數的大數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章