JAVA基礎(chǔ)
1、數(shù)據(jù)類(lèi)型及轉(zhuǎn)換
1.1 注釋
注釋是在程序指定位置添加的說(shuō)明性信息
簡(jiǎn)單理解:對(duì)代碼的一種解釋說(shuō)明,方便我們程序員更好的去閱讀代碼
// 單行注釋
/*
多行注釋
*/
/**文檔注釋*/
1.2 強(qiáng)制轉(zhuǎn)換
強(qiáng)制轉(zhuǎn)換:把一個(gè)表示數(shù)據(jù)范圍大的數(shù)值或者變量賦值給另一個(gè)表示數(shù)據(jù)范圍小的變量
簡(jiǎn)單理解:大的給小的,不能直接給,需要強(qiáng)轉(zhuǎn)
格式:目標(biāo)數(shù)據(jù)類(lèi)型 變量名 = (目標(biāo)數(shù)據(jù)類(lèi)型)值或者變量;
范例:
ink k = (int)88.88;
注意:強(qiáng)制類(lèi)型轉(zhuǎn)換,有可能會(huì)發(fā)生精度損失
精度損失:簡(jiǎn)單理解,將容積為8升的容器中的水,倒入容積為4升的容器中,如果水超出了4升,就灑了。
1.3 常量
常量:在程序的執(zhí)行過(guò)程中,其值不會(huì)發(fā)生改變的量(數(shù)據(jù))
常量的分類(lèi):
字符串常量:被雙引號(hào)所包裹的內(nèi)容
整數(shù)常量:所有整數(shù)
小數(shù)常量:所有小數(shù)
字符常量:被單引號(hào)包裹的內(nèi)容,里面只能存放單個(gè)字符
布爾常量:只有兩值,true(真),false(假)
布爾常量單獨(dú)打印沒(méi)有意義,為了后面要學(xué)習(xí)的運(yùn)算符,打基礎(chǔ)
空變量:null,數(shù)組部分詳細(xì)講解
注意:null空常量不能輸出打印
1.4 類(lèi)型轉(zhuǎn)換
案例:判斷是否正確
public class Test{
public static void main(String[] args){
byte a = 3; //1
byte b = 4; //2
/*
隱藏轉(zhuǎn)換:當(dāng)小的數(shù)據(jù)類(lèi)型和大的數(shù)據(jù)類(lèi)型在一起運(yùn)算的時(shí)候,小的會(huì)先提示為打的之后,再進(jìn)行運(yùn)算
特殊關(guān)注:byte short char在運(yùn)算的時(shí)候,都會(huì)直接提升為int,然后再進(jìn)行運(yùn)算。
解決方法:byte c = (byte)(a + b)
*/
byte c = a + b; //3 錯(cuò)誤:不兼容的類(lèi)型:從int轉(zhuǎn)換到byte可能會(huì)有損失
byte d = 3 + 4; //4 這里的3和4是兩個(gè)變量,Java存在常量?jī)?yōu)化機(jī)制,會(huì)在編譯的時(shí)候就會(huì)讓3和4進(jìn)行相加,然后會(huì)自動(dòng)判斷7是否在byte的取值范圍內(nèi)。1、在范圍內(nèi):編譯出錯(cuò) 2、在范圍內(nèi):通過(guò)編譯
}
}
1.5 變量
以上兩塊內(nèi)存空間,所記錄的值,是經(jīng)常發(fā)生改變的,對(duì)于這種經(jīng)常發(fā)生改變的數(shù)據(jù),就是所謂的變量。
結(jié)論:變量就是內(nèi)存中的存儲(chǔ)空間,空間中存儲(chǔ)著經(jīng)常發(fā)生改變的量(數(shù)據(jù))
怎么定義變量
~變量的定義格式
數(shù)據(jù)類(lèi)型 變量名 = 數(shù)據(jù)值;
數(shù)據(jù)類(lèi)型:為空間中存儲(chǔ)的數(shù)據(jù),加入類(lèi)型【限制】整數(shù)?小數(shù)?...
變量名:自己要為空間起的名字,沒(méi)有難度
數(shù)據(jù)值:空間中要存儲(chǔ)的數(shù)值,沒(méi)有難度
1.6 數(shù)據(jù)類(lèi)型
計(jì)算機(jī)存儲(chǔ)單元
1B(字節(jié))= 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
TB PB等......
數(shù)據(jù)類(lèi)型
Java語(yǔ)言是強(qiáng)類(lèi)型語(yǔ)言,對(duì)于每一種數(shù)據(jù)都給出了明確的數(shù)據(jù)類(lèi)型,不同的數(shù)據(jù)類(lèi)型也分配了不同的內(nèi)存空間,所以它們表示的數(shù)據(jù)大小也是不一樣的。
數(shù)據(jù)類(lèi)型內(nèi)存占用和取值范圍
常量【沒(méi)有手動(dòng)指定數(shù)據(jù)類(lèi)型】但只要是數(shù)據(jù),就會(huì)存在數(shù)據(jù)類(lèi)型
public static void main(String[] args){
//整數(shù)類(lèi)型,默認(rèn)為int
System.out.println(10);
//浮點(diǎn)類(lèi)型(小數(shù)類(lèi)型),默認(rèn)為double
System.out.println(12.3);
}
1.7 變量的定義和試用
變量的定義格式
數(shù)據(jù)類(lèi)型 變量名 = 數(shù)據(jù)值;
變量的使用
根據(jù)標(biāo)識(shí),變量名進(jìn)行使用
public class Demo{
public static void main(String[] args){
int a = 10;
System.out.println(a);
a = 30;
System.out.println(a);
}
}
總結(jié):變量就是內(nèi)存中的空間,內(nèi)部存儲(chǔ)著不斷發(fā)生變化的數(shù)據(jù)
1.8 變量的注意事項(xiàng)
變量名不允許重復(fù)定義
public static void main(String[] args){
int a = 10;
//int a = 20; 錯(cuò)誤代碼
a = 20;
System.out.println(a);
}
一條語(yǔ)句可以定義多個(gè)變量,但需要使用逗號(hào)進(jìn)行分割
public static void main(String[] args){
int a = 10 , b = 20 , c = 30;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
變量在使用之前一定要進(jìn)行賦值
public static void main(String[] args){
//int a; 錯(cuò)誤代碼
int a = 10;
System.out.println(a);
}
定義float和long變量的注意事項(xiàng)
定義float類(lèi)型變量的時(shí)候:需要在數(shù)值后面加入F的標(biāo)識(shí),F(xiàn)可以大寫(xiě)也可以小寫(xiě)
定義long類(lèi)型變量的時(shí)候:需要在數(shù)值后面加入L的標(biāo)識(shí),L可以大寫(xiě)也可以小寫(xiě)
但是,建議大寫(xiě) 1L 1l(小寫(xiě))
public static void main(String[] args){
float a = 12.3F;
long b = 1000L;
}
變量的作用域范圍
變量的作用域:只在它所在的大括號(hào)中有效、
public static void main(String[] args){
int a = 12;
{
int b = 20; //無(wú)效 運(yùn)行完就消失
System.out.println(a);
}
1.9 鍵盤(pán)錄入
鍵盤(pán)錄入介紹
為什么要有鍵盤(pán)錄入?
目的:為了讓我們操作的數(shù)據(jù),變得更加靈活
舉例:int a = 10;
這里a雖然是個(gè)變量,但記錄得值,卻是手動(dòng)寫(xiě)死的。能不能讓a變量記錄的值,靈活起來(lái),用戶輸入什么,a變量就記錄什么。
實(shí)現(xiàn)鍵盤(pán)錄入
步驟1:導(dǎo)包,需要寫(xiě)在class的上面
import java.util.Scanner
步驟2:創(chuàng)建對(duì)象
Scanner sc = new Scanner(System.in);
只有sc可以改變,其他屬于固定格式
步驟3:使用變量接收數(shù)據(jù)
int i = sc.nextInt();
只有i變量可以改變,其他屬于固定格式
1.10 標(biāo)識(shí)符
標(biāo)識(shí)符概述
標(biāo)識(shí)符:就是給類(lèi),方法,變量等起名字的符號(hào)。
標(biāo)識(shí)符定義規(guī)則:
由數(shù)字、字母、下劃線(_)和美元(S)組成
·不能以數(shù)字開(kāi)頭
·不能是關(guān)鍵字
·區(qū)分大小寫(xiě)
常見(jiàn)命名約定
小駝峰命名法:
約定1:標(biāo)識(shí)符是一個(gè)單詞的時(shí)候,首字母小寫(xiě) eg:name
約定2:標(biāo)識(shí)符由多個(gè)單詞組成的時(shí)候,第一個(gè)單詞首字母小寫(xiě),其他單詞首字母大寫(xiě) eg:firstName
大駝峰命名法:
約定1:標(biāo)識(shí)符是一個(gè)單詞的時(shí)候,首字母大寫(xiě) eg:Student
約定2:標(biāo)識(shí)符由多個(gè)單詞組成的時(shí)候,每個(gè)單詞的首字母大寫(xiě) eg:GoodStudent
1.11 隱式轉(zhuǎn)換
類(lèi)型轉(zhuǎn)換
為什么要學(xué)習(xí)類(lèi)型轉(zhuǎn)換
public class Test{
public static void main(String[] args){
int a = 10;
double b = 12.3;
數(shù)據(jù)類(lèi)型 c = a + b;
}
}
類(lèi)型轉(zhuǎn)換的分類(lèi)
隱式轉(zhuǎn)換
強(qiáng)制轉(zhuǎn)換
隱式轉(zhuǎn)換的過(guò)程
隱式轉(zhuǎn)換
將數(shù)據(jù)類(lèi)型中,取值范圍小的數(shù)據(jù),給取值范圍大的類(lèi)型賦值,可以直接賦值
范例:
int a = 10;
double b = a;
簡(jiǎn)單記:小的給大的,可以直接給。
int 4個(gè)字節(jié)
double 8個(gè)字節(jié)
4升的油,倒入8升的桶,可以直接倒入
隱式轉(zhuǎn)換的細(xì)節(jié)
特殊關(guān)注:
byte short char 三種數(shù)據(jù)在運(yùn)算的時(shí)候,不管是否有更高的數(shù)據(jù)類(lèi)型,都會(huì)提升為int,然后再進(jìn)行運(yùn)算
本文摘自 :https://www.cnblogs.com/