天天看點

Java基礎-Java基礎-02總結關鍵字,辨別符,注釋,常量進制,變量資料類型

首先原諒小編的過錯,昨天第二篇文章标題是:

程式員:為什麼選擇Java?

Java基礎-Java基礎-02總結關鍵字,辨別符,注釋,常量進制,變量資料類型

1:關鍵字(掌握)

(1)被Java語言賦予特定含義的單詞

(2)特點:

全部小寫。

(3)注意事項:

A:goto和const作為保留字存在。

B:類似于Notepad++這樣的進階記事本會對關鍵字有特殊顔色标記

/*

關鍵字:被java語言賦予特定含義的單詞。

特點:組成關鍵字單詞的字母全部小寫。

注意:

A:goto和const是保留字

B:類似于Notepad++這樣的進階記事本,針對關鍵字都有特殊的顔色标記。

*/

class KeyWordDemo {

public static void main(String[] args) {

System.out.println("HelloWorld");

}

}

2:辨別符(掌握)

(1)就是給類,接口,方法,變量等起名字的字元序列

(2)組成規則:

A:英文大小寫字母

B:數字

C:$和_

(3)注意事項:

A:不能以數字開頭

B:不能是java中的關鍵字

C:區分大小寫

(4)常見的命名規則(見名知意)

A:包 全部小寫

單級包:小寫

舉例:liuyi,com

多級包:小寫,并用.隔開

舉例:cn.itcast,com.baidu

B:類或者接口

一個單詞:首字母大寫

舉例:Student,Demo

多個單詞:每個單詞首字母大寫

舉例:HelloWorld,StudentName

C:方法或者變量

一個單詞:首字母小寫

舉例:name,main

多個單詞:從第二個單詞開始,每個單詞首字母大寫

舉例:studentAge,showAllNames()

D:常量

全部大寫

一個單詞:大寫

舉例:PI

多個單詞:大寫,并用_隔開

舉例:STUDENT_MAX_AGE

/*

辨別符:就是給類,接口,方法,變量等起名字。

組成規則:

A:英文字母大小寫

B:數字字元

C:$和_

注意事項:

A:不能以數字開頭

B:不能是Java中的關鍵字

C:Java語言嚴格區分大小寫

常見的命名規則:見名知意

舉例:我要定義一個學生類

class Student {}

class S{}

包:其實就是檔案夾,用于把相同的類名進行區分

全部小寫

單級:liuyi

多級:cn.itcast

cn

itcast

類或者接口:

一個單詞:單詞的首字母必須大寫

舉例:Student,Dog

多個單詞:每個單詞的首字母必須大寫

舉例:HelloWorld,StudentName

方法或者變量:

一個單詞:單詞的首字母小寫

舉例:main,age

多個單詞:從第二個單詞開始,每個單詞的首字母大寫

舉例:studentAge,showAllNames()

常量:

一個單詞:全部大寫

舉例:PI

多個單詞:每個字母都大寫,用_隔開

舉例:STUDENT_MAX_AGE

*/

class MakeNameDemo {

public static void main(String[] args) {

//正确做法

int x = 100;

//不能以數字開頭

//int 1y = 100;

int y1 = 100;

//不能是Java中的關鍵字

//int public = 100;

int Public = 100;

}

}

3:注釋(掌握)

(1)就是對程式進行解釋說明的文字

(2)分類:

A:單行注釋 //

B:多行注釋 /**/

C:文檔注釋(後面講) /** */

/*

注釋:用于解釋說明程式的文字

Java中注釋的分類及格式

單行注釋://

多行注釋:/星 星/

注意:多行不可以嵌套使用,而單行是可以的

文檔注釋:被javadoc工具解析生成一個說明書,面向對象部分講解。

*/

//這是我的注釋案例

class ZhuShiDemo {

//main方法是主方法

//是程式的入口

//被jvm調用

public static void main(String[] args) {

System.out.println("好好學習,天天向上");

}

}

