你之因此能優於別人,正是由於你堅持了別人所不能堅持的。
本文相關代碼在個人Github,歡迎Star~
https://github.com/zhangzhibo1014/DaBoJava
俗話說 「工欲善其事,必先利其器」 ,做爲 Java
開發人員,不只要學習更多的技術棧,並且要時常回顧 Java
的基礎。 Java
基礎掌握的牢固,後續的開發也會變得相對 easy
!下面一文講述的是Java基礎語法,對於剛入門的小白也很是適合哦!java
標識符: 如同人的姓名同樣,在計算機程序中爲常量,變量,類,方法等進行命名。git
命名規則:程序員
PSgithub
起名字的目的是爲了讓人們記住,因此最好作到(見名知意)。編程
1.包名 - 全小寫,多級中間用[.]分割,通常爲域名的倒敘 example: top.zhangzhibo 2.類名/接口名 - 開頭字母大寫,多個單詞每一個單詞首字母都大寫 example: HelloWorld Student 3.方法名/變量 - 開頭字母小寫,多個單詞從第二個單詞開始首字母大寫 example: display() setAge() getAge() name firstName 4.常量 - 每一個字母都大寫,多個單詞之間用下劃線(_)分隔 example: SCORE MAX_AGE 5.項目名 - 每一個字母都小寫,多個單詞之間用(-)分隔 example: demo java-demo
儘可能採用駝峯式的命名方式數組
example: 蘋果 apple / 筆記本 noteBook
關鍵字: 被 Java
語言賦予了特殊含義,用做專門用途的字符串。微信
example: int,long,double
abstract | assert | boolean | break | byte | case | catch |
---|---|---|---|---|---|---|
char | class | continue | const | default | do | double |
else | extends | enum | final | finally | float | for |
goto | if | implements | import | instanceof | int | interface |
long | native | new | package | private | protected | public |
return | short | static | synchronized | super | strictfp | this |
throw | throws | transient | try | void | volatile | while |
註釋是用來對當前編寫的代碼進行解釋,方便後續人員的維護。所以,咱們在編寫代碼的時候必定要書寫註釋,養成良好的編程習慣數據結構
Java中的註釋有三種 1.單行註釋 // 我是註釋的內容 2.多行註釋 /* 你好呀! 我是註釋。 */ 3.文檔註釋,可使用javadoc生成文檔 /** * 我是文檔註釋。 */
注意app
Java是強類型語言,對於每一種數據都須要定義明確的數據類型函數
Java
中數據類型分爲基本數據類型和引用數據類型。
基本數據類型分爲數值型(整型、浮點型)、字符型、布爾型,共8種. byte、short、char、int、long、float、double、boolean
引用數據類型:類、數組、接口等(此處不過多介紹,後續會詳細說明)
整型:用於表示沒有小數部分的數值,它容許爲負數。
類型 | 存儲空間 | 取值範圍 | 默認值 |
---|---|---|---|
byte | 1個字節 | -128 ~ 127 | 0 |
short | 2個字節 | -32768 ~ 32767 | 0 |
int | 4個字節 | -2147483648 ~ 2147483647 | 0 |
long | 8個字節 | -9223372036854775808 ~ 9223372036854775807 | 0 |
註釋
int爲整型的默認類型. 在聲明long類型變量時,須要數字末尾加上L/l. example: long l1 = 100L;
浮點型:用於表示有小數部分的數值
類型 | 存儲空間 | 取值範圍 | 默認值 |
---|---|---|---|
float | 4個字節 | 大約 ± 3.40282347E+38F(有效位數6 ~ 7位) | 0.0 |
double | 8個字節 | 大約 ± 1.79769313486231570E+308(有效位數爲15位) | 0.0 |
轉義字符: 是Java中一種特殊的字符常量,轉義字符以(\)開頭後面接1個或多個字符。
\t - 製表符,等同於TAB鍵 \n - 換行符 \\ - 表示\ \" - 表示" \' - 表示' \0 - 表示空白字符
註釋
double爲浮點型的默認類型. 在聲明float變量時,需在數字末尾加上F/f. example: float f1 = 10.2F; 浮點數值採用二進制系統表示,沒法精確的表示1/10等,如不容許有偏差,請參照BigDecimal類.
字符型:char
char: 字符型。佔2個字節,默認值:'\u0000' 不建議在程序中使用char類型。
布爾型:boolean
boolean:布爾型。佔1個字節,只有true和false兩種取值。默認值:false 整型和布爾型之間不能夠相互轉換
自動類型轉換:精度小的數據類型到精度大的數據類型爲自動類型轉換
圖中實線箭頭表示無信息丟失的轉換 圖中虛線箭頭表示可能有精度損失的轉換 當兩個數值在進行二元計算時: 兩個操做數中有一個是double類型,另外一個操做數就會轉爲double類型 兩個操做數中有一個是float類型,另外一個操做數就會轉爲float類型 兩個操做數中有一個是long類型,另外一個操做數就會轉爲long類型 其他狀況,都轉爲int類型計算
註釋
char <-> int 字符型可與整型互相轉換 boolean不參與自動類型轉換 不能把對象類型轉爲不相關類的對象 轉換過程當中可能出現精度損失,浮點數到整數經過捨棄小數獲得,而不是四捨五入
強制類型轉換:把容量大的類型轉爲容量小的類型
1).轉換的類型必須是兼容的 2).不建議強制類型轉換,由於會損失精度 3).從浮點型強制轉爲整型,會截斷小數部分,僅保留整數部分(不是四捨五入) double x = 9.97; int nx = (int)x; // nx = 9
算數運算符
+(正號)、-(負號) +(加)、-(減)、*(乘)、/(除)、%(取餘) ++(自增)、--(自減)、+(鏈接符,用於鏈接兩個字符串) % :最後的符號和被模數同樣。example: a % b = ? 最後的符號和b的符號同樣 / :作除法運算時,最後的結果爲整型。example: 5 / 2 = 2 當除數爲浮點類型時,結果爲浮點類型. example: 5 / 2.0 = 2.5 a++ : 在進行運算時,用a的值進行運算,最終a+1 ++a : 在進行運算時,用a+1的值進行運算,最終a+1 +: 鏈接符 example: "hello" + "world" = "helloworld"
關係運算符
>(大於)、<(小於) >=(大於等於)、>=(小於等於) ==(等於)、!=(不等於) instanceof(檢查是否爲類的對象) 關係運算符的最終結果爲布爾型,要麼爲true,要麼爲false.
賦值運算符
=、+=、-=、*=、/=、%= a += b :至關於 a = a + b 最後結果的數據類型和左側操做數的類型相同 example: int a = 2; a += 2.5; //等同於 a = (int)(a + 2.5);
邏輯運算符
&(與)、|(或) &&(短路與)、||(短路或) !(非) &&和||兩側爲boolean類型 &&運算規則:兩側都爲true結果爲true ||運算規則:兩側都爲false結果才爲false &&與&的區別:&&在參與運算時,只要左側爲false,右側則不參與運算,而&兩側都參與運算 ||與|的區別:||在參與運算時,只要左側爲true,右側則不參與運算,而|兩側都參與運算
位運算符
&(按位與)、|(按位或)、^(按位異或,同爲0,異爲1)、~(取反) >>(右移位)、<<(左移位)、>>>(無符號右移) &和|兩側爲數值型 運算規則:將數字轉爲二進制,按位計算,位數少的左側補0 左移至關於在此基礎上乘2 example: 2 << 1 = 2 * 2 右移相關於在此基礎上除2 example: 2 >> 1 = 2 / 2
三目運算符
條件表達式 ? 表達式1 : 表達式2 條件表達式結果爲true,執行表達式1 條件表達式結果爲false,執行表達式2 表達式1 與 表達式2 的類型必須一致!
注意
相關計算: byte,short,char在進行運算時,優先會轉爲int類型進行運算。 a += b 與 a = a + b 的區別: 當byte,short,char進行運算時: byte += 2 -> 最後的類型爲byte byte = byte + 2 -> 程序不能編譯 由於byte在參與運算時會以int類型計算 因此int不能直接賦值給byte 須要強制類型轉化 byte = (byte)byte + 2;
常量 : 在 Java
中用關鍵字 final
指示常量,常量一旦被賦值,不能被改變
類常量 : 在一個類的多個方法中使用,能夠定義爲類常量,用 static final
來設置一個常量
final double CIRCLE_R = 2.3; static final double CIRCLE_R = 3.3;
變量 : 在程序中,其值能夠被改變的。在聲明一個變量時,必須對變量進行初始化,不能使用沒被初始化的變量
int studentNumber = 20; double area = 10;
塊做用域 : 即複合語句,指由一對大括號括起來的若干語句,塊肯定了變量的做用域
public static void main(String[] args) { int n = 0; { int p = 4; //只在此大括號內有效 } System.out.println(p); //出錯,找不到變量p }
流程結構分爲:順序結構,選擇結構,循環結構
選擇結構:也叫分支結構。
1.switch-case[-default] 用於處理多個選項的操做 switch() 表達式可爲char byte short int 等常量表達式,字符串(JDK1.7引入),枚舉類型(JDK1.5引入)等 case子句必須爲常量 default在沒有對應case的狀況下來執行的。爲可選項 case 和 default 後的語句可加break,用來跳出當前分支,執行後續語句, 如沒有break,則從匹配項開始如下向下執行,途中遇到break也會跳出當前分支。 2.if, if-else, if-else if[-else] if - else if - else 中的條件最好有範圍大道範圍小去書寫 example: int grade = 80; if(grade > 80) { System.out.println("優秀"); } else if (grade >= 60 && grade < 80) { System.out.println("中等"); } else { System.out.println("不及格"); }
詳細代碼見Github~
循環結構:
1.while(條件表達式) 先判斷是否符合條件,符合後執行循環體,若是開始不符合條件,則一次也不執行 2.do-while(條件表達式); 注意分號 先執行一次,在判斷是否符合條件,符合後執行循環體,不論是否符合條件都會執行一次循環體 3.for(,,) 4.foreach - 加強for循環 for(variable : collection) statement example: for(int element : a) System.out.println(element); //打印a集合中的元素 循環結構中,每每都會有循環變量,用來控制循環的次數 通常循環結構爲:循環變量初始化,循環條件判斷,循環變量自增 循環條件爲boolean類型 break:用於結束當前循環(多重循環結束本層) continue:用於結束本次循環,開始下一次循環
詳細代碼見Github~
數組: 是一種數據結構,存儲相同類型數據的集合。下面全部數據咱們都以 int
類型爲例。
定義數組
int[] numbers = null;
初始化
靜態初始化:int[] numbers = {1,2,3,4,5}; int[] numbers = new int[] {1,2,3,4,5}; 動態初始化:int[] numbers = new int[5]; //定義一個長度爲5的int類型的數組 數據類型[] 數組名 = new 數據類型[長度]
數組的訪問
在數組中,能夠採用數組名[下標|索引]的方式來訪問數組中的元素 全部數組的下標都從0開始,最後一個元素爲數據的長度-1. Java中用length屬性來獲取數據的長度。 int len = numbers.length;
數組的賦值
咱們能夠爲數組中的每一位進行賦值 numbers[0]=0; numbers[4]=4; 當數組長度太多時,能夠經過循環來進行賦值 for(int i = 0; i < 100; i++) { numbers[i] = i; }
數組的遍歷
int[] numbers = new int[] {1,2,3,4,5}; for (int i : numbers) { System.out.println(i); }
數組拷貝
在Java中,容許將一個數組變量拷貝給另外一個數組變量,這時兩個變量都引用同一個數組 example: int[] numbers = {1,2,3,4,5}; int[] nums = numbers; Arrays.copyOf();也能實現,後續會說~
Java
中爲了提升代碼的複用性,能夠將其定義成一個單獨的功能,該功能的體現就是Java
中的方法。
Java
中方法的格式:
訪問控制符 返回值類型 函數名(參數類型1,形式參數1,參數類型2,形式參數2) { 執行語句; return 返回值; }
當函數沒有具體返回值時,返回值類型爲 void
關鍵字表示
若是函數的返回值類型是 void
時,return
語句能夠省略不寫,系統會自動添加return
的做用:結束函數。
方法的做用
注意:方法中只用調用方法,不能定義方法
爲了增長後面示例程序的趣味性,須要程序可以接收輸入,並以適當的格式輸出。
要想經過控制檯進行輸入,首先須要構造一個 Scanner
對象,並與「 標準輸入流」 System.in
關聯.
Scanner
類定義在java.util
包中。當使用的類不是定義在基本java.lang
包中時,必定要使用import
指示字將相應的包加載進來。
import java.util.*; //必須導入該包 Scanner in = new Scanner(System.in); String name = in.nextLine(); //輸入一行,使用 nextLine方法是由於在輸入行中有可能包含空格。 String firstName = in.next();//讀取一個單詞,碰見空白符中止 int i = in.nextInt();//讀取一個整數 double d = in.nextDouble();//讀取一個浮點數 Scanner API: next():獲取字符串,遇到空白字符中止 nextLine():獲取一行字符 nextInt():獲取int類型的整數 nextDouble():獲取double類型的浮點數 hasNext():是否有下一個輸入,若是有,返回true,不然返回false
System.out.println(); //輸出並換行
System.out.print(); // 輸出不換行
System.out.printf(); //格式化輸出
%d | 以十進制整數格式輸出 | %f | 以十進制浮點數格式輸出 |
---|---|---|---|
%c / %C | 以字符符號輸出 | %s / %S | 以字符串格式輸出 |
%o | 以八進制整數格式輸出 | %x / %X | 以十六進制整數格式輸出 |
以上爲經常使用的一些格式化控制符,還有其餘的,可自行查詢。
掌握 Java
基礎語法部分後,你們必定要多加練習,程序員的路就是 多動手
相關代碼記錄於GitHub中,歡迎各位夥伴 Star !
有任何疑問 微信搜一搜 [程序猿大博] 與我聯繫~
若是以爲對您有所幫助,請 點贊 ,收藏 ,若有不足,請評論或私信指正!謝謝~