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