(3)把HelloWorld案例寫了一個帶注釋的版本。

後面我們要寫一個程式的過程。

需求:

分析:

實作:

代碼展現:

/*

需求:我準備寫一個java程式,把"HelloWorld"這句話輸出在控制台

分析:

A:要寫一個Java程式,必須定義類

B:把資料能夠輸出,說明我們的程式是可以獨立運作的,而程式要獨立運作,必須定義main方法

C:把資料輸出在控制台,必須使用輸出語句

實作:

A:java語言提供了一個關鍵字:class用來定義類,後面跟的是類名

B:main方法的格式是固定的:

public static void main(String[] args) {

}

C:輸出語句的格式是固定的:

System.out.println("HelloWorld");

"HelloWorld"這個内容是可以改變的

*/

//這是我的HelloWorld案例

class HelloWorld {

/*

為了程式能夠獨立運作,定義main方法

main方法是程式的入口

被jvm自動調用

*/

public static void main(String[] args) {

//為了把資料顯示在控制台,我們就使用了輸出語句

System.out.println("HelloWorld");

}

}

(4)注釋的作用

A:解釋說明程式,提高了代碼的閱讀性。

B:可以幫助我們調試程式。

後面我們會講解一個更高端的一個調試工具

/*

注釋的作用:

A:解釋說明程式,提高程式的閱讀性

B:可以幫助我們調試程式。

後面我們會講解更進階的調試。

*/

class ZhuShiDemo2 {

public static void main(String[] args) {

System.out.println("林青霞");

System.out.println("王祖賢");

System.out.println("劉亦菲");

System.out.println("範冰冰");

}

}

4:常量(掌握)

(1)在程式執行的過程中,其值不發生改變的量

(2)分類:

A:字面值常量

B:自定義常量(後面講)

(3)字面值常量

A:字元串常量 "hello"

B:整數常量 12,23

C:小數常量 12.345

D:字元常量 'a','A','0'

E:布爾常量 true,false

F:空常量 null(後面講)

(4)在Java中針對整數常量提供了四種表現形式

A:二進制 由0,1組成。以0b開頭。

B:八進制 由0,1,...7組成。以0開頭。

C:十進制 由0,1,...9組成。整數預設是十進制。

D:十六進制 由0,1,...9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭。

/*

常量:

在程式執行過程中,其值不發生改變的量。

分類:

A:字面值常量

B:自定義常量(後面講)

字面值常量

A:字元串常量 用雙引号括起來的内容。

舉例:"hello","world","HelloWorld"

B:整數常量 所有的整數

舉例:100,200

C:小數常量 所有的小數

舉例:10.23,110.11

D:字元常量 用單引号括起來的内容

舉例:'a','A','0'

錯誤的:'ab'

E:布爾常量 比較特殊

舉例:true,false

F:空常量 後面講

舉例:null

*/

class ConstantDemo {

public static void main(String[] args) {

//字元串常量的輸出

System.out.println("hello");

//整數常量的輸出

System.out.println(100);

//小數常量的輸出

System.out.println(100.10);

//字元常量的輸出

System.out.println('a');

System.out.println('A');

System.out.println('0');

//這個是有問題的

//System.out.println('ab');

//布爾常量的輸出

System.out.println(true);

System.out.println(false);

}

}

5:進制轉換(了解)

(1)其他進制到十進制

系數:就是每一個位上的數值

基數:x進制的基數就是x

權:對每一個位上的資料,從右,并且從0開始編号,對應的編号就是該資料的權。

結果:系數*基數^權次幂之和。

(2)十進制到其他進制

除基取餘,直到商為0,餘數反轉。

(3)進制轉換的快速轉換法

A:十進制和二進制間的轉換

8421碼。

B:二進制到八進制,十六進制的轉換

