
跟日記本一起學(xué)JAVA相信你可以的加油~本課闖關(guān)內(nèi)容1.照貓畫虎0/62.熟悉基礎(chǔ)知識(0/6)基礎(chǔ)知識1數(shù)據(jù)的自動類型提升1.兩個變量之間相互賦值。自動類型提升規(guī)則如下:(1)byte - short -int -long - float - double小數(shù)據(jù)類型的變量可以直接賦值為大數(shù)據(jù)類型的變量就自動提升為大數(shù)據(jù)類型:(2)char - int -long -float-double解析下面的byte s 23;int C s;s的類型是byte把s賦給int的C解析下面的char cs A;int is cs;cs的類型是char把cs賦給int的is2.強(qiáng)制類型轉(zhuǎn)換:(1).大數(shù)據(jù)類型的變量賦值給小數(shù)據(jù)類型需要用到強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換問語法目標(biāo)類型空格變量名 (目標(biāo)類型)源數(shù)據(jù)類型的變量名;例如double d 12.5;int i (int)d;System.out.println(i);注意這里由小數(shù)換為整數(shù)不會四舍五入而是直接顯示的是12好啦這就是之后要講的“后果”了。2強(qiáng)制轉(zhuǎn)換的結(jié)果1.整數(shù)類型的變量中的數(shù)據(jù)合理數(shù)據(jù)強(qiáng)轉(zhuǎn)結(jié)果完整例如int i 15;byte b (byte) i ; //結(jié)果打印152.整數(shù)類型的變量中的數(shù)據(jù)不合理數(shù)據(jù)強(qiáng)轉(zhuǎn)結(jié)果截斷例如 int i 257;byte b (byte)i; //結(jié)果13.小數(shù)據(jù)類型變量強(qiáng)制轉(zhuǎn)換為整數(shù)類型直接截斷取整數(shù)部分例如double d 12.9;int i (int)d ; //結(jié)果12注意 boolean 類型的變量不能參與數(shù)據(jù)類型的提升。解析下面的double d 23.7;//源類型int x (int)d;//目標(biāo)類型int -強(qiáng)制類型轉(zhuǎn)換System.out.println(x);//顯示的是23小數(shù)據(jù)類型變量強(qiáng)制轉(zhuǎn)換為整數(shù)類型直接截斷取整數(shù)部分解析下面的int b2 35;//4Bbyte y (byte)b2;//1BSystem.out.println(y);整數(shù)類型的變量中的數(shù)據(jù)合理數(shù)據(jù)強(qiáng)轉(zhuǎn)結(jié)果完整照貓畫虎1代碼package demo; public class Test4{ public static void main(String[]args){ int a 2; int b a; System.out.println(a); System.out.println(b); byte s 23;//存儲1B int C s;//存儲4B,自動類型提升4B1B小類型放到大類型 System.out.println(C); char cs A;//65 int is cs; System.out.println(cs); System.out.println(is); double d 23.7;//源類型 int x (int)d;//目標(biāo)類型int -強(qiáng)制類型轉(zhuǎn)換 System.out.println(x);//顯示的是23 int b2 35;//4B byte y (byte)b2;//1B System.out.println(y); } }基礎(chǔ)知識2這一塊主要是表達(dá)式的運(yùn)算規(guī)則表達(dá)式的概念由變量、運(yùn)算符、字面值等組成一個式子通常會有一個結(jié)果產(chǎn)生。兩變量參與運(yùn)算表達(dá)式的結(jié)果類型規(guī)則如下1.如果參與運(yùn)算的變量有一個為double類型,結(jié)果就是double類型;2.如果參與運(yùn)算的變量沒有double類型有一個為float類型,結(jié)果類型為float3.如果參與運(yùn)算的變量沒有double/float有一個為long類型結(jié)果類型為long4.其余的情況全都是int類型的結(jié)果。例如byte b 1;byte b2 b 1; //編譯報錯違反了兩個變量參與運(yùn)算的提升規(guī)則結(jié)果應(yīng)為int類型這里b2之前的byte應(yīng)該改成int因?yàn)闆]有特殊的類型所以就按int類型。解析下面的int a 3;int b 5;System.out.println(ab);int r ab;System.out.println(r);全都是 int 類型的結(jié)果也為int類型。解析下面的double d 12.6;int x 2;double d2xd;System.out.println(d2);如果參與運(yùn)算的變量有一個為double類型 ,結(jié)果就是double類型;解析下面的byte bs1 1;byte bs2 2;int bs3 bs1bs2;//注意不能存儲在byte中System.out.println(bs3);因?yàn)闆]有特殊的類型所以就按int類型。照貓畫虎2代碼package demo; public class Test5{ public static void main(String[]args){ int a 3; int b 5; System.out.println(ab); int r ab; System.out.println(r); double d 12.6; int x 2; double d2xd; System.out.println(d2); byte bs1 1; byte bs2 2; int bs3 bs1bs2;//注意不能存儲在byte中 System.out.println(bs3); } }基礎(chǔ)知識31.算數(shù)運(yùn)算符加-減*乘/除%取模、取余數(shù)注意如果兩端有一個數(shù)類型為String(字符串類型)則代表字符串的拼接或是連接。2.賦值運(yùn)算符 * - / %注意等綜合運(yùn)算符沒有自動類型提升。練習(xí)①byte b 1;b b1; //編譯不通過結(jié)果類型應(yīng)為int類型②byte b 1;b 1; //編譯通過結(jié)果為2從左往右計算解析int a 5;int b 2;System.out.println(ab);//7System.out.println(a-b);//3System.out.println(a*b);//10System.out.println(a%b);//1System.out.println(a/b);//25除2為2.5因?yàn)槎际钦椭苯咏財嘟Y(jié)果為2System.out.println(a/b*1.0);//2.0從左往右計算5除2為2.5因?yàn)槎际钦椭苯咏財嘟Y(jié)果為2后面又乘1.0有小數(shù)點(diǎn)了是double類型如果參與運(yùn)算的變量有一個為double類型,結(jié)果就是double類型;結(jié)果為2.0知識串起來了~~~~~~啊啊啊啊啊System.out.println(1.0*a/b);//2.5從左往右計算a變成double類型為5.0再除b,結(jié)果為2.5System.out.println((double)a/b);//2.5把a(bǔ)轉(zhuǎn)換成double類型小類型直接轉(zhuǎn)換大類型再去除注意如果兩端有一個數(shù)類型為String(字符串類型)則代表字符串的拼接或是連接。java中的兩種用法1.加法運(yùn)算: 兩端都為 數(shù)據(jù)類型2.字符串的拼接 兩端只要有一段為字符串為字符串的拼接只要“”兩端有一 個數(shù)類型為String(字符串類型)碰上它的都會變成字符串很強(qiáng)大啊解析int a 5;int b 2;String s1 hello;String s2 world;System.out.println(s1s2);System.out.println(s2a);//world5System.out.println(s2true);//worldtrue//System.out.println(atrue);//編譯報錯//System.out.println(atrue);System.out.println(hello35);System.out.println(35hello);System.out.println(hello(35));System.out.println(hellotrue35);//System.out.println(true35hello);//編譯報錯//思考ab7System.out.println(ab(ab));int x 3;int y 5;System.out.println(xy(xy));//xy8System.out.println(xy(xy));//358,但是結(jié)果需要隨著x,y中的數(shù)據(jù)發(fā)生改變?nèi)绻鹸5x9 -5914, 錯誤的寫法“35”8}}從左往右計算數(shù)據(jù)類型會由前面的數(shù)據(jù)類型決定當(dāng)然如果你想不由前面決定可以加括號。就像 System.out.println(hello(35));結(jié)果hello8運(yùn)行結(jié)果helloworldworld5worldtruehello358hellohello8hellotrue35ab7xy88xy編譯報錯的原因一個int類型一個布爾類型這個加號是加法不是拼接重點(diǎn)布爾類型不參與加法運(yùn)算可以參與字符串的拼接System.out.println(atrue);//編譯報錯編譯報錯的原因一樣從左往右看布爾類型不參與加法運(yùn)算System.out.println(true35hello);//編譯報錯照貓畫虎3代碼package demo; public class Test6{ public static void main(String[]args){ int a 5; int b 2; System.out.println(ab);//7 System.out.println(a-b);//3 System.out.println(a*b);//10 System.out.println(a%b);//1 System.out.println(a/b);//2,因?yàn)槎际钦?System.out.println(a/b*1.0);//2.0 System.out.println(1.0*a/b);//2.5 System.out.println((double)a/b);//2.5 /*java中的兩種用法 1.加法運(yùn)算: 兩端都為 數(shù)據(jù)類型 2.字符串的拼接 兩端只要有一段為字符串為字符串的拼接 */ String s1 hello; String s2 world; System.out.println(s1s2); System.out.println(s2a);//world5 System.out.println(s2true);//worldtrue //System.out.println(atrue);//編譯報錯 //System.out.println(atrue); System.out.println(hello35); System.out.println(35hello); System.out.println(hello(35)); System.out.println(hellotrue35); //System.out.println(true35hello);//編譯報錯 //思考ab7 System.out.println(ab(ab)); int x 3; int y 5; System.out.println(xy(xy));//xy8 System.out.println(xy(xy));//358,但是結(jié)果需要隨著x,y中的數(shù)據(jù)發(fā)生改變?nèi)绻鹸5x9 -5914, 錯誤的寫法“35”8 } }基礎(chǔ)知識4關(guān)系運(yùn)算符大于大于等于小于小于等于不等于!如果用關(guān)系運(yùn)算符連接兩個變量用于判斷關(guān)系是否成立關(guān)系成立-true關(guān)系不成立-flase,結(jié)果類型為boolean類型的表達(dá)式稱為布爾表達(dá)式。邏輯運(yùn)算符1. :邏輯與只有當(dāng)兩邊都為true的情況下結(jié)果才為true。有一個為false,結(jié)果就是false;(短路)2.||邏輯或只有兩端有一個為true結(jié)果就是為true同時為false結(jié)果才為false.(短路)3.! :邏輯非對結(jié)果取反。4.與只有當(dāng)兩邊都為true的情況下結(jié)果才為true。(非短路)5.| :或只有兩端有一個為true結(jié)果就是為true同時為false結(jié)果才為false.(非短路)和的區(qū)別相同點(diǎn)與的關(guān)系兩邊布爾表達(dá)式同時為true結(jié)果才為true.不同點(diǎn) :短路運(yùn)算符一旦第一個布爾表達(dá)式的結(jié)果為false后面的布爾表達(dá)式不在運(yùn)算非短路運(yùn)算符不管前面的布爾表達(dá)式是否為false,后面的布爾表達(dá)式必須執(zhí)行。條件運(yùn)算符三元運(yùn)算符、三目運(yùn)算符布爾表達(dá)式?表達(dá)式1:表達(dá)式2執(zhí)行的原理如果布爾表達(dá)式結(jié)果為true,執(zhí)行表達(dá)式1如果為false,執(zhí)行表達(dá)式2。運(yùn)行結(jié)果falsetruefalsetruefalsefalsetruetruefalsetrue及格25不是c語言的1和0照貓畫虎4代碼package demo; public class Test7{ public static void main(String[]args){ int a 3; int b 5; System.out.println(ab);//35,關(guān)系不成立結(jié)果是false System.out.println(b8);//關(guān)系成立結(jié)果是true System.out.println(a3);//false System.out.println(a3);//true,60臨界值 System.out.println(a!3);//false //:邏輯與兩端都為布爾類型或布爾類型的字面值只有當(dāng)兩端都為true,結(jié)果才為true System.out.println(abb8);//f System.out.println(a1b8);//t //||:邏輯或兩端都為布爾類型或布爾類型的字面值只有一端為true,結(jié)果就為true System.out.println(ab||b8);//35||58 System.out.println(ab||b3);//35||53 // !:邏輯非在結(jié)果上取反 System.out.println(!(ab||b3)); double score 78.5; String r score60 ? 及格:不及格; System.out.println(r); int x 35; System.out.println(x50?x10:x-10);//25 } }基礎(chǔ)知識5一元運(yùn)算符自增--自減1a :先使用a原始數(shù)據(jù)作為表達(dá)式的結(jié)果再將a自身加1先使用再加int a 1;int c a ;便于理解也可以寫成int c a ;a a1;結(jié)果都為c 1; a 2;2a先將a的數(shù)據(jù)加1運(yùn)算再使用a中的數(shù)據(jù)作為表達(dá)式的結(jié)果。先加再使用運(yùn)行結(jié)果a5b2c2假如改變代碼變?yōu)閕nt b 1;int cb;//先使用再加1int c 1; bb1;//int c b;//先加1在使用bb12,int c b2System.out.println(bb);System.out.println(cc);結(jié)果為b2c1這就是因?yàn)橄劝裝1給c,c1然后再把b自加1b變?yōu)?照貓畫虎5代碼package demo; public class Test{ public static void main(String[]args){ int a 3; //自身加1 --自身減1 //a/a a--/--a a;//等價于aa1 a; a; a; a--; --a; System.out.println(aa); int b 1; //int cb;//先使用再加1int c 1; bb1; int c b;//先加1在使用bb12,int c b2 System.out.println(bb); System.out.println(cc); } }基礎(chǔ)知識6Scanner掃描儀使用的步驟創(chuàng)建掃描儀創(chuàng)建就寫入這個代碼java.util.Scanner sc new java.util.Scanner(System.in);使用輸入一個整數(shù)int a sc.nextInt();輸入一個小數(shù)double s sc.nextDouble();輸入一個字符串String s sc.next(); // String s sc.nextLine();輸入一個字符char c sc.next().charAt(0);在輸入前你需要給輸入者一個提示System.out.println(請輸入一個XX);練習(xí)定義兩個int類型的變量x,y,利用Scanner輸入數(shù)據(jù)計算xy的結(jié)果并格式化打印代碼System.out.println(請輸入兩個整數(shù));int x sc.nextInt();int y sc.nextInt();System.out.println(xy(xy));照貓畫虎6代碼package demo; import java.util.Scanner;//1.導(dǎo)入包 public class Test9{ public static void main(String[]args){ int a 7; System.out.println(aa); //2.創(chuàng)建Scanner對象 Scanner sc new Scanner(System.in); System.out.println(請輸入一個整數(shù)); int n sc.nextInt(); System.out.println(nn); System.out.println(輸入一個小數(shù)); double d sc.nextDouble(); System.out.println(dd); System.out.println(輸入一個字符串); String str sc.next(); System.out.println(strstr); System.out.println(輸入一個字符); char cs sc.next().charAt(0); System.out.println(cscs); /*定義兩個int類型的變量x,y,利用Scanner輸入數(shù)據(jù)計算xy的結(jié)果并格式化打印 例如 x5 y9,輸出 5914 x2 y7,輸出 279 */ System.out.println(請輸入兩個整數(shù)); int x sc.nextInt(); int y sc.nextInt(); System.out.println(xy(xy)); } }跟我一步步學(xué)慢慢走踏實(shí)學(xué)。未完待續(xù)。。。