變數
變數介紹
為什么需要變數
- 變數是程式的基本組成單位
不論是使用哪種高級程式語言撰寫程式,變數都是其程式的基本組成單位,比如:
//變數有三個基本要素(型別+名稱+值)
class Test{
public static void main(String []args){
int a=1;//定義了一個變數,型別int整型,名稱a,值1
int b=3;//定義了一個變數,型別int整型,名稱b,值3
b=89;//把89值賦給b變數
System.out.println(a);//輸出a變數的值
System.out.println(b);//輸出b變數的值
}
}
變(變化)量(值)的介紹
概念
變數相當于記憶體中一個資料存盤空間的表示,你可以把變數看做是一個房間的門牌號,通過門牌號我們可以找到房間,而通過變數名可以訪問到變數(值),
●變數使用的基本步驟
- 宣告變數
int a; - 賦值
a = 60;//應該這么說:把60賦給a - 使用 System.out.println(a);
//也可以一步到位[int a = 60;通常我們是一步完成]
變數快速入門
變數使用入門案例
看演示并對代碼進行說明,演示記錄人的資訊的代碼
public class Var02{
//撰寫一個main方法
public static void main(string[] args) {
//記錄人的資訊
int age = 30;
double score = 88.9;
char gender =‘男';
string name = "king";//輸出資訊,快捷鍵
System.out. println(”人的資訊如下:");
System.out.println(name);
System.out.println(age);
System.out.println(score);
System.out.println(gender);
}
}
變數使用注意事項
- 變數表示記憶體中的一個存盤區域[不同的變數,型別不同,占用的空間大小不同,比如:int 4個位元組,double就是8個位元組]
- 該區域有自己的名稱[變數名]和型別[資料型別]
- 變數必須先宣告,后使用,即有順序
- 該區域的資料可以在同一型別范圍內不斷變化
- 變數在同一個作用域內不能重名
- 變數=變數名+值+資料型別,這一點請注意,變數三要素
+號的使用
-
當左右兩邊都是數值型時,則做加法運算
-
當左右兩邊有一方為字串,則做拼接運算
-
運算順序從左到右
-
測驗題1min
下面代碼輸出什么?
System.out.println(100 + 98);
System.out.println("100" + 98);System.out.println(100+3 +"hello");
System.out.println("hello" +100 +3);答案:
198
10098
103hello
hello1003
資料型別
每一種資料都定義了明確的資料型別,在記憶體中分配了不同大小的記憶體空間(位元組),
(boolean 值只有 true 和 false 兩種,這個資料型別只代表 1 bit 的資訊,但是它的“大小”沒有嚴格的定義,也就是說,不管它占多大的空間,只有一個bit的資訊是有意義的,)(在 Oracle 的 Java 虛擬機實作中,Java 語言中的 boolean 陣列被編碼成 Java 虛擬機的 byte 陣列,每個元素占 8 位元,參考:https://binkery.com/archives/346.html)

整數型別
整型的型別
| 型別 | 占用存盤空間 | 范圍 |
|---|---|---|
| byte[位元組] | 1位元組 | -128 ~127 為啥存放的范圍是這個=>二進制(二進制我們詳解) |
| short[短整型] | 2位元組 | -(215)~215-1 -32768~32767 |
| int[整型] | 4字 | -231 ~ 231-1 -2147483648 - 2147483647 |
| long[長整型] | 8位元組 | -263 ~ 263-1 |
整型的使用細節
-
Java各整數型別有固定的范圍和欄位長度,不受具體OS[作業系統]的影響,以保證java程式的可移植性,
-
Java的整型常量(具體值)默認為int型,宣告long型常量須后加‘l’或'L'
-
java程式中變數常宣告為int型,除非不足以表示大數,才使用long
-
bit:計算機中的最小存盤單位, byte:計算機中基本存盤單元, 1byte = 8 bit
[二進制再詳細說,簡單舉例一個byte 3和short 3]
思考題:long型別,有幾個 bit
[8*8=64 bit]
long n = 3;//記憶體中
浮點型別
-
基本介紹
Java的浮點型別可以表示一個小數,比如123.4,7.8,0.12等等
浮點型的分類
| 型別 | 占用存盤空間 | 范圍 |
|---|---|---|
| 單精度float | 4位元組 | -3.403E38~3.403E38 |
| 雙精度double | 8位元組 | -1.798E308 ~ 1.798E308 |
-
說明一下
1.關于浮點數在機器中存放形式的簡單說明,浮點數=符號位+指數位+尾數位2.尾數部分可能丟失,造成精度損失(小數都是近似值),
浮點型使用細節
-
與整數型別類似,Java浮點型別也有固定的范圍和欄位長麾,不受具體OS的影響,[float 4個位元組 double是8個位元組]
-
Java的浮點型常量默認為double型,宣告float型常量,須后加f或‘F’
-
浮點型常量有兩種表示形式
十進制數形式:如:5.12 512.0f .512(必須有小數點)
科學計數法形式:如:5.12e2[5.12*102] 5.12E-2 [5.12*10-2]
-
通常情況下,應該使用double型,因為它比float型更精確,[舉例說明]
double num9 =2.1234567851;
float num10 = 2.1234567851F; -
浮點數使用陷阱:2.7和8.1/3比較(浮點數做除法結果為近似值)(實際開發中當它們的差值的絕對值很小時視為相等)
if(Math.abs(num1 - num2)<0.000001){ System.out.println("差值非常小,到我的規定精度,認為相等..."); }
Java API檔案
-
API (Application Programming Interface,應用程式編程介面)是Java提供的基本編程介面(java提供的類還有相關的方法),中文在線檔案:https://www.matools.com
-
Java語言提供了大量的基礎類,因此 Oracle公司也為這些基礎類提供了相應的API檔案,用于告訴開發者如何使用這些類,以及這些類里包含的方法,
-
Java類的組織形式 [圖]

-
舉例說明如何使用
按:包->類->方法
直接搜索,(Math)
字符型別(char)
基本介紹
字符型別可以表示單個字符,字符型別是char, char是兩個位元組(可以存放漢字),多個字符我們用字串String(我們后面詳細講解String)
案例演示
//演示char的基本使用
public class Chare1 {
//撰寫一個main方法
public static void main(String[] args){
char c1 = 'a';
char c2 = '\t';
char c3 = '韓';
char c4 = 97;//說明:字符型別可以直接存放一個數字
System.out.println(c1);//a
System.out.println(c2);//
System.out.println(c3);//韓
System.out.println(c4);//a
}
}
代碼
char c1 = 'a';
char c2 ='\t';
char c3='韓';
char c4 =97:
字符型別使用細節
-
字符常量是用單引號( ‘ ’ )括起來的單個字符,例如:char c1 = 'a'; char c2 ='中‘; char c3 ='9';(不能使用雙引號,會報錯)
-
Java中還允許使用轉義字符'\'來將其后的字符轉變為特殊字符型常量,例如:char c3 = n'; 'n'表示換行符
-
在java中,char的本質是一個整數,在輸出時,是unicode碼對應的字符,
http://tool.chinaz.com/Tools/Unicode.aspx -
可以直接給char賦一個整數,然后輸出時,會按照對應的unicode字符輸出[97]
-
char型別是可以進行運算的,相當于一個整數,因為它都對應有Unicode碼.
public class CharDetail{
//撰寫一個main方法
public static void main(String[] args) {
//在java中,char的本質是一個整數,在輸出時,是unicode碼對應的字符char c1 = 97;
System.out.println(c1); // a
char c2 = 'a';//輸出'a’對應的數字
System.out.println((int)c2);//92
char c4 = 38889;
System.out.println(c4);//韓
//char型別是可以進行運算的,相當于一個整數,因為它都對應有Unicode
System.out.println('a' + 10);//97+10=107
//課堂小測驗
char c5 = 'b’ + 1;//98+1==> 99
System.out.println((int)c5);//99
System.out.println(c5);//99->對應的字符->編碼表
}
}
字符型別本質探討
- 字符型存盤到計算機中,需要將字符對應的碼值(整數)找出來,比如'a'
存盤:'a' ==> 碼值97 ==> 二進制 ==> 存盤
讀取:二進制 ==> 97 ==> 'a' ==> 顯示 - 字符和碼值的對應關系是通過字符編碼表決定的(是規定好)
介紹一下字符編碼表
ASCIl(ASCII編碼表一個位元組表示,一個128個字符)(http://c.biancheng.net/c/ascii/)
Unicode (Unicode編碼表固定大小的編碼使用兩個位元組來表示字符,字母和漢字統一都是占用兩個位元組,這樣浪費空間)
utf-8(編碼表,大小可變的編碼,其中字母使用1個位元組,漢字使用3個位元組)
gbk(可以表示漢字,而且范圍廣,字母使用1個位元組,漢字2個位元組)
gb2312(可以表示漢字,gb2312<gbk)
big5碼(繁體中文,臺灣,香港)
布爾型別:boolean
基本介紹
-
布爾型別也叫boolean型別,booolean型別資料只允許取值true和false,無null
-
boolean型別占1個位元組,
-
boolean型別適于邏輯運算,一般用于程式流程控制[這個后面會詳細介紹]:
if條件控制陳述句;
while回圈控制陳述句;do-while回圈控制陳述句;
for回圈控制陳述句
案例演示
boolean pass = true;
if (pass){
System.out.print1n("通過考試");
}else{
System.out.print1n("沒有通過考試~");
}
基本資料型別轉換
自動型別轉換
介紹
當java程式在進行賦值或者運算時,精度小的型別自動轉換為精度大的資料型別,這個就是自動型別轉換,
資料型別按精度(容量)大小排序為(背,規則)
看一個基本案例
int a = 'c";
double d = 80;
自動型別轉換注意和細節
- 有多種型別的資料混合運算時,系統首先自動將所有資料轉換成容量最大的那種資料型別,然后再進行計算,
- 當我們把精度(容量)大的資料型別賦值給精度(容量)小的資料型別時,就會報錯,反之就會進行自動型別轉換,
- (byte, short)和char之間不會相互自動轉換,
- byte,short,char他們三者可以計算,在計算時首先轉換為int型別,
- boolean不參與轉換
- 自動提升原則:運算式結果的型別自動提升為運算元中最大的型別
byte b2 = 1;
byte b3 = 2;short s1 = 1;
//short s2 = b2 + s1;//錯,b2 + s1 => int
int s2 = b2 + s1;//錯,b2 + s1 => int
byte b4 = b2 + b3;//b2 + b3 => int
強制型別轉換
介紹
自動型別轉換的逆程序,將容量大的資料型別轉換為容量小的資料型別,使用時要加上強制轉換符(),但可能造成精度降低或溢位,格外要注意,
案例演示
int i = (int)1.9;
System.out.println(i);//造成精度損失
int j =100;
byte b1 = (byte)j;
System.out.print1n(b1);//資料溢位
強制型別轉換細節說明
-
當進行資料的大小從大——>小,就需要使用到強制轉換
-
強轉符號只針對于最近的運算元有效,往往會使用小括號提升優先級
//int x =(int)10*3.5+6*1.5; int y = (int)(10*3.5+6*1.5); System.out.println(y); -
char型別可以保存int的常量值,但不能保存int的變數值,需要強轉
char c1 = 100;//v int m = 100;//v char c2 = m;//x char c3= (char)m;//v System.out.println(c3);//100對應的字符 -
byte和short型別在進行運算時,當做int型別處理,
基本資料型別轉換-練習題
判斷是否能夠通過編譯
//1
short s= 12;
s= s-9;
x
//2
byte b = 10;
b =b +11;
b =(byte)(b+11);
//3
char c = 'a';
int i= 16;
float d = .314F;
double result =c+i+d;
//4
byte b = 16;
short s=14;
short t =s + b;
答案:
----------------------------------------
1.錯
2.錯
3.對
4.錯
基本資料型別和String型別的轉換
介紹
在程式開發中,我們經常需要將基本資料型別轉成String型別,或者將String型別轉成基本資料型別,
-
基本型別轉String型別
語法:將基本型別的值+""即可
int n1 = 100;
fLoat f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 +"";
String s2 = f1 +"";
String s3 = d1 +";
String s4 = b1 +"":
System.out.print1n(s1 + " " + s2 + " " +s3 + "" + s4);
-
String型別轉基本資料型別
語法:通過基本型別的包裝類呼叫parseXX方法即可
//String->對應的基本資料型別
String s5 = "123";
//會在0OP講物件和方法的時候回詳細
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
booLean b = BooLean.parseBoolean("true");
short num6 = Short.parseShort(s5);
System.out.println(num1);//123
System.out.println(num2);//123.0
Sytem.out.println(num3);//123.0
System.out.println(num4);//123
System.out.println(num5);//123
System.out.println(num6);//123
System.out.println(b);//true
//怎么把字串轉成字符char ->含義是指把字串的第一個字符得到
//解讀s5.charAt(0)得到s5字串的第一個字符'1'
System.out.println(s5.charAt(0));
注意事項
- 在將String型別轉成基本資料型別時,要確保String型別能夠轉成有效的資料,比如我們可以把"123",轉成一個整數,但是不能把"hello"轉成一個整數,
- 如果格式不正確,就會拋出例外,程式就會終止,這個問題在例外處理章節中,會處理
本章練習
-
程式閱讀題,看看輸出什么?
public class Homework01 { public static void main(String]args){ int n1; n1 = 13; int n2; n2 = 17; int n3; n3 = n1 +n2; System.out.println("n3 = " + n3); int n4 = 38; int n5 = n4 - n3; System.out.println("n5 = " + n5); } } /* n3 = 30 n5 = 8 */ -
使用char型別,分別保存\n \t \r \\ 1 2 3等字符,并列印輸出
public class Homework02 { //撰寫一個main方法 public static void main(String[] args) { //使用char型別,分別保存\n \t \r\ \1 23等字符,并列印輸出 char c1 = '\n';//換行 char c2 = '\t';//制表位ctrl +d char c3 = '\r ';//回車 char c4 = '\r';//輸出\ char c5 = '1';//換行 char c6 = '2 ';//換行 char c7 = '3';//換行 System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4); System.out.println(c5); System.out.println(c6); System.out.println(c7); } } -
編程,保存兩本書名,用+拼接,看效果,保存兩個性別,用加號拼接,看效果,保存兩本書價格,用加號拼接,看效果,
public class HomeworkO3 {i //撰寫一個main方法 public static void main(String[] args) { //編程,保存兩本書名,用+拼接,看效果,保存兩個性別,//用加號拼接,看效果,保存兩本書價格,用加號拼接,看效果 String book1 ="天龍八部"; String book2 ="笑傲江湖"; System.out.println(book1 + book2);//天龍八部笑傲江湖 //性別應該使用char保存 char c1 =‘男'; char c2 =‘女; System.out.println(c1 + c2);//得到男字符碼值+女字符碼值 //保存兩本書價格 double price1 = 123.56; double price2 = 100.11; System.out.println(price1 + price2);//就是123.56+100.11 } } -
編程實作如下效果:
年齡 成績 性別 愛好
XX XX XXX XXX
要求:
1)用變數將姓名、年齡、成績、性別、愛好存盤2)使用+
3)添加適當的注釋
4)添加轉義字符,使用一條陳述句輸出public class HomeworkO4 {i //撰寫一個main方法 public static void main(String[] args) { String name = "jack"; int age = 20; double score = 80.9; char gender ='男'; String hobby ="打籃球";//輸出了資訊,可以使用換行 System.out.println("姓名\t年齡\t成績\t性別t愛好\n" + name + "\t" + age + “\t" + score + "\t" + gender + "\t" + hobby); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492198.html
標籤:Java
上一篇:Java實用類-String