/*

不同進制的資料表現:

二進制:由0,1組成。以0b開頭。

八進制:由0,1,...7組成。以0開頭。

十進制:由0,1,...9組成。預設整數是十進制。

十六進制:由0,1,...9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭。

*/

class JinZhiDemo {

public static void main(String[] args) {

System.out.println(100); //十進制

System.out.println(0b100); //二進制

System.out.println(0100); //八進制

System.out.println(0x100); //十六進制

}

}

1:得到下面資料的十進制值:

0b10101

=1*2^4 + 1*2^2 + 1*2^0

=16 + 4 + 1

=21

0123

=1*8^2 + 2*8^1 + 3*8^0

=64 + 16 + 3

=83

0x3c

=3*16^1 + c*16^0

=48 + 12

=60

2:得到下面資料的二進制,十進制,十六進制

52分别得到二進制,十進制,十六進制

得到二進制:

52 / 2 = 26 0

26 / 2 = 13 0

13 / 2 = 6      1

6  / 2 = 3      0

3  / 2 = 1      1

1  / 2 = 0      1

0b110100

得到八進制:

52 / 8 = 6 4

6  / 8 = 0      6

064

得到十六進制:

52 / 16 = 3 4

3  / 16 = 0 3

0x34

3:有符号資料表示法的練習

A:已知某數X的原碼為10110100B,試求X的補碼和反碼。

符号位 數值位

原碼: 1 0110100

反碼: 1 1001011

補碼: 1 1001100

B:已知某數X的補碼11101110B,試求其原碼。

符号位 數值位

補碼: 1 1101110

反碼: 1 1101101

原碼: 1 0010010

6:變量(掌握)

(1)在程式的執行過程中,其值在某個範圍内可以發生改變的量

(2)變量的定義格式:

A:資料類型 變量名 = 初始化值;

B:資料類型 變量名;

 變量名 = 初始化值;

/*

使用變量的時候要注意的問題:

A:作用域

變量定義在哪個大括号内,它就在這個大括号内有效。

并且,在同一個大括号内不能同時定義同名的變量。

B:初始化值

沒有初始化值的變量不能直接使用。

你隻要在使用前給值就行,不一定非要在定義的時候立即給值。

推薦在定義的時候給值。

定義變量的格式:

a:資料類型 變量名 = 初始化值;

b:資料類型 變量名;

 變量名 = 初始化值;

C:在一行上建議隻定義一個變量

可以定義多個,但是不建議

*/

class DataTypeDemo2 {

public static void main(String[] args) {

//定義變量

int x = 100;

//錯誤,不能有同名的

//int x = 200;

//定義變量必須給值

//int y;

//System.out.println(y);

int z;

z = 100;

System.out.println(z);

//在一行上定義多個變量

//int a = 10; int b = 20; int c  = 30;

//上面的寫法可以,但是不建議。

int a = 10; 

int b = 20; 

int c  = 30;

//int d, e;

//d = 40;

//e = 50;

//int f,int g; //錯誤

//int h; int i; //正确

}

}

7:資料類型(掌握)

(1)Java是一種強類型語言,針對每種資料都提供了對應的資料類型。

(2)分類:

A:基本資料類型:4類8種

B:引用資料類型:類,接口,數組。

(3)基本資料類型

A:整數 占用位元組數

byte 1

short 2

int 4

long 8

B:浮點數

float 4

double 8

C:字元

char 2

D:布爾

boolean 1

注意:

整數預設是int類型,浮點數預設是double。

長整數要加L或者l。

單精度的浮點數要加F或者f。

/*

資料類型:Java是一種強類型的語言,針對每一種資料都定義了明确的資料類型。

資料類型分類:

A:基本資料類型

B:引用資料類型(類,接口,數值)

基本資料類型:4類8種

A:整數 占用位元組數

byte 1

short 2

int 4

long 8

B:浮點數

float 4

double 8

C:字元

char 2

D:布爾

boolean 1

注意:

整數預設是int類型

浮點數預設是double類型。

長整型字尾用L或者l标記。建議使用L。

單精度浮點數用F或者f标記。建議使用F。

*/

