首發於:java入門 | 八大基礎類型
java入門系列,從零開始!!!
1、基礎類型
1.1 介紹
1.2 練習1:測試最大值最小值
創建Basic工程
創建cn.qile.basic包
創建Test1_Scope.java
package cn.qile.basic;
//這個類用來測試取值範圍
public class Test1_Scope {
public static void main(String[] args) {
//測試整型數據範圍 byte short int long
//創建變量保存byte取值 -- 變量類型 變量名=變量值
byte min = Byte.MIN_VALUE;
byte max = Byte.MAX_VALUE;
System.out.println(min);//-128,打印變量的值
System.out.println(max);//127
short smin = Short.MIN_VALUE;
short smax = Short.MAX_VALUE;
System.out.println(smin);//-32768
System.out.println(smax);//32767
//long -- Long
long lmin = Long.MIN_VALUE;
long lmax = Long.MAX_VALUE;
System.out.println(lmin);//-9223372036854775808
System.out.println(lmax);//9223372036854775807
//TODO int -- Integer
int imin = Integer.MIN_VALUE;
int imax = Integer.MAX_VALUE;
System.out.println(imin);//-2147483648
System.out.println(imax);//2147483647
//TODO 浮點型float--Float double--Double
float fmin = Float.MIN_VALUE;
float fmax = Float.MAX_VALUE;
System.out.println(fmin);//1.4E-45
System.out.println(fmax);//3.4028235E38
double dmin = Double.MIN_VALUE;
double dmax = Double.MAX_VALUE;
System.out.println(dmin);//4.9E-324
System.out.println(dmax);//1.7976931348623157E308
//布爾類型
boolean b = true;//真,通常用1表示真
boolean b2 = false;//假,通常用0表示假
//字符類型
char c = 'a';
char c2 = '中';//char類型可以存儲一箇中文漢字
char c3 = 97;
System.out.println(c);
System.out.println(c2);
//char類型數據可以保存數字,但是在使用時,並不是使用數字本身,而是,
//拿着數字去查了ascii碼錶,把數字對應着的字符,拿出來使用
System.out.println(c3);//a,就是因爲ascii碼錶數字97對應着的是a字符
}
}
1.3 練習2:圓形面積
圓的面積:πrr
圓的周長:2πr
import java.util.Scanner;//自動導包
//求圓面積
public class Test2_Area {
public static void main(String[] args) {
//1、定義變量記錄半徑
// double r = 10.1;//寫死了
//動態接收鍵盤輸入的值
double r = new Scanner(System.in).nextDouble();
//2、帶入公式算結果
double result = 3.14*r*r;
//動態拼接字符串:+
System.out.println("圓的面積是"+result);
}
}
1.4 練習3:變量交換
接收用戶輸入的值a和b。
假設a=1,b=2將a和b的值做交換。
package cn.qile.basic;
import java.util.Scanner;
//測試變量交換
public class Test3_Exchange {
public static void main(String[] args) {
//1、接收鍵盤輸入的兩個整數a和b
System.out.print("a = ");
int a = new Scanner(System.in).nextInt();
System.out.print("b = ");
int b = new Scanner(System.in).nextInt();
//2、交換
int c = a ;//定義c,記錄a的值
a = b ;//b的值給a
b = c ;//把c的值給b
//3、打印a和b的值
System.out.println("a = "+a);
System.out.println("b = "+b);
}
}
2、基礎類型的字面值
2.1 整數字面值是int類型
int a = 999999999999999; //超出了int的取值範圍
2.2 byte、short、char 三種比int小的整數可以用範圍內的值直接賦值
byte b = 127;//可以的,因爲127在byte的取值範圍內
byte b2 = 128; //錯誤,因爲128的字面值是int類型,是4字節,byte是1字節,放不開
2.3 浮點數的字面值是double類型
double b = 1.5;
2.4 字面值的後綴LFD
long a = 999999999999L;// 999999999999字面值是int類型,但是超出int取值範圍就報錯了,只能擴大數據範圍,加後綴L,從int轉成long
float b = 3.0F;//3.0字面值是double類型,加後綴L,從double轉成float
double d = 3D;//3字面值是int類型,加後綴D,從int轉成double
2.5進制前綴
0b -2進制 如: 0b0010
0 -8進制 如:076
0x -16進制 如: 0x0986
\u -char類型,16進制 如: \u0000
3、基礎類型的類型轉換
3.1 小轉大/隱式轉換
3.2 大轉小/顯示轉換
需要強制類型轉換
package cn.qile.basic;
public class Test {
public static void main(String[] args) {
//小轉大--隱式轉換
short a = 10;
//小轉大,右側的a是小類型,左側b是大類型,詳單與拿着小類型給大類型,可以直接賦值
long b = a;
//大轉小--顯式轉換--強制轉換--(小類型)
double m = 10.8;
//右側m是大類型,左側n是小類型,拿着大類型直接給小類型賦值--不行
int n = (int)m;
}
}
3.3 浮點數轉成整數,小數直接捨棄
不管0.1還是0.9全都捨棄。
4、運算規則
4.1 計算結果的數據類型,最大類型一致
System.out.println(3/2);//1
4.2 byte,short,char三種比int小的整數,運算時會先自動轉換成int
byte a = 1;
byte b = 2;
//byte c = a+b;
//錯誤,因爲a+b運算時自動變成int類型,大類型,給小類型byte類型賦值,---不能直接賦值--強轉
byte c = (byte)(a+b);
4.3 整數運算符溢出
整數運算,類似於一個鐘錶,轉到最大時,再轉會回到最小。
計算:光速運行一年的長度是多少米。3億m/s
System.out.println(300000000L*60*60*24*365);
//整數運算溢出解決方案:超出int範圍的整數運算會溢出,可以擴大數據範圍,加L,變成long類型
4.4 浮點數運算不精確
System.out.println(1-0.8);
//0.19999999999999996
4.5 浮點數的特殊值
Infinity 無窮大 3.14/0
NaN not a number 0/0.0