Java學(xué)習(xí)的第一周很快過去,課程從Java的運行環(huán)境和對應(yīng)軟件用法開始,到現(xiàn)在已經(jīng)講到算法一章的遞歸函數(shù),隨著課程的深入,以前不扎實的基礎(chǔ)也有了明顯的進步。
那么分小結(jié)回顧一下之前一周的內(nèi)容
Java基礎(chǔ)知識
** 1.Java運行環(huán)境**
- JDK 和 JER的安裝
- windows有很多環(huán)境變量,路徑去path方面找
Java語法基礎(chǔ)
1. 注釋
- //注釋只能打一行
- /注釋可以打很多行/
** 2. 方法和語句**
- 類里面包含多個方法
- i.方法包括方法
public int sum(int a,int b){}
修飾符 方法聲明 方法體
- ii.void不需要返回值,int需要return,返回類型和聲明的一致
** 3. 標識符** - 不能用關(guān)鍵詞,第一個字母是字母或者_或者$,后面的字符可以是任何字符或者數(shù)字
標識符大小寫敏感,命名規(guī)范——駝峰命名法 - i.多個單詞直接連接在一起,中間不用下劃線或者橫杠等
- ii.類名每個單詞首字母大寫
- iii.變量名和方法名第一個字母小寫,還是使用駝峰命名法
- 盡量讓名字直觀易懂
比如BodyMassIndexCalculator
** 4. 數(shù)據(jù)**
- 變量需要先定義才能使用
- 常量定義后就不能再改變
final int ss=45;
** 5. 數(shù)據(jù)類型**
- 基本數(shù)據(jù)類型有8種(基礎(chǔ)類型沒有方法,屬性)
byte short int long char float double boolean
8 16 32 64 16 32 64 1bit used in 32 bit integer
八種基礎(chǔ)數(shù)據(jù)類型可以轉(zhuǎn)換為對應(yīng)的類,轉(zhuǎn)換后可以有方法
Integer--int Byte--byte
Short--short Long--long
Double--doubule Float--float
Boolean--boolean Character--char
數(shù)據(jù)類型裝換
- 數(shù)字之間,低精度到高精度可以自動轉(zhuǎn)換
- 從高精度到低精度不能自動轉(zhuǎn)換 age=(int)shenGao可以強制轉(zhuǎn)換
** 6. 屬性**
System.out.println
類 屬性 方法
方法里面變量為局部,最外面的變量為全局變量
運算符
- 數(shù)字運算符 比較運算符 邏輯運算符
** 1. 邏輯運算符%**
% < >&& || & |
** 2. 程序的三種執(zhí)行方式**
- 順序執(zhí)行
- 分支執(zhí)行
- i. if ;else if ;else
- ii.switch
- 循環(huán)執(zhí)行
- i. for
- ii.while
** 3. 循環(huán)**
- for(int i=1;i<=100;i=i+1){}
- while(條件){}//先判斷再做
- do{}while() //先做再判斷
字符串
** 1. 字符串的拼接**
字符串的拼接基本方法有兩個:
- 使用 + 號,如
- 使用 .concat
- 但如果要運用大量字符串的拼接就要考慮性能
可以考慮使用
StringBuffer,Stringbuilder
** 2. String的大量拼接**
- StringBuffer
這是一個特殊的string類,它將string封裝起來,從頭到尾只有一個string在運行
StringBuffer sb=new StringBuffer("0");
for(int i=1;i<10000;i++){
sb.append(i);
}
- Stringbuilder
StringBuilder sbuilder=new StringBuilder("0");
for(int i=1;i<10000;i++){
sbuilder.append(i);
}
- Stringbuffer和Stringbuilder在拼接過程中使用同一個對象,所以效率高(append方法)
- StringBuffer是線程安全的,會防止多個線程同時訪問String,它增加了額外的防護,
** 3. String的查找和替換**
1.查找 System.out.println(str1.indexOf("are"))
2.替換 String str2 =str1.replace('H','h');
String str3 =str1.replace("you","me");
3)更加復(fù)雜的查找和替換將會用到 正則表達式Regex
數(shù)組
** 1. 數(shù)組的概念,聲明和創(chuàng)建**
int[]nums={4,5,3,5};
String[] names=new String[10];
String[] names=new String[10];
- 直接用System.out.println(names)打印出來的是類名@地址
** 2. 數(shù)組的訪問和遍歷**
- nums[]
- 注意數(shù)組下標越界問題,會顯示以下異常
java.lang.ArrayIndexOutOfBoundsException
** 3. For Each語句**
int[]nums={4,5,3,5};
for(int num:nums){
System.out.println(num);
}
這種方式只能運用在數(shù)組,list等集合數(shù)據(jù)結(jié)構(gòu)上,結(jié)構(gòu)簡介但沒有原先的for循環(huán)靈活
Arrays.sort()可以排序數(shù)組,如果是字符串會按字母順序,如果是數(shù)組會按大小順序
** 4. 二維數(shù)組**
int [][] nums ={{2,3,4},{3,2},{9}};
String [][] names= new String[][]{{"tom","jack"},{"Alice","John"},{"Kate","Lily"}};
String [][] names2=new String[4][3];
names[a][b] a為行,b為類
算法
1.算法概念
- 算法簡單來說是解決問題的思路和步奏,對程序員至關(guān)重要
- 算法是獨立于編程語言的
** 2. 遞歸**
- 遞歸算法概念 -recursion
- 遞 是傳遞給自己,自己調(diào)用自己
- 歸 是退出條件,在某些條件符合的時候,停止調(diào)用自己,如果沒有退出條件會出現(xiàn)死循環(huán),程序上會出現(xiàn)
java.lang.StackOverflowError
圖解
