1. 程式人生 > >JAVA基礎學習day01--識別符號、關鍵字、資料型別與運算子

JAVA基礎學習day01--識別符號、關鍵字、資料型別與運算子

一、識別符號和關鍵字

關鍵字:

就是被java語言賦予了特殊含義的單詞。

特點就是所有的關鍵字都是小寫。

識別符號:

就是給包、類、介面、方法、變數名起的名字。

規則:1.以數字、字母、_以及$符號組成。

           2.不能以數字開頭,不能以空格分開,不能是JAVA中的關鍵字,區別大小寫如Test 和test是2個不同的識別符號。

           3 .起名字一定要見明知意例如:yourName,見名知義,不要用a,b,c之類的。

           4.不合法的識別符號 12,your name ,class。

           5.以數字開頭,your name中間有空格 class中java中的關鍵字。

二、變數和常量

常量:是一個固定的數值,不可改變的如1,2都是整形常量

    1. 整數常量:所有整數。

    2. 小數常量:所有小數。

    3. 布林(boolean)型常量:只有兩個數值,true、false。

    4. 字元常量:將一個數字字母或者符號用單引號( ' ' )標識,如:'a'。

    5. 字串常量:將一個或者多個字元用雙引號("")標識,如:"hello world"、"a"、""(空字串)。

    6. null常量:只有一個數值就是:null。

進位制的由來

    對於整數,有四種表現形式:

    二進位制:0-1,滿2進1。

    八進位制:0-7,滿8進1,用0開頭表示,如:012。

    十進位制:0-9,滿10進1。

    十六進位制:0-9,A-F,滿16進1,用0x開頭表示。如:0x4A2C。

變數:

就將不確定的資料進行儲存

也就是在內豐中開闢一個空間用來存放變數的。

利用宣告的方式將內在中的某個內在空間保留下來以代程式使用

宣告資料型別:變數名=變數值

三、資料型別

Java語言是強型別語言,對於每一種資料都定義了明確的具體資料型別,在記憶體中分配了不同大小的記憶體空間:         byte     1個位元組         short    2個位元組         int        4個位元組         long     8個位元組         float     4個位元組         double 8個位元組         char     2個位元組

1、整數預設型別:int型別,小數預設型別:double型別。 2、double型別的小數精度比float型別的小數更高。

範圍

No.

資料型別

大小/位

可表示的資料範圍

1

long(長整數)

64

-9223372036854775808 ~ 9223372036854775807

2

int(整數)

32

-2147483648 ~ 2147483647

3

short(短整數)

16

-32768~32767

4

byte(位)

8

-128 ~ 127

5

char(字元)

2

0 ~ 255

6

float(單精度)

32

-3.4E38(-3.4´1038) ~ 3.4E38(3.4´1038)

7

double(雙精度)

64

-1.7E308(-1.7´10308)~ 1.7E308(1.7´10308)

預設值

No.

資料型別

預設值

1

byte

(byte)0

2

short

(short)0

3

int

0

4

long

0L

5

float

0.0f

6

double

0.0d

7

char

\u0000(空,'')

8

boolean

false

 四、型別轉換

型別轉換分為2種:

  自動型別轉換

  強制型別轉換

4.1、自動型別轉換

自動型別轉換由低型別向高型別自動轉換

1.轉換前的資料型別和轉換後的資料型別相容

2.轉換後的資料型別的表示範圍比轉換前的範圍在

3.低型別和高型別同時運算時自動轉化為高型別運算

java 中byte char short int 運算時自動轉換為int型別運算

byte a=1;   //宣告byte 型別變數a=1          
int  b=a+1;   //宣告int 變數b 同時賦值a+1,1是整型a向整型轉化為整型運算,自動轉化  
System.out.println(b);  
       
short s1=1;     //宣告short型別變數s1同是賦值1  
short s2=s1++;   //宣告short 型別變數s2同時賦值s1++,自增運算,內隱藏了自動型別轉化  
s2+=1;          //s2+=1;自動型別轉換  

任何型別和字元相連都向字串轉換

