8?? ?? ??? ??? ??? ????. 1. 4?? ?? ??(byte, short, int, long) 2. 2?? ?? ??? ??(float, double) 3. 1?? ?? ?? 4, 1?? ?? ??; "??".
? ????? ?? ??: windows7 ???, java8 ??, DELL G3 ???.
8?? ?? ??? ??
Java?? 8?? ?? ??? ??? ??? ?? ??, ?? ??? ??, ?? ??? ? ?? ?? ???? ???? ? ?????. ??? ?? ??? ????. ?? ???? ?? ?? ??? ??? ???, ??? ?? ?? ??? ??? ??? ??? ????. ?? ??? ??? ?? – 1? ?? ????.
?? - 1
?? - 1?? ? ? ??? ?? ??? ??? ?? 4?? ??(?? ??, ?? ??? ??)? ????. type, char, boolean), ???? 4?? ?? ??(byte, short, int, long)? ??? ?? ??? ??? 2?? ?? ??(float, double)? ????. ??-2? ? 8?? ??? ??? ?? ??? ?? ????? ?????.
?? -2
?? 8?? ??? ?? ? ?? ????? ???? 5?? ??? int, long, ??, ??, ??. ??? ??? ??? ?? ???? ????. ? 5?? ?? ??? ??? ????? ??? ?? ?????. ?? ??? ??? ?? ??? ??? ??? ?? ???.
2.int type
2.1.int type
int? ?? ????? ???? ????? 32??? ??? ??? ?????. Int? ?? ?? ??? -231~231-1, ? -2147483648~2147483647? ? ??? ???? 21? ????.
2.2. ?? ???? int ?????
?? ?? ???(literal)? ?? ??? ?????. ?? ?? ?? ??? 100? ??????.
int a = 100; int a = 100;
?? ???? ?? ?? ??? ???? ???.
?? ???? ?? ??? int ?????. ?? ??? ??? int? ?? ??? ???? ??? ??? ?????. ?? ??? ?? ??? ???? ???? ??? ?????.
int d = 10000000000; // 編譯錯誤10000000000這個數(shù)值寫出來就是錯誤的,因為Java認(rèn)為所有直接寫出的整數(shù)都是int類型,而這個數(shù)值超過了int的表達(dá)范圍。 int d = 10000000000; // 編譯錯誤10000000000這個數(shù)值寫出來就是錯誤的,因為Java認(rèn)為所有直接寫出的整數(shù)都是int類型,而這個數(shù)值超過了int的表達(dá)范圍。
???? 10?? ?? ??? ?? ???? 16?? ??(0X ?? 0x? ??) ?? 8?? ??(0?? ??)?? ??? ?? ????. ??? ?? ?? ? ?? ??? ?????. :
int a = 100000; // 10進(jìn)制 int b = 0x186a0; // 16進(jìn)制 int c = 0303240; // 8進(jìn)制 int a = 100000; // 10進(jìn)制 int b = 0x186a0; // 16進(jìn)制 int c = 0303240; // 8進(jìn)制
2.3 ?? ??? ??? ???? ???
? ?? ??? ??? ?? ??? ????(??: ????? ??) ??? ??? ???. ?? ??? ??? ????.
int c = 5/3; System.out.println(c); // c的值為1,取整 int total = 87; int error = 23; int percent = error / total * 100; System.out.println(percent+"%"); //結(jié)果為0%,23除以87整數(shù)部分為0,乘以100,為0 percent = 100 * error / total; System.out.println(percent + "%"); // 結(jié)果為26%,230除以87整數(shù)部分為26 int c = 5/3; System.out.println(c); // c的值為1,取整 int total = 87; int error = 23; int percent = error / total * 100; System.out.println(percent+"%"); //結(jié)果為0%,23除以87整數(shù)部分為0,乘以100,為0 percent = 100 * error / total; System.out.println(percent + "%"); // 結(jié)果為26%,230除以87整數(shù)部分為26
2.4. ?? ? ???? ??
? ?? ??? ??? ? ??? ??? ??? ??? ? ??? ??? ?? ???. ????? ???? ??? ??? ???. ??? ?? ?? ??? ??? ???. ?? ??? ??? ????.
int a = 2147483647; //int類型整數(shù)的上限 int b = -2147483648; //int類型整數(shù)的下限 a = a + 1; b = b - 1; System.out.println("a=" + a); //輸出結(jié)果: a=-2147483648 溢出,結(jié)果錯誤。 System.out.println("b=" + b); //輸出結(jié)果: b=2147483647溢出,結(jié)果錯誤。 int a = 2147483647; //int類型整數(shù)的上限 int b = -2147483648; //int類型整數(shù)的下限 a = a + 1; b = b - 1; System.out.println("a=" + a); //輸出結(jié)果: a=-2147483648 溢出,結(jié)果錯誤。 System.out.println("b=" + b); //輸出結(jié)果: b=2147483647溢出,結(jié)果錯誤。
3.long type
3.1.long type
??? ??? ? int ??? ??? ???? ??? long? ??? ? ????. type, long ?? ?? 8???(?, 64??)? ????, ?? ?? ??? -263~263-1, ? -9223372036854775808~9223372036854775807??.
? ?? ??? ????? L ?? l? ??? ???. ?? ??? ??? ????.
long a = 10000000000; //會有編譯錯誤,因為10000000000編譯器認(rèn)為是int類型,而這個值,已經(jīng)超出了int的范圍 long b = 10000000000l; //正確 long a = 10000000000; //會有編譯錯誤,因為10000000000編譯器認(rèn)為是int類型,而這個值,已經(jīng)超出了int的范圍 long b = 10000000000l; //正確
3.2. ? ?? ???? long ??? ?????.
? ?? ????(?? ?? int? ????) long ??? ??? ? ????. ?? ??? ??? ????.
long distance1 = 10000 * 365 * 24 * 60 * 60 * 299792458l; //必須有一個long型數(shù)據(jù)參與的運算結(jié)果才是long型 System.out.println("distance1="+distance1);//distance1=547836957965889536 結(jié)果正確 long distance2 = 10000 * 365 * 24 * 60 * 60 * 299792458; System.out.println("distance2="+ distance2); //distance2=-1973211136 溢出,=號后面的數(shù)據(jù)默認(rèn)為int類型,超出了范圍,發(fā)生溢出。 long distance1 = 10000 * 365 * 24 * 60 * 60 * 299792458l; //必須有一個long型數(shù)據(jù)參與的運算結(jié)果才是long型 System.out.println("distance1="+distance1);//distance1=547836957965889536 結(jié)果正確 long distance2 = 10000 * 365 * 24 * 60 * 60 * 299792458; System.out.println("distance2="+ distance2); //distance2=-1973211136 溢出,=號后面的數(shù)據(jù)默認(rèn)為int類型,超出了范圍,發(fā)生溢出。
3.3 ?? ? ??? ?? ???? ??
JDK? System.currentTimeMillis() ???? ?????. ? ???? 1970? 1? 1? 0??? 0??? ??? ??? ?? ?????. ??? ???? ?? ?? ??? ??? ???. ?? ??? ??? ????.
long time = System.currentTimeMillis(); System.out.println(time); //輸出的結(jié)果為: 1383835712828 long time = System.currentTimeMillis(); System.out.println(time); //輸出的結(jié)果為: 1383835712828
? ???? ? ? ??? ?? ??? int ??? ???? ??????. ??? JDK?? ??? ?? ??? ??? ? ???? ??? ????. ??? ??? ?? ?????.
4. double類型
4.1. 使用double進(jìn)行浮點數(shù)的運算
前面所學(xué)習(xí)的int、long都是用于存儲整數(shù)的,小數(shù)即為浮點數(shù),包括: float(單精度)和double(雙精度),double類型的精度值是float類型的兩倍,因此而得名雙精精,在實際的應(yīng)用開發(fā)中,float應(yīng)用極少,大多數(shù)場合使用double表示浮點數(shù)。示例代碼如下:
double pi = 3.14; double r = 8; double s = pi * r * r; System.out.println("s=" + s); // 輸出的結(jié)果為:s=200.96 double pi = 3.14; double r = 8; double s = pi * r * r; System.out.println("s=" + s); // 輸出的結(jié)果為:s=200.96
4.2. 浮點數(shù)直接量是double類型
浮點數(shù)的直接量有兩種寫法:1)通常寫法,如:3.14、314、0.1、.5。 2)科學(xué)計數(shù)法,如:1.25E2、1.25e2、1.25E-2。其中,1.25E2表示1.25乘以10的2次方。
默認(rèn)的浮點直接量為double型,如果需要表示float類型的直接量,需要加“f”或“F”后綴。例如:
float f1 = 3.14 //編譯錯誤,應(yīng)該寫成3.14f float f1 = 3.14 //編譯錯誤,應(yīng)該寫成3.14f
4.3. double運算時會出現(xiàn)舍入誤差
2進(jìn)制系統(tǒng)中無法精確的表示1/10,就好像十進(jìn)制系統(tǒng)中無法精確的表示1/3一樣,
所以,2進(jìn)制表示10進(jìn)制會有一些舍入誤差,對于一些要求精確運算的場合會導(dǎo)致代碼的缺陷。示例代碼如下所示:
double money = 3.0; double price = 2.9; System.out.println(money - price); //輸出的結(jié)果是: 0.10000000000000009 double money = 3.0; double price = 2.9; System.out.println(money - price); //輸出的結(jié)果是: 0.10000000000000009
如果需要精確的運算可以考慮放棄使用double或float而采用BigDecimal 類來實現(xiàn)。關(guān)于這一點,將在后續(xù)的章節(jié)中介紹。
5. char類型
5.1. char類型
字符類型char事實上是一個16位無符號整數(shù)(都是正數(shù)),這個值是對應(yīng)字符的編碼,Java字符類型采用Unicode字符集編碼(通用碼、統(tǒng)一碼、萬國碼),而Unicode是世界通用的定長字符集,所有的字符都是16位來表示。例如:字符a實際的值為97,字符A實際的值為65,字符0實際的值為48。
字符直接量可以采用諸如:‘中’的形式,也可以采用16進(jìn)制的表示形式,例如: ‘\u4e2d’,代碼如下所示:
char c1 = ‘中’; //c1中存的是”中”的編碼 char c2 = '\u4e2d'; //‘4e2d’為‘中’所對應(yīng)的16位Unicode編碼的16進(jìn)制表示形式 System.out.println(c1); System.out.println(c2); char c1 = ‘中’; //c1中存的是”中”的編碼 char c2 = '\u4e2d'; //‘4e2d’為‘中’所對應(yīng)的16位Unicode編碼的16進(jìn)制表示形式 System.out.println(c1); System.out.println(c2);
如上代碼的輸出結(jié)果:c1的值為中,c2值也為中,但c1和c2內(nèi)部存儲的其實是”中”這個字符所對應(yīng)的Unicode碼,即:一個無符號的整數(shù)。
5.2. 對char型變量賦值
在對char型變量賦值時,可以采用如下三種方式:
方式一:
字符直接量:形如‘A’,變量中實際存儲的是該字符的Unicode編碼(無符號整數(shù)值),一個char型變量只能存儲一個字符。示例如下:
char c1 = 'A'; char c1 = 'A';
方式二:
整型直接量:范圍在0~65535之間的整數(shù),變量中實際存儲的即該整數(shù)值,但表示的是該整數(shù)值所對應(yīng)的Unicode字符。示例如下:
char c2 = 65; char c2 = 65;
Unicode形式:形如‘\u0041’,Unicode字符的16進(jìn)制形式。示例如下:
char c3 = '\u0041'; char c3 = '\u0041';
5.3. 使用轉(zhuǎn)義字符
字符直接量需要包含在一對’’單引號之中,那如果想表示單引號’的字符時,需要怎么表示?想表示回車、換行符時,怎么表示?
因為單引號為特殊意義的字符, 那么,對于不方便輸出的字符可以采用轉(zhuǎn)義字符來表示,示例代碼如下:
char c = '\\'; System.out.println(c); //輸出的結(jié)果為:\ char c = '\\'; System.out.println(c); //輸出的結(jié)果為:\
常用轉(zhuǎn)義字符如下圖 – 2所示:
圖- 2
6. boolean類型
6.1. 使用boolean變量進(jìn)行關(guān)系運算
boolean類型適用于關(guān)系、邏輯運算, 表示某個條件是否成立, 只允許取值true或false,true表示條件成立, 而false表示條件不成立。
boolean型變量經(jīng)常用于存儲關(guān)系運算的結(jié)果,所謂關(guān)系運算就是比較兩個變量的大小相等等關(guān)系(此知識點,后續(xù)詳細(xì)介紹)。boolean示例代碼如下所示:
int age = 18; boolean isChild = age<16; System.out.println(isChild); // isChild的值為false boolean running = true; boolean closed = false; int age = 18; boolean isChild = age<16; System.out.println(isChild); // isChild的值為false boolean running = true; boolean closed = false;
7. 基本類型間轉(zhuǎn)換
7.1. 類型間轉(zhuǎn)換
不同的基本類型直接可以相互轉(zhuǎn)化,主要有兩種方式:
自動類型轉(zhuǎn)化(隱式類型轉(zhuǎn)換):從小類型到大類型可以自動完成。類型的大小關(guān)系如下圖 - 3所示:
圖- 3
強(qiáng)制轉(zhuǎn)化:從大類型到小類型需要強(qiáng)制轉(zhuǎn)換符,語法如下:
(需要轉(zhuǎn)換成的類型)變量
因為大類型的精度值大于小類型,取值范圍大于小類型,所以,當(dāng)使用強(qiáng)制轉(zhuǎn)化時,有可能會造成精度的損失或者溢出,所以,在使用強(qiáng)制轉(zhuǎn)化時要求顯式的告訴編譯器,正在進(jìn)行強(qiáng)制轉(zhuǎn)換。
7.2. 強(qiáng)制轉(zhuǎn)換時的精度喪失和溢出
基本類型轉(zhuǎn)化如下示例所示,注意強(qiáng)制轉(zhuǎn)換時可能會造成的精度喪失和溢出。
int a = 100; int b = 200; long c = a + b; //自動將int轉(zhuǎn)化為long long l1 = 1024l; int i = (int) l1; //需要加強(qiáng)制轉(zhuǎn)化符由于1024在int的范圍內(nèi),所以沒有產(chǎn)生溢出 long l = 1024L * 1024 * 1024 * 4; int j = (int) l; //會產(chǎn)生溢出 System.out.println(j); // 結(jié)果為:0 double pi = 3.1415926535897932384; float f = (float) pi; //會造成精度的損失,因為單精度的精確度小于double System.out.println(f); //結(jié)果為:3.1415927 int a = 100; int b = 200; long c = a + b; //自動將int轉(zhuǎn)化為long long l1 = 1024l; int i = (int) l1; //需要加強(qiáng)制轉(zhuǎn)化符由于1024在int的范圍內(nèi),所以沒有產(chǎn)生溢出 long l = 1024L * 1024 * 1024 * 4; int j = (int) l; //會產(chǎn)生溢出 System.out.println(j); // 結(jié)果為:0 double pi = 3.1415926535897932384; float f = (float) pi; //會造成精度的損失,因為單精度的精確度小于double System.out.println(f); //結(jié)果為:3.1415927
7.3. 數(shù)值運算時的自動轉(zhuǎn)換
如果在一個表達(dá)式中出現(xiàn)了多種數(shù)據(jù)類型,則運算結(jié)果會自動的向較大的類型進(jìn)行轉(zhuǎn)化,
示例如下:
//由于有l(wèi)ong型的直接量參與,整個表達(dá)式的結(jié)果為long long distance = 10000 * 365 * 24 * 60 * 60 * 299792458l; //由于有double型的直接量599.0參與,整個表達(dá)式的結(jié)果為 double double change = 800 - 599.0; //結(jié)果為0.0,右邊都是int型數(shù)據(jù)運算結(jié)果也為int類型,結(jié)果為0,再賦值給double 將0轉(zhuǎn)化為 0.0 double persent1 = 80 / 100; //結(jié)果為0.8,右邊表達(dá)式有double型直接量參與, 運算結(jié)果為double型 double persent2 = 80.0 / 100; //由于有l(wèi)ong型的直接量參與,整個表達(dá)式的結(jié)果為long long distance = 10000 * 365 * 24 * 60 * 60 * 299792458l; //由于有double型的直接量599.0參與,整個表達(dá)式的結(jié)果為 double double change = 800 - 599.0; //結(jié)果為0.0,右邊都是int型數(shù)據(jù)運算結(jié)果也為int類型,結(jié)果為0,再賦值給double 型,將0轉(zhuǎn)化為 0.0 double persent1 = 80 / 100; //結(jié)果為0.8,右邊表達(dá)式有double型直接量參與, 運算結(jié)果為double型 double persent2 = 80.0 / 100;
7.4. byte、char、short轉(zhuǎn)換為int
在前面所介紹的8種數(shù)據(jù)類型中,byte、char、short、int、long都表示整數(shù)類型,而整型的直接量為int,在實際使用中,為了方便使用,遵循了如下的規(guī)則:
int直接量可以直接賦值給byte、char和short,只要不超過其表示范圍。示例如下:
byte b = 97; short s = 97; char c = 97; byte b = 97; short s = 97; char c = 97;
byte、char、short三種類型參與運算時,先一律轉(zhuǎn)換成int類型再進(jìn)行運算。示例如下:
byte b = 97; int num = b + b; //num的值為194
相關(guān)視頻教程推薦:Java視頻教程
? ??? 8?? ?? ??? ??? ??????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

