一、第一行Java代碼
package com.hello.main; public class Main { public static void main(String[] args) { System.out.println("Hello Word"); } }
package:包,你可以理解為書包,錢包,女朋友的小包。在java中用包來存放不同的代碼。為啥要有這個東東?想一想,你上學的時候,書包是干啥的,用來放書的,女朋友的小包包用來干啥的,放手機化妝品的。java中的package就是用來放java源碼文件的。如果你不理的話,請想一想書包的作用。
public:公共的公開的,在java中表示訪問修飾符。啥叫訪問修飾符?在生活中隨處可見,家里的沒有油了,你對象讓你去買油,超市距離你家2公里左右。你應該不會選擇開11號去,正巧你樓下就有共享單車,你打開了一輛。騎着車來到超市,買完東西出來法發現車沒了,被別人騎走了。為啥?這輛車不是你的,他的所有權不是你,大家都可以用,是公共的。而你可以打開另外一輛騎着回家。這就叫public。java中使用訪問修飾符表示這個類或者方法屬性等的可訪問權限。
class:類,不要多想、這就是現實中最簡單的東西。物以類聚,人以群分。你可以想一下小學的練習題,下面哪種物體不屬於動物,A、哈士奇,B、老虎、C、貓、D、香蕉。你會選擇哪個?為啥?
static:靜態,動與靜,陰與陽。自古以來,都講究一個平衡。JAVA中也是,靜態表示這個方法不能被實例化也就是不能被動態的對象訪問,可以這么理解,吃飯這件事只有你本人去吃飯才能吃飽,你讓別人去吃飯,結果是別人吃飽了,你自己卻挨餓。
void:空,出家人講究四大皆空,空即是色,色即是空。空空如也,啥都沒有。你可以理解為干凈,C#、JAVA中使用void關鍵字表示一個方法沒有任何返回值。說明這個方法執行之后很干凈。
System.out.println():系統的輸出方法。以后深入說說這個方法。
二、Java中的注釋
1、文檔注釋:/***/,該注釋用來生成文檔,用來說明這個類、方法是用來干啥的,是由誰開發的。現實中就是說明書
2、單行注釋://,表示的是單行注釋,每次注釋一行,用來簡要的說明某個被調用的方法或者代碼塊的作用,翻譯文言文的時候,某個文言文字的白話文,就是行注釋
3、塊注釋:/**/,表示多行注釋,快速注釋掉多行代碼。這里會掉下一個餡餅。
package com.hello.main; /** * * @author chen * @des 這里是程序的主入口main方法 */ public class Main { /* * 這里是多行注釋 * * */ public static void main(String[] args) { // 輸出內容 System.out.println("Hello Word"); } }
三、JAVA中的數據類型
數據類型,你可以理解為不同大小的盒子,Java中為啥要有這個東西?試想一下,生活中沒有了熟料袋,盒子等容器,生活會怎么樣?Java中使用不同的數據類型來裝不同內容的數據。
數字類型:
1、byte字節,大小為1,可以理解小雞啄米,每次啄一粒稻米。范圍-127~128
2、short短整型,大小為2個字節,相當於一個勺子的容量。范圍,-32768~32767
3、int整型,大小為4個字節,相當於一個碗,范圍-2147483648~2147483647,
4、long長整型,大小為8個字節,相當於一口郭,范圍-9223372036854775808~9223372036854775807,要以L或者l結尾;
記憶方法:你在家的小院子吃着飯,旁邊有個小雞正在啄你掉在地上的飯粒(byte),你瘋狂的用勺子(short)將碗(int)里的肉向嘴里送,米粒都粘到臉上了,左邊一個右邊一個,媽媽看到你都笑了,慈祥的說,別急鍋里(long)還有。
浮點型:
1、float,4個字節,相當於裝蜂蜜的罐子,有效位數6-7位。以F或者f結尾
2、double,8個字節,相當於油桶,有效位數15位。以D或者d結尾,
float和double表示的都是小數,區別就是小數點后能保留多少位。
記憶方法:想象下油桶和蜂蜜的罐子,將油和蜂蜜倒出來,哪個殘留的多。
字符型:
1、char類型,表示一個字符,大小為2個字節,表示一個Unicode編碼。比如存放A
布爾類型:
1、boolean:布爾類型,真或者假,一般你媳婦問你藏私房錢了嗎,這答案都是布爾類型。
字符串不是基本的數據類型
常見的面試題:
1、請說出JAVA中基本的數據類型,分別介紹一下使用規則。
/** * 數據類型 */ public static void dataType() { //數值型 byte b =1; short s =10; int i =100; long l =100L; //浮點型 float f =12.1235f; double d =123.123423d; //字符型 char c ='A'; // 布爾型 boolean bl=true; }
四、變量
聲明變量:其實就是准備一些不同容量的盒子來裝東西。比如,int a;char c等等;變量也就是值不定,現實中就是一個容器裝不同的東西,比如你吃完的薯片盒子,或許你會用來充當筆筒。此時容器的內容改變了。
初始化變量:盒子有了,但是沒裝東西,當你用這些盒子的時候發現盒子都是空的,所以盒子定義了,就要把東西放進去,java不允許你是用聲明但是沒賦值的變量。想象一下你買的薯片,打開以后發現是空的。一般不會這樣,你買回來的肯定是裝滿薯片的。
五、常量
常量:不可變化的量,就是容器中裝過內容以后就不再發生變化了,比如水晶瓶,出廠之前填充水和其他物件以后,你就不能再更換里面的內容(現實中為理想狀態),JAVA使用final關鍵字來修飾不可變的量。
final:最終的,不可變化的,也就是說你隨你父親的姓。有坑,后面詳談。
六、運算符
小學都學過,+、-、×、÷、%求余數
注意:就像數學中一樣,整數無法除0,JAVA中整數除0得到的是一個異常,浮點數除0得到的是無窮大或者NaN(Not-a-Number);
/** * 四則運算 */ public static void Math() { int a =10; int b =2; System.out.println(a/b); System.out.println(a%b); System.out.println(a*b); System.out.println(a-b); System.out.println(a+b); }
七、類型轉換
1、大類型轉小類型,必須強制進行,你遇到了一座金山,但是你卻只有一個很小的口袋,你只能裝一部分將其余的丟掉,JAVA中范圍大的類型轉為小的類型將丟失精度。
2、小類型轉大類型,自動轉換,將蜂蜜裝到油桶中去,進行四則運算的時候,java會將兩邊的操作數進行處理,只要類型不同,且有一方為大類型,則先將數據都轉成大類型然后進行運算,所以結果也是大類型。
/** * 類型轉換 */ public static void changeType() { //自動類型轉換 byte b =10; int a =b; // 強制類型轉換,精度丟失 short s =(short) a; }
八、賦值運算符
等號在計算機的世界不叫等號,而稱為賦值運算符,就是將右邊的運算結果賦值給左邊的變量,現實中,制作蛋糕,將雞蛋和面粉混合,然后放入蛋糕模具中。例如:int a=10;a=a+3.4將拋出異常,從類型轉換可以知道為啥。
簡寫形式:int a =10; a+=2.3;不拋出異常,為啥?因為該句實際上是這樣的a=(int)(a+2.3);
自增和自減:++a,a++,表示自增,實際就是a=a+1;同理--a,a--;就是自減,也就是a=a-1;
區別:如果單獨一條自增,自減語句,毫無區別。但在嵌套運算中就有區別了。
加加,減減在前,先進行自增自減元素,在參與運算,
加加,減減在后,先參與運算,在進行自增和自減法運算
面試題:
1、請計算出下面的結果。
int a =b=c=10;
a=++b;
c=a--;
b=++a+c--;
2、int a =10;a+=1.0; a=a+10.0;請說出a的值;
九、關系運算符與邏輯運算符
關系運算符,通俗的講就是比較,俗話說沒有比較就沒有傷害。現實中每天我們都在進行比較,購物的時候,選對象的時候等等,JAVA中提供了六種比較方式。
1、== :常用來比較值是否相等,比較值是否相等。只能用於值類型的比較。
2、!=:判斷兩個值不想等,如3 != 9;
3、<、>、<=、>=和數學中的比較一致。
邏輯運算符:滿足一定的條件才能執行一定的操作。
&&:並且,可以理解為同時滿足兩個條件,比如,通過手機上網,需同時滿足,手機聯網,並且手機無損壞。
||:或,當滿足兩個條件中的任意一個條件就返回true,比如,通過手機上網,當沒有4G的時候可以通過WIFI上網,沒有WIFI的時候可以通過4G上網。
! :非,不滿足條件的時候返回true。比如,在沒網絡的情況下通過手機玩網游,一定玩不了。
特點:邏輯運算符有短路的效果。
1、&&,當第一個條件為假則不在進行第二個條件的判斷。直接返回false
2、||,當第一個條件為真的時候,則不在對第二個條件進行運算,直接返回true。
public static void boolType() { int a=10,b=11; System.out.println(a>9&&b<12); //true System.out.println(a<10||b>10); // true System.out.println(!(a>0));// false }
三元運算符:x<y?x:y,是真的嗎?真的我就喜歡你,假的我就討厭你。
&與、|或、~非、和邏輯運算符類似,區別就是沒有短路效果。一定會計算兩個值得結果。
特點:一個數操作兩次結果是他本身。如12&12&13 結果為12