第二天学习Java的笔记
第五章 變量和數(shù)據(jù)類型
程序運行期間可以發(fā)生改變的量。
基本數(shù)據(jù)類型
? 整數(shù)型:byte(1),short(2),int(4),long(8)
? 浮點型:float(單精度),double(雙精度)
? 字符型:char(可以表示中文)
? 布爾型:boolean
和引用數(shù)據(jù)類型(字符串、數(shù)組、類、接口、Lambda)。
注意事項:
1.字符串不是基本類型,是引用類型。
2.浮點型可能只是一個近似值,并非精確的值。
3.數(shù)據(jù)范圍和字節(jié)數(shù)不一定相關,例如float數(shù)據(jù)范圍比long更加廣泛,但是float是4字節(jié)。
4.浮點數(shù)中默認的類型是double。如果一定要使用float類型,需要加上一個后綴F。
5.如果是整數(shù),默認為int類型,如果一定要使用long類型,需要加上一個后綴L。推薦使用大寫。
System.out.println(100);//默認int型 System.out.println(100L);//變?yōu)閘ong int創(chuàng)建一個變量并且使用的格式:
數(shù)據(jù)類型 變量名稱;//創(chuàng)建了一個變量 變量名稱=數(shù)據(jù)值;//賦值,將右邊的數(shù)據(jù)值,賦值交給左邊的變量一步到位的格式: 數(shù)據(jù)類型 變量名稱=數(shù)據(jù)值;//在創(chuàng)建一個變量的同時,立刻放入指定的數(shù)據(jù)值Demo02Variable.java
public class Demo02Variable {public static void main(String[] args) {//創(chuàng)建一個變量//格式:數(shù)據(jù)類型 變量名稱;int num1;//向變量當中存入一個數(shù)據(jù)//格式:變量名稱 = 數(shù)據(jù)值;num1 = 10;//當打印輸出變量名稱的時候,顯示出來的是變量的內(nèi)容System.out.println(num1);//10//改變變量當中本來的數(shù)字,變成新的數(shù)字num1 = 20;System.out.println(num1);//20//一步到位的格式//格式:數(shù)據(jù)類型 變量名稱 = 數(shù)據(jù)值;int num2 = 30;//這時不能再起num1了System.out.println(num2);//30num2 = 35;System.out.println(num2);//變成了35byte num3 = 30;//注意右側(cè)數(shù)值的范圍不能超過左側(cè)數(shù)據(jù)類型的取值范圍System.out.println(num3);//30//byte num4 = 400;//右側(cè)超出了byte的數(shù)據(jù)范圍,錯誤short num4 = 50;System.out.println(num4);//50long num5 = 3000000000;//會報錯long num5 = 3000000000L;System.out.println(num5);//3000000000float num6 = 2.5F;System.out.println(num6);//2.5double num7 = 1.2;//不用加后綴System.out.println(num7);//1.2char zifu1 = 'A';System.out.println(zifu1);//Azifu1 = '中';System.out.println(zifu1);//中boolean b = true;System.out.println(b);//trueb = false;System.out.println(b);//false//將一個變量的數(shù)據(jù)內(nèi)容,賦值交給另一個元素//右側(cè)的變量名稱b已經(jīng)存在,里面裝的是false布爾值//將右側(cè)變量里面的false值,向左交給b2變量進行存儲boolean b2 = b;System.out.println(b2);//false} }變量的注意事項:Demo03VariableNotice.java
/*使用多個變量時,有一些注意事項:1.如果創(chuàng)建多個變量,那么變量之間的名稱不可以重復。2.對于float和long類型來說,字母后綴F和L不要丟掉。3.如果使用byte或者short類型的變量,那么右側(cè)的數(shù)據(jù)值不能超過左側(cè)類型的范圍。4.沒有進行賦值的變量,不能直接用;一定要賦值之后,才能使用。5.變量使用不能超出作用域范圍。【作用域】:從定義變量的一行開始,一直到直接所屬的大括號結束為止。6.可以通過一個語句來創(chuàng)建多個變量,但是一般情況不推薦這么寫。 */ public class Demo03VariableNotice {public static void main(String[] args) {int num1 = 10;//int num2 = 20;//報錯,已定義變量num1//int num4;//System.out.println(num4);//會報錯,顯示尚未定義變量num4.//System.out.println(num5);//報錯,在創(chuàng)建變量之前,不能使用這個變量int num5 = 500;System.out.println(num5);//500{int num6 = 60;System.out.println(num6);}//System.out.println(num6);//會報錯找不到符號,直接所屬上個大括號。超出了作用域,不能再使用//同時創(chuàng)建三個全是int類型的變量int a,b,c;//各自分別賦值a = 10;b = 20;c = 30;System.out.println(a);System.out.println(b);System.out.println(c);//同時創(chuàng)建三個int變量,并且同時各自賦值int x = 20,y = 40,z = 60;System.out.println(x);System.out.println(y);System.out.println(z);} }第六章 數(shù)據(jù)類型轉(zhuǎn)換和運算符
6.1 自動類型轉(zhuǎn)換
Demo01DataType.java 這里存在一個問題
/*當數(shù)據(jù)類型不一樣時,將會發(fā)生數(shù)據(jù)類型轉(zhuǎn)換自動類型轉(zhuǎn)換(隱式)1.特點:代碼不需要特殊處理,自動完成。2.規(guī)則:數(shù)據(jù)范圍從小到大。(與字節(jié)數(shù)不一定相關,比如說float和long)強制類型轉(zhuǎn)換(顯式) */ public class Demo01DataType {public static void main(String[] args) {System.out.println(1024);//這是一個整數(shù),默認就是int類型System.out.println(3.14);//這是一個浮點數(shù),默認就是double類型long num1 = 100L;System.out.println(num1);//100//左邊是long類型,右邊是默認的int類型,左右不一樣//一個等號代表賦值,將右側(cè)的int常量,交給左側(cè)的long變量進行存儲,//int--》long,符合了數(shù)據(jù)范圍從小到大的要求//這一行代碼發(fā)生了自動類型轉(zhuǎn)換long num2 = 200;//不加LSystem.out.println(num2);//200//左邊是double類型,右邊是float類型,左右不一樣,轉(zhuǎn)換為double//float-->double,符合從小到大的規(guī)則//也發(fā)生了自動類型轉(zhuǎn)換double num3 = 2.5F;System.out.println(num3);//當數(shù)字為1.3時會保留很多位小數(shù);但當為2.5時卻會只是2.5//左邊是float類型,右邊是long類型,左右不一樣//long-->float,范圍是float更大一些,符合從小到大的范圍的規(guī)則//也發(fā)生了自動類型轉(zhuǎn)換float num4 = 30L;System.out.println(num4);//30.0。本身是30,變?yōu)閒loat時加.0} }6.2 強制類型轉(zhuǎn)換 (Demo02DataType.java)
/*強制類型轉(zhuǎn)換1.特點:代碼需要特殊的格式處理,不能自動完成;2.格式:范圍小的類型 范圍小的變量名 = (范圍小的類型)原本范圍大的數(shù)據(jù)注意事項:1.強制類型轉(zhuǎn)換一般不推薦使用,因為有可能發(fā)生精度損失(小數(shù)),數(shù)據(jù)溢出(整數(shù))。2.byte/short/char這三種類型都可以發(fā)生數(shù)學運算,例如加法“+”3.byte/short/char這三種類型在運算的時候,都會首先提升為int類型,然后再進行計算4.boolean類型不能發(fā)生數(shù)據(jù)類型轉(zhuǎn)換(不能當成1或者0處理) */ public class Demo02DataType {public static void main(String[] args) {int num = 100;System.out.println(num);//輸出正常100,因為左右格式一致//左邊是int類型,右邊是long類型,不一樣//long--》int,不是從小到大//不能發(fā)生自動類型轉(zhuǎn)換//int num1 = 100L;//System.out.println(num1);//報錯不兼容的類型,因為不符合從小到大int num1 = (int)100L;System.out.println(num1);//100//long強制轉(zhuǎn)換成int類型,int類型范圍是21個億int num2 = (int)6000000000L;System.out.println(num2);//1705032704//double-->int,強制類型轉(zhuǎn)換,精度損失int num3 = (int)3.5;System.out.println(num3);//3,不是四舍五入,直接舍尾char zifu1 = 'A';System.out.println(zifu1 + 1);//66,字符A被當作數(shù)字65來處理//計算機的底層會用一個數(shù)字(二進制)來代表字符A,就是65//一旦char類型進行了數(shù)學運算,那么字符就會按照一定的規(guī)則翻譯成為一個數(shù)字。byte num4 = 40;//注意,右側(cè)的數(shù)值大小不能超過左側(cè)范圍byte num5 = 50;//byte result1 = num4 + num5;//會報錯不兼容的數(shù)據(jù)類型//byte + byte -->int + int-->intint result1 = num4 + num5;System.out.println(result1);short num6 = 60;//byte + byte -->int+int-->int//int強制轉(zhuǎn)換為short:注意必須保證邏輯上真實大小本來就沒有超過short范圍,否則會發(fā)生數(shù)據(jù)溢出。short result2 = (short)(num4 + num6);//int result2 = num4 + num6;System.out.println(result2);} }[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-k5D2brVJ-1606092818686)(C:\Users\Amazing\AppData\Roaming\Typora\typora-user-images\image-20201122153518318.png)]
6.3 ASCII碼表
記好三個開頭:0(48);A(65);a(97)
Demo03DataType.java
/* 數(shù)字和字符的對照表(編碼表):ASCII:Amercian Standard Code for Information Interchange.美國信息交換標準代碼。 Unicode碼表:萬國碼。也是數(shù)字和符號的對照關系,開頭0-127部分和ASCII完全一樣,但是從128開始包含更多字符。emoj*/ public class Demo02DataType {public static void main(String[] args) {char zifu1 = '1''System.out.println(zifu1);//1,是引號里面的內(nèi)容System.out.println(zifu1 + 1);//49char zifu2 = 'A';System.out.println(zifu2 + 0);//65char zifu3 = "a";System.out.println(zifu3 + 0)//97//左側(cè)是int類型,右邊是char類型;//char-->int,確實是從小到大//發(fā)生了自動類型轉(zhuǎn)換int num = zifu3;System.out.println(num);//97//中文char zifu4 = '中';System.out.println(zifu4 + 0);//20013} }6.4 運算符和表達式
運算符:進行特定操作的符號,+,-
表達式:用運算符連起來的式子叫做表達式。
6.4.1 算數(shù)運算符
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-s19xE9q6-1606092818689)(C:\Users\Amazing\AppData\Roaming\Typora\typora-user-images\image-20201122165654459.png)]
Demo04Operator.java
/* 被除數(shù) / 除數(shù) = 商 ... 余數(shù) 對于一個整數(shù)表達式來說,除法用的是整除,整數(shù)除以整數(shù),結果仍然是整數(shù)。只看商,不看余數(shù)。 只有對于整數(shù)的除法來說,取模運算符才有余數(shù)的意義。 取模(取余數(shù)):%注意事項:1.一旦運算當中有不同類型的數(shù)據(jù),那么結果將會是數(shù)據(jù)類型范圍大的那種。 */ public class Demo04Operator {public static void main(String[] args) {//兩個常量之間可以進行數(shù)學運算System.out.println(20 + 30);//50//兩個變量之間也可以進行數(shù)學運算int a = 10;int b = 20;System.out.println(a-b);//-10//變量和常量之間可以混合使用System.out.println(a * 10);//100int x = 10;int y = 3;System.out.println(x / y);//3System.out.println(x % y);//1//數(shù)據(jù)范圍大的那個double result3 = x + 2.5;System.out.println(result3);//12.5} }加法的多種用途:Demo05Plus.java
/*四則運算中的加號有三種常見用法:1.對于數(shù)值來說,那就是加法。2.對于字符串類型來說,char會被提升為int,然后再計算。char類型字符和int類型數(shù)字,之間的對照關系表:ascii、Unicode3.對于字符串String(首字母大寫,這并不是關鍵字),加號代表字符串連接操作。任何數(shù)據(jù)類型和字符串進行連接操作的時候,結果都會變成字符串。 */ public class Demo05Plus {public static void main(String[] args) {String str1 = "zhiyu";String str2 = "shuimian";System.out.println("hello"+"hh");//hellohh//String + int -->System.out.println(a + 20);//zhiyu20//優(yōu)先級,小括號里面的東西總是最先執(zhí)行的//String + int + int//String +int//StringSystem.out.println(a + 20 +30);//zhiyu2030System.out.println(a+(20+30));//zhihu50 }自增自減運算符Demo06Operator.java
/*自增運算符:++;自減運算符:--含義:讓一個變量漲一個數(shù)字1,或者讓一個變量降一個數(shù)字1使用格式:寫在變量名稱之前,或者寫在變量名稱之后。例如:++num,也可以num++使用方式:1.單獨使用:不和其他任何操作混合,自己獨立成為一個步驟。2.混合使用:和其他操作混合,例如和賦值混合,或者和打印操作混合,等使用區(qū)別:1.在單獨使用時,前++和后++,沒有任何區(qū)別。 */ public class Demo06Operator {public static void main(String[] args) {int num1 =10;System.out.println(num1);//10++num1;//單獨使用,前++System.out.println(num1);//11num1++;//單獨使用,后++System.out.println(num1);} }總結
以上是生活随笔為你收集整理的第二天学习Java的笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaDay01
- 下一篇: 第三天学习Java的笔记(自增自减,赋值