JDBC ????? ???? ????? ?? ?? ?? ??? ?? ?? ??? ?? ? ?? ??? ?? ?? ?? ??? ???????. 1. ????? ????? Conn.SetAutoCommit (False)?? ??????. 2. ??? ? ????? ?? ?? SQL ??? ?????. 3. ?? ??? ??? ?? Conn.commit ()?? ???? ??? ???? ???? ?? ??? ???? Conn.Rollback ()?? ??????. ???, ? ??? ???? ????, ??? ???? ????, ?? ??? ??? ?? ??? ??? ???? ? ???????. ?? ?? ?? ???? ????? ??? ???? ?? ?? ???? ???? ??? ????? ?? ??? ??? ? ?? ???? ?? ????.

?? ?? ? ?? ???? ???? ?? Java.Time ???? ???? ??????. 2. LocalDate, LocalDateTime ? LocalTime? ?? ?? ??? ??? ?????. 3. () ???? ???? ?? ??? ??? ????. 4. ???/???? ??? ???? ??? ????? ??? ??????. 5. ZonedDateTime ? Zoneid? ???? ???? ??????. 6. DateTimeFormatter? ?? ?? ? ?? ?? ?? ???; 7. ??? ?? ?? ?? ??? ????? ?? ??????. ?? Java? ?? ??? ???? ??? ??? ???? Java.Timeapi ??? ?? ??? ???????.