int a=5,b=5;  
System.out.println("a+b="+a+b);  //a+b=是字串+5變為 a+b=5,再+連線5,結果變為a+b=55  
System.out.println("a+b="+(a+b)); //使用括號提高優先順序  

字元型別在記憶體中佔有2個位元組,可以用來儲存英文字母等字元,字元要用一對單引號('')括起

char ch1='a';
char ch2=97;
System.out.println("ch1= "+ch1);
System.out.println("ch2= "+ch2);

結果:ch1=a,ch2=a

字元型別也算是整數型別的一種

常用的轉義字元:

No.

轉義字元

描述

No.

轉義字元

描述

1

\f

換頁

2

\\

反斜線

3

\b

倒退一格

4

\'

單引號

5

\r

歸位

6

\"

雙引號

7

\t

製表符Tab

8

\n

換行

char ch1='\"';
char ch2='\\';
System.out.println("ch1= "+ch1);
System.out.println("ch2= "+ch2);
System.out.println("\"Hello World\"");

結果:

ch1= " ch2= \ "Hello World"

4.2、強制型別轉換

定義:強制型別轉換需要把型別進行手動轉換,否則無法正常使用

在變數前面加上(要轉換的型別) 變數

float f=3.14f;  
int i=(int )f;  
System.out.println(i);   

結果:

3

五、運算子

5.1、賦值運算子

=:一個等號就是賦值運算子

int i=4;  
byte b=2;  
short s=3;  
char c='a';  
char ch='張';  
long l=33;  
float f=3.14f;  
double d=2.0;  

5.2、一元運算子

No.

一元運算子

描述

1

+

正號

2

負號

3

!

NOT,否

public class JisuanJava {
		public static void main(String[] args) {
			boolean flag=false;  
			int x=10;        //定義一個正數  
			int y=-30;        //定義一個負數  
			System.out.println("x= "+x); 
			System.out.println("y= "+y);  
			System.out.println("flag= "+flag+"!b= "+!flag);  
		}		
}

結果:

x= 10 y= -30 flag= false  !b= true

5.3、算術運算子

算術執行符和數學中的用法一樣

No.

算術運算子

描述

1

+

加法

2

減法

3

*

乘法

4

/

除法

5

%

取模(取餘數)

public class JisuanJava {
		public static void main(String[] args) { 
			int i = 10;
			int j = 3;
			System.out.println(i+"+"+j +"="+(i+j));   //加法
			System.out.println(i+"-"+j +"="+(i-j));   //減法
			System.out.println(i+"*"+j +"="+(i*j));   //乘法
			System.out.println(i+"/"+j +"="+(i/j));   //除法
			System.out.println(i+"%"+j +"="+(i%j));   //取模求餘數
		}	
}

結果:

10+3=13 10-3=7 10*3=30 10/3=3 10%3=1

5.4、關係運算符

No.

關係運算符

描述

1

>

大於

2

<

小於

3

>=

大於等於

4

<=

小於等於

5

==

等於

6

!=

不等於

5.5、自增加與自減運算子 自增與自減運算子

No.

自增與自減運算子

描述

1

++

自增,變數值加1

2

--

自減,變數值減1

public class JisuanJava {
		public static void main(String[] args) {
			nt a=3,b=3;             //定義整型變數a,b
			int x=6,y=6;             //定義整型變數x,y
			System.out.println("a= "+a);         //輸出變數a的值
			System.out.println("a++="+(a++)+"  a= "+a); //輸入a++和a++之後a的值3,4
			System.out.println("b= "+b);
			System.out.println("++b="+(++b)+"  b="+b);   //值出++b,和++b之後b的值4,4
			System.out.println("x= "+x);
			System.out.println("x--="+(x--)+" x= "+x); //輸出x--和x--之後x的值6,5
			System.out.println("y= "+y);
			System.out.println("--y="+(--y)+"   y="+y);  //輸出--y和--y之後的值5,5
		}	
}

5.6、邏輯運算子

No.

邏輯運算子

描述

1

&

AND,與

2

&&

短路與

3

|

OR,或

4

||

短路或

AND及 OR結果表

No.

條件1

條件2

結果

&&(與)

||(或)

1

true

true

