以下內容學習于狂神說Java,b站學習視頻
一 、注釋
代碼編譯后不會被執行
- 單行注釋:// 只能注釋一行文字
- 多行注釋:/* 可以注釋多行文字 */
- 檔案注釋:/** */
二、識別符號
-
Java所有的組成部分都需要名字,類名、變數名以及方法名哦都被稱為識別符號,
-
關鍵字: java自身定義好的,例如:public、static、class等,

- 所有的識別符號都應該是以字母(A-Z或者a-z)、美元符號($)、下劃線(_)開始,不能以數字開頭
- 首字符之后可以是字母、美元符號、下劃線或數字的任何字符組成
- 關鍵字不能作為變數名或方法名
- 識別符號大小寫敏感
- 合法識別符號舉例:age、$salary、_value、__1_value
- 非法識別符號:123abc、-salary、#abc
- 可以使用中文命名,但不建議
三、資料型別
-
強型別語言
- 變數的使用必須嚴格符合規定,所有變數必須先定義才能使用
- 安全性高,速度慢
-
弱型別語言
- 可以不必嚴格符合規定
-
Java的資料型別分為兩大類
-
基本資料型別
-
整數型別
byte占1個位元組:-128–127
short占2個位元組:-32768–32767
int占4個位元組:-2147483648–2147483647
long占8個位元組:-9223372036854775808–9223372036854775807
-
浮點型
float占4個位元組
double占8個位元組
-
字符型
char占2個位元組
-
布爾型別
占1位,其值只有true和false兩個
-
-
參考資料型別
類
介面
陣列
-
-
什么是位元組
- 位( bit ):是計算機內部資料儲存的最小單位,11001100是一個八位二進制數,
- 位元組( byte ):是計算中資料處理的基本單位,習慣上用大寫B表示,
- 1B( byte,位元組)= 8bit(位)
- 字符:是指計算機中使用的字母、數字、字和符號
- 1bit表示1位
- 1Byte表示一個位元組 1B = 8b
- 1024B = 1KB
- 1024KB = 1M
- 1024M = 1G
拓展:
-
進制
public class Demo03 { public static void main(String[] args){ //整數拓展: 進制 二進制0b 十進制 八進制0 十六進制0x int i = 10; int i2 = 010;//八進制0 int i3 = 0x10;//十六進制0x 0~9 A~F System.out.println(i); System.out.println(i2); System.out.println(i3); } }
四、型別轉換
-
由于Java是強型別語言,所以在進行某些運算的時候,需要進行型別轉換,
? 低---------------------------------------------------->高
? byte,short,char,int,long,float,double
-
運算中,不同型別的資料先轉換為同一型別,然后進行運算
-
強制型別轉換:高–>低
public class Demo05 { public static void main(String[] args) { int i = 128; byte b = (byte)i;//記憶體溢位 //強制轉換 (型別)變數名 高-->低 System.out.println(i); System.out.println(b); System.out.println("======================"); //精度問題 System.out.println((int)23.7); System.out.println((int)-48.89f); } }
-

- 自動型別轉換:低–>高
public class Demo05 {
public static void main(String[] args) {
int i = 128;
double b = i;
//自動型別轉換 低-->高
System.out.println(i);
System.out.println(b);
System.out.println("================");
char c = 'a';
int d = c + 1;
System.out.println(d);
System.out.println((char)d);
}
}

注意:
-
不能把布林值進行轉換
-
不能把物件型別轉換為不相干的型別
-
把高容量轉換為低容量時,需要強制轉換
-
轉換的時候可能存在記憶體溢位,或者精度問題
溢位問題:
public class Demo06 { public static void main(String[] args) { //操作比較大的數的時候,注意溢位問題 //JDK7新特性,數字之間可以用下劃線分割 int money = 10_0000_0000; int years = 20; int total = money*years; System.out.println("total = "+total);//輸出-1474836480,溢位 long total2 = money*years; System.out.println("total2 = "+total2);//輸出-1474836480,還是溢位 //注意:先計算money*years(此時已經溢位),再賦值給total2 long total3 = money*((long)years);//先把其中一個數轉換為long System.out.println("total3 = "+total3);//輸出20000000000,此時溢位問題解決 } }
五、變數
-
變數是什么:就是可以變化的量!
-
Java是一種強型別語言,每個變數都必須宣告其型別
-
Java變數是程式中最基本的存盤單元,其要素包括變數名,變數型別和作用域
type varName [=value] [{,varName[=value]}]; //資料型別 變數名 = 值; 可以使用逗號隔開來宣告多個同型別變數 -
注意事項:
- 每個變數都有型別,型別可以是基本型別,也可以是參考型別
- 變數名必須是合法的識別符號
- 變數宣告必須是一條完整的陳述句,因此每一個宣告都必須以分號結束
六、變數作用域
-
類變量
-
實體變數
-
區域變數
public class Demo08 { //類變數 static static double salary = 2500; //屬性:變數 /*實體變數: 從屬于物件;若不進行初始化,則這個型別的默認值為 0 0.0 布林值:默認值為false 除了即便型別,其余的默認型別是null * */ String name; int age; //main方法 public static void main(String[] args) { //區域變數:必須宣告和初始化值 int i = 10; System.out.println(i); //變數型別 變數名字 = new Demo08() Demo08 demo08 = new Demo08(); System.out.println(demo08.age); System.out.println(demo08.name); //類變數 static System.out.println(salary); } //其他方法 public void another(){ } }
七、常量
-
常量(Constant):初始化(initialize)后不能再改變的值!
-
所謂常量就是一種特殊的變數,它的值一旦被設定,在程式運行程序中不允許被改變
final 常量名=值; final double PI = 3.14; -
常量名一般使用大寫字符
public class Demo09 { //static final是修飾符,不存在先后順序 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
八、變數的命名規范
- 所有的變數、方法、類名:見名知意
- 類成員變數:首字母小寫和駝峰原則
- 駝峰原則:出第一個單詞外,后面的單詞首字母大寫 lastName
- 區域變數:首字母小寫和駝峰原則
- 常量:大寫字母和下劃線:MAX_VALUE
- 類名:首字母大寫和駝峰原則
- 方法名:首字母小寫和駝峰原則:run(),runRun()
九、運算子
-
Java語言支持下列運算子
-
算術運算子:+,-,*,/,%,++,–
public class Demo01 { public static void main(String[] args) { //二元運算子 //Ctrl + D :復制當前行到下一行 int a = 10; int b = 20; int c = 35; int d = 40; System.out.println("a+b = " + (a+b)); System.out.println("a-b = " + (a-b)); System.out.println("a*b = " + (a*b)); System.out.println("a/b = " + (a/(double)b)); System.out.println("==============="); System.out.println("c/b = " + (c/(double)b)); System.out.println("c/b = " + (c/b));// / 取小數點前面的整數 System.out.println("c%b = " + (c%b));//%取余數 System.out.println("==============="); long a1 = 123456789123123113L; int b1 = 123; short c1 = 10; byte d1 = 8; System.out.println(a1+b1+c1+d1);//不同型別的整數相加,如果有long同一轉換為long型別 System.out.println(b1+c1+d1);//其余均為int System.out.println(c1+d1);//int System.out.println("===================="); //++ -- 自增,自減 一元運算子 //++在前面,先自+1再賦值 //++在后面,先賦值,在自加1 int a2 = 3; System.out.println("a2 = "+ a2); int b2 = a2++;//a2++ 先將a2的值賦值給b2,再執行a2 = a2 + 1 System.out.println("b2 = "+ b2); System.out.println("a2 = "+ a2); System.out.println("===================="); int c2 = 3; System.out.println("c2 = "+ c2); int d2 = ++c2;//++c2 先執行c2 = c2 + 1,再把c2的值賦值給d2 System.out.println("d2 = "+ d2); System.out.println("c2 = "+ c2); } }
-
賦值運算子:=
-
關系運算子:>,<,>=,<=,==,!=,instanceof
public class Demo03 { public static void main(String[] args) { //關系運算子回傳的的結果:正確,錯誤 布林值 int a = 10; int b = 20; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } }
-
邏輯運算子:&&,||,!
package operator; //邏輯運算子 public class Demo05 { public static void main(String[] args) { //與(&&) 或(||) 非(!) boolean a = true; boolean b = false; System.out.println("a && b: " + (a&&b) );//邏輯與運算:兩個變數都為真,結果為真 System.out.println("a || b: " + (a||b) );//邏輯或運算:兩個變數有一個為真,結果為真 System.out.println("!(a && b): " + !(a&&b) );//邏輯非運算:如果是真,則變為假;如果是假,則變為真 //短路運算:前面條件為假,則后面的條件不被運行,直接輸入假 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
-
位運算子:&,|,^,~,>>,<<,>>>(了解!!!)
package operator; public class Demo06 { public static void main(String[] args){ /* 位運算,與二進制有關 A = 0011 1100 B = 0000 1101 -------------- A&B = 0000 1100 與 比較對應位上的二進制,如果對應位同為1,則對應位輸出1,如果對應位有一個不為1或者全為0,則輸出0 A|B = 0011 1101 或 對應位上有一個為1,則輸出1,全為0,則輸出0 A^B = 0011 0001 異或 對應位同為1或同為0,則輸出0,對應位不同,則輸出1 ~B = 1111 0010 取反 將每一位取相反值,是1則取0,是0則取1 -------------------- 2*8 = 16 2*2*2*2 << 左移 相當于乘法 *2 >> 右移 相當于除法 /2 2<<3 = 2*2*2*2 因為 2的二進制在計算機中是 0000 0010 而2<<3相當于2*2*2*2=16,16的二進制 0001 0000 觀察2和16的二進制,可以看出是把1向左移動了3位 同理 8>>3 = 8/2/2/2 = 1 8 0000 1000 1 0000 0001 把1向右移動3位 實際上就是除以2(三次) 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println("2<<3 = "+(2<<3)); System.out.println("8>>3 = "+(8>>3)); } }
-
條件運算子(三目運算子):? :
- x ? y : z 如果x為真,則結果為y,否則結果為z
package operator; //三元運算子 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x為真,則結果為y,否則結果為z int score = 80; String type = score < 60 ? "不及格" : "及格"; System.out.println(type); } } -
擴展賦值運算子:+=,-=,*=,/=
package operator; public class Demo07 { public static void main(String[] args){ int a = 10; int b = 20; int c = 30; a+=b; //a = a + b c-=b;//c = c - b System.out.println(a); System.out.println(c); } } -
字串拼接
-
“”+a+b 雙引號在開頭,則全以字串形式輸出
-
a+b+""+c 雙引號不在開頭,則雙引號前面的正常相加,后面拼接字串
package operator; public class Demo07 { public static void main(String[] args){ int a = 10; int b = 20; int c = 30; //字串拼接 //""+a+b 雙引號在開頭,則全以字串形式輸出 //a+b+""+c 雙引號不在開頭,則雙引號前面的正常相加,后面拼接字串 System.out.println(" "+a+b); System.out.println(a+b+" "+a+b+c); } }
-
-
十、包機制
-
包的本質就是一個檔案夾
-
為了更好地組織類,Java提供了包機制,用于區別類名地命名空間,
-
包陳述句地語法格式為
package pkg1[.pkg2[pkg3...]]; -
一般利用公司域名倒置作為包名:com.LinYIN.xxx

-
為了能夠使用某一個包的成員,需要在Java程式中宣告匯入該包,使用import陳述句完成
import packge1[.package2...].(classname|*); import com.LinYIN.xxx*匯入這個包下所有的類
十一、JavaDoc
-
javadoc命令是用來生成自己的API檔案的
-
引數資訊
- @author 作者名
- @version 版本號
- @since 指明需要最早使用的jdk版本
- @param 引數名
- @return 回傳值情況
- @throws 例外拋出情況
-
IDEA生成一個JavaDoc檔案
-
點擊IDEA頂部的Tools選單,選擇Generate JavaDoc

-

-

-
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266359.html
標籤:java
上一篇:Java復習------OOP
下一篇:JAVA SE基礎知識總結