Pre-FormancetArtUptimeMoryUsage, Quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless sinarios.2.thyvelopecosyste,

Java 's Garbage Collection (GC)? ???? ???? ???? ??????, ?? ? ??? ??? ? ??? ??? ??? ??? ????. 1.GC? ?? ?? (? : ?? ??, ?? ???, ?? ?? ?)?? ??? ???? ????, ?? ? ??? ??? ???? ?????. 2. ?? ???? ????? ????, ?? ?? ??? ??? ???? ?? ??? ??????. 3. ?? ?? ?? ?? : ??? ?? (Eden, S0, S1)? ?? ????? ?????. ??? ??? ?? ? MajorGC? ???? ? ??? ? ????. Metaspace? ??? ?? ???? ?????. 4. JVM? ??? GC ??? ?????. SerialGC? ??? ?? ????? ?????. ParallelGC? ???? ??????. CMS? ?? ???

GO? HTTP ?? ????? ?? ??, ??, ????? IP ? ?? ??? ?? ? ? ????. 1. http.handlerfunc? ???? ????? ????, 2. ??? ???? ?? ?? ??? ?? ??? ??????. ?? ?? ??? ???? ??? ?????? ??? ????? ???? ? ?????. ?? ???? ?? ?? ??, JSON ?? ?? ? ?? ID ??? ?????.