true

true

2

true

false

false

true

3

false

true

false

true

4

false

false

false

false

  • &&”與“&”
  • &&表示短路與
  • 對於“與”來說,要求所有的條件都判斷,而如果使用“短路與”如果第一個條件為false,則後面的條件將不再判斷。
  • “||”與“|”
  • ||表示短路或
  • 對於“或”來說,要求所有的條件都判斷,而如果使用“短路或”如果第一個條件為true,則後面的條件將不再判斷。

5.7、位運算子

No.

位運算子

描述

1

&

按位與

2

|

按位或

3

^

異或(相同為0,不同為1)

4

~

取反

5

<<

左移位

6

>>

右移位

7

>>>

無符號右移位

位運算的結果表

No.

二進位制數1

二進位制數1

與操作(&)

或操作(|)

異或操作(^)

1

0

0

0

0

0

2

0

1

0

1

1

3

1

0

0

1

1

4

1

1

1

1

0

5.8運算子優先順序

優先順序

運算子

結合性

1

()

括號運算子

由左至右

1

[]

方括號運算子

由左至右

2

!、+(正號)、-(負號)

一元運算子

由右至左

2

~

位邏輯運算子

由右至左

2

++、--

遞增與遞減運算子

由右至左

3

*、/、%

算術運算子

由左至右

4

+、-

算術運算子

由左至右

5

<<、>>

位左移、右移運算子

由左至右

6

>、>=、<、<=

關係運算符

由左至右

7

==、!=

關係運算符

由左至右

8

&(位運算子AND)

位邏輯運算子

由左至右

9

^(位運算子號XOR)

位邏輯運算子

由左至右

10

|(位運算子號OR)

位邏輯運算子

由左至右

11

&&

邏輯運算子

由左至右

12

||

邏輯運算子

由左至右

13

?:

三目運算子

由右至左

14

=

賦值運算子

由右至左

5.9簡潔表述式

No.

運算子

範例用法

說明

描述

1

+=

a += b

a + b的值存放到a中

a = a + b

2

-=

a -= b

a - b的值存放到a中

a = a - b

3

*=

a *= b

a * b的值存放到a中

a = a * b

4

/=

a /= b

a / b的值存放到a中

a = a / b

5

%=

a %= b

a % b的值存放到a中

a = a % b

簡潔表示式的範例

No.

運算子

範例

執行前

說明

執行後

a

b

a

b

1

+=

a += b

12

3

a + b的值存放到a中(同a = a + b)

15

3

2

-=

a -= b

12

3

a - b的值存放到a中(同a = a – b)

9

3

3

*=

a *= b

12

3

a * b的值存放到a中(同a = a * b)

36

3

4

/=

a /= b

12

3

a / b的值存放到a中(同a = a / b)

4

3

5

%=

a %= b

12

3

 a % b 的值存放到a中(同a = a % b)

0

3

6

b++

a *= b++

12

3

a * b的值存放到a後,b加1(同a = a * b;b++)

36

4

7

++b

a *= ++b

12

3

  b加1後,再將a*b的值存放到a(同b++;a=a*b)

48

4

8

b--

a *= b--

12

3

a * b的值存放到a後,b減1(同a=a*b;b--)

36

2

9

--b

a *= --b

12

3

    b減1 後,再將a*b的值存放到a(同b--;a=a*b)

24

2

No.

資料型別

大小/位

可表示的資料範圍

1

long(長整數)

64

-9223372036854775808 ~ 9223372036854775807

2

int(整數)

32

-2147483648 ~ 2147483647

3

short(短整數)

16

-32768~32767

4

byte(位)

8

-128 ~ 127

5

char(字元)

2

0 ~ 255

6

float(單精度)

32

-3.4E38(-3.4´1038) ~ 3.4E38(3.4´1038)

7

double(雙精度)

64

-1.7E308(-1.7´10308)~ 1.7E308(1.7´10308)

預設值

No.

資料型別

預設值

1

byte

(byte)0

2

short

(short)0

3

int

0

4

long

0L

5

float

0.0f

6

double

0.0d

7

char

\u0000(空,'')

8

boolean

false