class DataTypeDemo {

public static void main(String[] args) {

//定義變量的格式:

//資料類型 變量名 = 初始化值;

//定義一個位元組變量

byte b = 10;

System.out.println(10);

System.out.println(b);

//定義一個短整型變量

short s = 100;

System.out.println(s);

//定義一個整型變量

int i = 1000;

System.out.println(i);

//超過了int的範圍

//int j = 1000000000000;

long j = 1000000000000L;

//long j = 100L;

System.out.println(j);

//定義浮點資料變量

float f = 12.345F;

System.out.println(f);

double d = 12.345;

System.out.println(d);

//定義字元變量

char ch = 'a';

System.out.println(ch);

//定義布爾變量

boolean flag = true;

System.out.println(flag);

}

}

8:資料類型轉換(掌握)

(1)boolean類型不參與轉換

(2)預設轉換

A:從小到大

B:byte,short,char -- int -- long -- float -- double

C:byte,short,char之間不互相轉換,直接轉成int類型參與運算。

/*

+是一個運算符(我們等會講解)。做加法運算的。

一般來說,我們在運算的時候,要求參與運算的資料類型必須一緻。

注意:

boolean類型不能轉換為其他的資料類型

預設轉換(從小到大的轉換)

A:byte,short,char—int—long—float—double

B:byte,short,char互相之間不轉換,他們參與運算首先轉換為int類型

*/

class DataTypeDemo3 {

public static void main(String[] args) {

//直接輸出的方式做加法

//System.out.println(3 + 4);

//兩個int類型做加法

int x = 3;

int y = 4;

int z = x + y;

System.out.println(z);

//定義一個byte類型,一個int類型,做加法

byte a = 3;

int b = 4;

System.out.println(a + b);

//可能損失精度

//byte c =  a + b;

int c = a + b;

System.out.println(c);

}

}

(3)強制轉換

A:從大到小

B:可能會有精度的損失,一般不建議這樣使用。

C:格式:

目标資料類型 變量名 = (目标資料類型) (被轉換的資料);

/*

強制轉換:

從大的資料類型到小的資料類型。

格式:

目标資料類型 變量 = (目标資料類型) (被轉換的資料);

注意:

不要随意的去使用強制轉換,因為它隐含了精度損失問題。

*/

class DataTypeDemo4 {

public static void main(String[] args) {

byte a = 3;

int b = 4;

//這個肯定沒有問題

//int c = a + b;

//byte c = 7;

//這個是有問題的

//byte c = a + b; 

//用強制類型轉換改進

byte c = (byte) (a + b);

System.out.println(c);

}

}

(4)思考題和面試題:

A:下面兩種方式有差別嗎?

float f1 = 12.345f;

float f2 = (float)12.345;

/*

思考題1:請問下面這個有沒有問題

double d = 12.345;

float f = d;

思考題2:看看下面兩個定義有沒有差別呢?

float f1 = (float)12.345;

float f2 = 12.345f;

f1其實是通過一個double類型轉換過來的。

而f2本身就是一個float類型。

*/

class DataTypeDemo5 {

public static void main(String[] args) {

//把double指派給float,加了強制類型轉換

double d = 12.345;

float f = (float)d;

//看看下面兩個定義有沒有差別呢?

float f1 = (float)12.345;

float f2 = 12.345F;

}

}

B:下面的程式有問題嗎,如果有,在哪裡呢?

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

byte b4 = 3 + 4;

/*

面試題:

byte b1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是編譯失敗的呢?為什麼呢?

b = b1 + b2;是有問題的。

因為變量相加,會首先看類型問題,最終把結果指派的也會考慮類型問題。

常量相加,首先做加法,然後看結果是否在指派的資料類型範圍内,如果不是,才報錯。

*/