??? htmlinput ??? ???? ??? ???? ????? ??? ??? ?? ??? ???? ???? ? ????. 1. ???, ???, ??, ?? ? ??? ?? ??? ??? ?? ?? ?? ??? ???? ???? ??? ? ???? ??? ? ????. 2. HTML5? ?????? ??? ? ?? ?? ??? ?? ? ??? URL, ??, ?? ? ??? ?? ??? ??? ??????. 3. ?? ?? ? ? ??? ??? ???? ?? ??? ???? ???? ?? ???? ?? ???? ???? ?? ? ? ??? ?? ???????.

GradleisBetTerChoiceFormostNewProjectSduetoitssuperiorflexible, Performance, and ModernToolingsupport.1.Gradle'Sgroovy/kotlindslismoreConcisENDEXPRESSIVETHANMAVEN'SVOSEXML.2.GradleOutsMaveninbuildweedweedweedweedweedweedweedweedweedweedweedweedweedweede

DEFER? ??? ???? ?? ??? ??? ???? ? ?????. ?? ??? ?? ? ? ?? ????, ??? ??? ? ?? ?? (LIFO)? ??? ?????. 1. ?? ??? ??? ? ??? ?????. 2. ?? ??? ?? ??? ??? ????? ?????. 3. ?? ? ?? ?? ??? ? ????. 4. ??? ?????? ??? ??? ???? ?????. 5. ?? ??? ???? ?? ??? ?? ??? ?????. ??? ??? ?? ?? ? ???? ???? ? ????.
