斷更了一個多月,閱讀量立馬從100+跌落至10-,雖說不是很看重這個,畢竟只是當這個是自己的學習筆記,但有人看,有人評論,有人認同和批評的感覺還是很巴適的,尤其以前有過卻又被剝奪的,慘兮兮的。 好好寫吧。 現在開展的“業務”,一個是PHP,一個是Android開發。 前者偏向於三個方向,總結之前的(
斷更了一個多月,閱讀量立馬從100+跌落至10-,雖說不是很看重這個,畢竟只是當這個是自己的學習筆記,但有人看,有人評論,有人認同和批評的感覺還是很巴適的,尤其以前有過卻又被剝奪的,慘兮兮的。
好好寫吧。
現在開展的“業務”,一個是PHP,一個是Android開發。
前者偏向於三個方向,總結之前的(看書,敲代碼實現),電商網站的開發,一些技能的實現;
後者起步階段,一邊Java學習,一邊動手做東西出來,爭取一周內有個交代吧先。
今天還比較坑一點,把昨天弄的卸載了,AS中的虛擬界面用不了,用哥們兒推薦的Genymotion吧,起碼有人帶,這點就比PHP好(淚奔
時間安排永遠是個問題,只好開源節流唄,加油!
1、Java入門(二)
二、常量和變數
2.1 Java中的關鍵字
Java 語言中有一些具有特殊用途的詞被稱為關鍵字。關鍵字對 Java 的編譯器有著特殊的意義,在程式中應用時一定要慎重哦!!
Java 中常用關鍵字:
問:這麼多,記不住啊。。。。。。-_-||
答:現在不需要你記住所有,混個眼熟即可,在學習的過程中,你會逐步找到感覺並記住他們
對了,差點忘了大事,Java 關鍵字是區分大小寫的哦!所以 void 是關鍵字,但 Void 就不是了~~
PS:我在AS中可以關掉了大小寫的敏感性,其實我不推薦(個人感覺而已
2.2 認識Java標識符
問:標識符是神馬?
答:標識符就是用於給 Java 程式中變數、類、方法等命名的符號。
使用標識符時,需要遵守幾條規則:
1. 標識符可以由字母、數字、下劃線(_)、美元符($)組成,但不能包含 @、%、空格等其它特殊字元,不能以數字開頭。譬如:123name 就是不合法滴
2. 標識符不能是 Java 關鍵字和保留字( Java 預留的關鍵字,以後的升級版本中有可能作為關鍵字),但可以包含關鍵字和保留字。如:不可以使用 void 作為標識符,但是 Myvoid 可以
3. 標識符是嚴格區分大小寫的。 所以涅,一定要分清楚 imooc 和 IMooc 是兩個不同的標識符哦!
4. 標識符的命名最好能反映出其作用,做到見名知意。
2.3 變數是什麼
簡單的說,我們可以把變數看作是個盒子,可以將鑰匙、手機、飲料等物品存放在這個盒子中,也可以在需要的時候換成我們想存放的新物品。
在 Java 中,我們通過三個元素描述變數:變數類型、變數名以及變數值。
如果我們把變數比作是酒店的房間,要存儲的數據就好比要住宿的客人,我們可以根據客人的要求安排其入住“標準間”或者是“總統套房”,並且可以根據房間名字快速查找到入住客人的信息。同理,在 Java 程式中,我們也可以根據所需要保存的數據的格式,將其保存在指定類型的變數空間中,並且通過變數名快速定位!
例如,我們定義了一個變數 love ,用來保存一個字元串 “imooc” , 在程式中只要找到了 love 這個變數,就能找到存儲在裡面的 ”imooc”!當然,我們也可以把 love 裡面的值更換成新的字元串 “i love imooc” !
運行結果:
各位小伙伴們一定要註意哦: Java 中的標點符號是英文的。譬如語句結束的分號,是英文符號的分號,千萬表寫成中文滴哦~~
2.4 如何命名Java變數
如同酒店會給每個房間起個性化的名字一樣,程式中的變數也需要用合理的名字進行管理---變數名!
需要註意,給酒店房間起名字時可以是數字,如“802”,也可以是有趣的名字,如“牡丹”、“美國總統”、“水簾洞”等,但在給變數起名字時,必須符合一定的規則,如下所示:
以下變數的命名都是符合規範的:
但請看下麵的代碼,你懂得哈:
優秀攻城師的習慣:
1、變數名由多單片語成時,第一個單詞的首字母小寫,其後單詞的首字母大寫,俗稱駱駝式命名法(也稱駝峰命名法),如 myAge
2、變數命名時,儘量簡短且能清楚的表達變數的作用,做到見名知意。如:定義變數名 stuName 保存“學生姓名”信息
PS: Java 變數名的長度沒有限制,但 Java 語言是區分大小寫的,所以 price 和 Price 是兩個完全不同的變數哦!
2.5 Java中的數據類型
通常情況下,為了方便物品的存儲,我們會規定每個盒子可以存放的物品種類,就好比在“放臭襪子的盒子”里我們是不會放“麵包”的!同理,變數的存儲也講究“分門別類”!
Java 語言是一種強類型語言。通俗點說就是,在 Java 中存儲的數據都是有類型的,而且必須在編譯時就確定其類型。 Java 中有兩類數據類型:
在 Java 的領域里,基本數據類型變數存的是數據本身,而引用類型變數存的是保存數據的空間地址。說白了,基本數據類型變數里存儲的是直接放在抽屜里的東西,而引用數據類型變數里存儲的是這個抽屜的鑰匙,鑰匙和抽屜一一對應。
常用的基本數據類型有:
你可能已經註意到了:
舉個例子
public class HelloWorld{
public static void main(String[] args) {
String name="愛慕課";
char sex='男';
int num=18;
double price=120.5;
boolean isOK=true;
System.out.println(name);
System.out.println(sex);
System.out.println(num);
System.out.println(price);
System.out.println(isOK);
}
}
2.6 Java中變數的使用規則
不得不接受的變數小脾氣:
1、Java 中的變數需要先聲明後使用
2、變數使用時,可以聲明變數的同時進行初始化
也可以先聲明後賦值
3、變數中每次只能賦一個值,但可以修改多次
4、main 方法中定義的變數必須先賦值,然後才能輸出
5、雖然語法中沒有提示錯誤,但在實際開發中,變數名不建議使用中文,容易產生安全隱患,譬如後期跨平臺操作時出現亂碼等等
關於 String :表示變數中存儲的數據的類型為字元串,後面小節中會詳細講到,小小期待吧~~
2.7 Java中的自動類型轉換
在 Java 程式中,不同的基本數據類型的數據之間經常需要進行相互轉換。例如:
代碼中 int 型變數 score1 可以直接為 double 型變數 score2 完成賦值操作,運行結果為: 82.0
這種轉換稱為自動類型轉換。
當然自動類型轉換是需要滿足特定的條件的:
1. 目標類型能與源類型相容,如 double 型相容 int 型,但是 char 型不能相容 int 型
2. 目標類型大於源類型,如 double 類型長度為 8 位元組, int 類型為 4 位元組,因此 double 類型的變數里直接可以存放 int 類型的數據,但反過來就不可以了
2.8 Java中的強制類型轉換
相信小伙伴們也發現了,儘管自動類型轉換是很方便的,但並不能滿足所有的編程需要。
例如,當程式中需要將 double 型變數的值賦給一個 int 型變數,該如何實現呢?
顯然,這種轉換是不會自動進行的!因為 int 型的存儲範圍比 double 型的小。此時就需要通過強制類型轉換來實現了。
語法:( 數據類型 ) 數值
運行結果:
可以看到,通過強制類型轉換將 75.8 賦值給 int 型變數後,結果為 75,數值上並未進行四捨五入,而是直接將小數位截斷。
明白了吧,強制類型轉換可能會造成數據的丟失哦,小伙伴們在應用時一定要慎重哦!
2.9 Java常量的應用
所謂常量,我們可以理解為是一種特殊的變數,它的值被設定後,在程式運行過程中不允許改變。
語法:final 常量名 = 值;
程式中使用常量可以提高代碼的可維護性。例如,在項目開發時,我們需要指定用戶的性別,此時可以定義一個常量 SEX,賦值為 "男",在需要指定用戶性別的地方直接調用此常量即可,避免了由於用戶的不規範賦值導致程式出錯的情況。
伙計們註意啦:常量名一般使用大寫字元
2.10 如何在Java中使用註釋
在編寫程式時,經常需要添加一些註釋,用以描述某段代碼的作用。
一般來說,對於一份規範的程式源代碼而言,註釋應該占到源代碼的 1/3 以上。因此,註釋是程式源代碼的重要組成部分,一定要加以重視哦!
Java 中註釋有三種類型:單行註釋、多行註釋、文檔註釋
運行結果: Hello Imooc!
看:被註釋的代碼塊在程式運行時是不會被執行的~~
我們可以通過 javadoc 命令從文檔註釋中提取內容,生成程式的 API 幫助文檔。
打開首頁,查看下生成的 API 文檔
PS:使用文檔註釋時還可以使用 javadoc 標記,生成更詳細的文檔信息:
@author 標明開發該類模塊的作者
@version 標明該類模塊的版本
@see 參考轉向,也就是相關主題
@param 對方法中某參數的說明
@return 對方法返回值的說明
@exception 對方法可能拋出的異常進行說明
三、運算符相關
3.1 算術運算符
public class HelloWorld{
public static void main(String[] args) {
int age1=24;
int age2=18;
int age3=36;
int age4=27;
int sum=age1+age2+age3+age4;
double avg=sum/4;
int minus=age1-age2;
int newAge=--age1;
System.out.println("年齡總和:"+sum);
System.out.println("平均年齡:"+avg);
System.out.println("年齡差值:"+minus);
System.out.println("自減後的年齡:"+newAge);
} }
註意自加自減的兩種寫法的區別就好。
3.2 比較運算符
public class HelloWorld{
public static void main(String[] args) {
int a=16;
double b=9.5;
String str1="hello";
String str2="imooc";
System.out.println("a等於b:" + (a== b));
System.out.println("a大於b:" + (a > b));
System.out.println("a小於等於b:" + (a<= b));
System.out.println("str1等於str2:" + (str1==str2));
}
}
輸出為
a等於b:false a大於b:true a小於等於b:false str1等於str2:false
總之就是返回boolean,還有==。。。。。。
3.3 Java中的條件運算符
條件運算符( ? : )也稱為 “三元運算符”。
語法形式:布爾表達式 ? 表達式1 :表達式2
運算過程:如果布爾表達式的值為 true ,則返回 表達式1 的值,否則返回 表達式2 的值
例如:
因為,表達式 8>5 的值為 true ,所以,返回: 8大於5
public class HelloWorld{
public static void main(String[] args) {
int score=68;
String mark =(score>=60)?"及格":"不及格";
System.out.println("考試成績如何:"+mark);
}
}
其他的都比較基礎,就不詳述了。
關於優先順序,記住一點就好:()最高
ps: 表達式( 11+ 3* 8 ) / 4 % 3 的結果是()——2
四、關於迴圈
掌握下麵的例子
public class HelloWorld {
public static void main(String[] args) {
System.out.println("列印直角三角形");
// 外層迴圈控制行數
for (int i = 1;i<=3;i++ ) {
// 內層迴圈控制每行的*號數
// 內層迴圈變數的最大值和外層迴圈變數的值相等
for (int j = 1; j<=i;j++ ) {
System.out.print("*");
}
// 每列印完一行後進行換行
System.out.println();
}
}
}
然後是關於for,判斷數字的位數
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
for(int i=0;i<10;i++){
int test=10^i;
if(num%test==0){
break;
}
count=count+1;
}
System.out.println("它是個"+count+"位的數!");
} }