class DataTypeDemo6 {

public static void main(String[] args) {

//定義了三個byte類型的變量,b1,b2,b3

//b1的值是3,b2的值是4,b沒有值

byte b1 = 3,b2 = 4,b;

//b = b1 + b2; //這個是類型提升,所有有問題

b = 3 + 4; //常量,先把結果計算出來,然後看是否在byte的範圍内,如果在就不報錯。

}

}

C:下面的操作結果是什麼呢?

byte b = (byte)130;

/*

byte b = 130;有沒有問題?如果我想讓指派正确,可以怎麼做?結果是多少呢?

練習:byte b = (byte)300;

*/

class DataTypeDemo7 {

public static void main(String[] args) {

//因為byte的範圍是:-128到127。

//而130不在此範圍内,是以報錯。

//byte b = 130; 

//我們可以使用強制類型轉換

byte b = (byte) 130;

//結果是多少呢?

System.out.println(b);

}

}

/*

分析過程:

我們要想知道結果是什麼,就應該知道是如何進行計算的。

而我們又知道計算機中資料的運算都是補碼進行的。

而要得到補碼,首先要計算出資料的二進制。

A:擷取130這個資料的二進制。

00000000 00000000 00000000 10000010

這是130的原碼,也是反碼,還是補碼。

B:做截取操作,截成byte類型的了。

10000010 

這個結果是補碼。

C:已知補碼求原碼。

符号位 數值位

補碼: 1 0000010

反碼: 1 0000001

原碼: 1 1111110

*/

D:字元參與運算

是查找ASCII裡面的值

'a' 97

'A' 65

'0' 48

System.out.println('a');

System.out.println('a' + 1);

/*

看程式寫結果

通過字元和一個整數相加,我們給出一張表:ASCII碼表。

通過看完這張表以後,我們要記住三個值:

'a' 97

'A' 65

'0' 48

*/

class DataTypeDemo8 {

public static void main(String[] args) {

//直接輸出一個字元

System.out.println('a'); //a

//輸出一個字元和一個整數做加法

System.out.println('a'+1); //98

}

}

E:字元串參與運算

這裡其實是字元串的連接配接

System.out.println("hello"+'a'+1);

System.out.println('a'+1+"hello");

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

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

/*

看程式寫結果

字元串資料和其他資料做+,結果是字元串類型。

這裡的+不是加法運算,而是字元串連接配接符。

*/

class DataTypeDemo9 {

public static void main(String[] args) {

System.out.println("hello"+'a'+1); //helloa1

System.out.println('a'+1+"hello"); //98hello

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

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

}

}

(1):在定義Long或者Float類型變量的時候,要加L或者f。

整數預設是int類型,浮點數預設是double。

byte,short在定義的時候,他們接收的其實是一個int類型的值。

這個是自己做了一個資料檢測的,如果不再它們的範圍内,就報錯。

(2):byte值的問題

byte b1 = 127;

byte b2 = (byte)128; //-128

byte b3 = (byte)129; //-127

byte b4 = (byte)130; //-126

byte的範圍:-128 ~ 127

128:10000000

-128:10000000 (這裡的1即是符号位,也是數值位)

(3):資料類型轉換之預設轉換

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

long: 8個位元組

float:4個位元組

A:它們底層的存儲結構不同。

B:float表示的資料範圍比long的範圍要大

long:2^63-1

float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

( 4):Java語言中的字元char可以存儲一個中文漢字嗎?為什麼呢?

可以。因為java語言中的字元占用兩個位元組。

Java語言采用的是Unicode編碼。

​​懂得​分享​才能學好Java,​​

​​Java​開源​有你的一份力量​​

​​你有好的​資源​可以分享給我;​​

​​記得寫上你的​名字​,發表時會署名​​

Java基礎-Java基礎-02總結關鍵字,辨別符,注釋,常量進制,變量資料類型