網(wǎng)站建設(shè)空間步驟詳解搜索引擎優(yōu)化要考慮哪些方面?
Java和C語(yǔ)言有許多類(lèi)似之處,這里就只挑不一樣的點(diǎn)來(lái)說(shuō),所以會(huì)比較雜亂哈~
目錄
1.數(shù)據(jù)類(lèi)型
2.輸入與輸出
2.1三種輸出
2.2輸入
2.3循環(huán)輸入輸出
//猜數(shù)字小游戲
//打印乘法口訣表
3.方法
//交換兩個(gè)數(shù)(數(shù)組的應(yīng)用)
//模擬登陸(比較字符串)
3.1方法重(chong)載
3.2方法簽名?
1.數(shù)據(jù)類(lèi)型
1.基本數(shù)據(jù)類(lèi)型:8種,byte,char,int,long,float,double,boolean
2.引用數(shù)據(jù)類(lèi)型:類(lèi),數(shù)組,接口,string字符串,枚舉類(lèi)型……
與C語(yǔ)言的不同:
循環(huán):while循環(huán)中條件必須為布爾表達(dá)式,所以 while(1) 在C語(yǔ)言中可編譯在Java種不行,但是while(true)可以;當(dāng)循環(huán)沒(méi)有寫(xiě)括號(hào)時(shí),循環(huán)只執(zhí)行與之最近的代碼。
2.輸入與輸出
2.1三種輸出
public static void main(String[] args) {System.out.println("輸出且換行");System.out.print("輸出不換行");System.out.printf("%s\n","格式化輸出");}
2.2輸入
需要導(dǎo)入util包,打出Scanner后Java自動(dòng)提示,回車(chē)后自動(dòng)導(dǎo)入
public static void main(String[] args) {Scanner scan = new Scanner(System.in);//表示從鍵盤(pán)讀入int a = scan.nextInt();//next+類(lèi)型表示將要讀入數(shù)據(jù)的類(lèi)型System.out.println(a);double f = scan.nextDouble();System.out.println(f);scan.nextLine();//把回車(chē)吃走,否則下面的nextline會(huì)讀取回車(chē)String name1 = scan.nextLine();//遇到空格不會(huì)結(jié)束System.out.println(name1);String name2 = scan.next();//遇到空格就結(jié)束,不會(huì)讀取回車(chē)System.out.println(name2);}
2.3循環(huán)輸入輸出
Ctrl+D結(jié)束循環(huán);Ctrl+C終止程序
public static void main(String[] args) {Scanner scan = new Scanner(System.in);while(scan.hasNextInt()){int a=scan.nextInt();int b= scan.nextInt();System.out.println(a+b);}
}
//猜數(shù)字小游戲
public static void main(String[] args) {Scanner scan = new Scanner(System.in);Random random = new Random();int randNum = random.nextInt(100);//[0~100)//int randNUm = random.nextInt(50)+50;//[50~100)60System.out.println("作弊:"+randNum);while(true){int n = scan.nextInt();if(n < randNum){System.out.println("猜小了~");} else if (n > randNum) {System.out.println("猜大了~");}else {System.out.println("猜對(duì)啦");break;}}}
//打印乘法口訣表
public static void main(String[] args) {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {System.out.print(i+"*"+j+"="+i*j+" ");}System.out.println();}
}
3.方法
格式:訪問(wèn)修飾限定符? 返回值類(lèi)型? 方法名 (形式參數(shù)列表){
? ? ? ? ? ?方法體代碼;
? ? ? ? ?? return 返回值;
}
訪問(wèn)修飾限定符:現(xiàn)階段直接使用 public static 固定搭配;
注意:方法等同于C語(yǔ)言中的函數(shù);方法是定義在類(lèi)中的;方法的調(diào)用,每次都會(huì)在棧上開(kāi)辟內(nèi)存;每個(gè)方法都有其獨(dú)立的空間。
//交換兩個(gè)數(shù)(數(shù)組的應(yīng)用)
在C語(yǔ)言中,我們有傳值調(diào)用和傳址調(diào)用,其中只有傳址調(diào)用能夠成功交換。在Java中,我們沒(méi)有指針這一說(shuō)法,也就是我們無(wú)法獲取內(nèi)存中的地址,那該怎么實(shí)現(xiàn)交換呢?
答案:傳引用類(lèi)型參數(shù)例如數(shù)組來(lái)交換。
public static void swap(int[] arr){int tmp = arr[0];arr[0] = arr[1];arr[1] = tmp;
}
public static void main(String[] args) {int[] arr = {1, 2};System.out.println("交換前:"+arr[0]+" "+arr[1]);swap(arr);System.out.println("交換后:"+arr[0]+" "+arr[1]);
}
//模擬登陸(比較字符串)
在C語(yǔ)言中我們肯定都寫(xiě)過(guò)模擬登陸的題目,其中有一環(huán)節(jié):比較輸入密碼和原密碼是否相同。C語(yǔ)言中使用庫(kù)函數(shù)strcmp,Java中使用的是啥呢?
public static void main(String[] args) {Scanner scan = new Scanner(System.in);String password = scan.nextLine();if ( password.equals ("123456") ){System.out.println("密碼正確!");}else {System.out.println("密碼錯(cuò)誤!");}
}
3.1方法重(chong)載
要求:方法名相同;參數(shù)列表不同(個(gè)數(shù),類(lèi)型,順序);與返回值類(lèi)型無(wú)關(guān)。
優(yōu)點(diǎn):取名字很方便,例如求整型和與求浮點(diǎn)型和的函數(shù)名可以都為sum且不會(huì)報(bào)錯(cuò)(見(jiàn)下)。
public static int sum(int a,int b){return a+b;
}
public static double sum(double a,double b){return a+b;
}
3.2方法簽名?
定義:方法全路徑名+參數(shù)列表+返回值類(lèi)型?
例如:int add (int, int) 真正的名字:extend01/TestMethod.add(II)I
? ? ? ? ? double add(double, double) 真正的名字:extend01/TestMethod.add(DD)D
查看:先對(duì)工程進(jìn)行編譯生成.class 字節(jié)碼文件;在文件中進(jìn)入要查看的.class所在的目? ? ? ? ? ? ? ?錄(在out文件目錄下啟動(dòng)cmd);輸入 javap -v 字節(jié)碼文件名即可。
?方法簽名中一些特殊符號(hào)的含義:
V:void? ? ?Z:boolean? ? ?B:byte? ? ?C:char?? ? S:short? ?? I:int? ? ?J:long? ? ?F:float? ? ?D:double? ? ? [:數(shù)組,以 [ 開(kāi)頭,配合其他的特殊字符,表述相應(yīng)類(lèi)型數(shù)據(jù)的數(shù)組,幾個(gè) [ 表示幾維數(shù)組L: 引用類(lèi)型,以L開(kāi)頭 ; 結(jié)尾,中間是引用類(lèi)型的全類(lèi)名