Java基礎語法學習
1. 注釋
-
單行注釋:
//單行注釋 -
多行注釋:
/*多行注釋 多行注釋 多行注釋 多行注釋 */
2. 關鍵字與標識符
-
關鍵字:
![]()
-
Java所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符
標識符注意點
- 所有的標識符都應該以字母(A-Z或者a-z),美元符($),或者下劃線(_)開始
- 合法標識符舉例:age、$salary、_value、__1_value
- 非法標識符舉例:123abc、-salary、#abc
- 不能使用關鍵字作為變量名或方法名
- 標識符是大小寫敏感的
- 可以使用中文命名,但是一般不建議這樣去使用,也不建議使用拼音,很Low
- 所有的標識符都應該以字母(A-Z或者a-z),美元符($),或者下劃線(_)開始
3. 數據類型
-
Java是強類型語言
-
Java的數據類型分為兩大類
-
(八大)基本類型(primitive type)
-
引用類型(reference type)
![]()
//八大基本類型 //整數 byte num1 = 10; short num2 = 20; int num3 = 30;//最常用 long num4 = 40L;//Long類型要在數字后面加個L //浮點數 float num5 = 50.1F;//float類型要在數字后面加個F double num6 = 3.1415926; //字符 char name = 'A'; //字符串,String不是關鍵字,是類 //String name2 = "張三"; //布爾值:是非 boolean flag = true; //boolean flag = false;
-
數據類型擴展
-
整數擴展:進制
0b二進制:
int i = 0b10; System.out.println(i);//輸出為20八進制:
int i = 010; System.out.println(i);//輸出為80x十六進制:
int i = 0x10; System.out.println(i);//輸出為16 -
浮點數擴展:
float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f==d);//輸出為falsefloat d1 = 12343233232f; float d2 = d1 + 1; System.out.println(d1==d2);//輸出為true -
字符拓展:強制轉換
char c = "A"; System.out.println((int)c);//輸出為97 -
轉義字符
// \t 制表符 // \n 換行 -
String擴展
String sa = new String(original:"hello world"); String sb = new String(original:"hello world"); System.out.println("sa==sb"); //false,因為是對象,從內存分析 -
布爾值擴展
boolean flag = true; if (flag == true){} //新手 if (flag){} //老手 //Less is More! 代碼要精簡易讀
4. 類型轉換
-
運算中,不同類型的數據西安轉化為同一類型,然后進行計算。
![]()
-
強制類型轉換:高-->低
int i = 10; byte b = (byte)i; -
自動類型轉換:低-->高
int i = 10; double b = i; -
注意點:
-
不能對布爾值進行轉換
-
不能把對象類型轉換為不相干的類型
-
在把高容量轉換到低容量的時候,強制轉換
-
轉換的時候可能存在內存溢出,或者精度問題
int i = 128; byte b = (byte)i; //輸出為-128,內存溢出System.out.println((int)23.7); //23 System.out.println((int)-45.89f); //-45//操作比較大的數的時候,注意溢出問題 //JDK7新特性,數字之間可以用下劃線分割 int money = 10_0000_0000; int years = 20; int total = money*years; //-1474836480,計算的時候溢出了 long total2 = money*years; //默認是int,轉換之前已經存在問題了 long total3 = money*((long)years); //先把一個數轉換為long
-
5. 變量、常量、作用域
變量
-
變量是什么:就是可以變化的量!
-
Java是一種強類型語言,每個變量都必須聲明變量。
-
Java變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。
type varname [=value][{,varName[=value]}]; //數據類型 變量名 = 值; 可以使用逗號隔開來聲明多個同類型變量。(不推薦) -
注意事項
-
每個變量都有類型,類型可以是基本類型,也可以是引用類型。
-
變量名必須是合法的標識符。
-
變量聲明是一條完整的語句,因此每一個聲明都必須以分號結束。
//int a=1,b=2,c=3;(不推薦,程序可讀性差) int a=1; int b=2; int c=3; String name = "zhang"; char x = 'X'; double pi = 3.14;
-
變量作用域
-
類變量
-
實例變量
-
局部變量
public class Variable{ static int allClicks=0; //類變量:寫在方法外面,前面加static String str="hello world"; //實例變量:寫在方法外面 public void method(){ int i = 0; //局部變量:寫在方法里面 } }import java.sql.SQLOutput; public class 變量 {//這里類的名字最好用英文,我寫錯了 //類變量 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 變量類型(); 變量 變量 = new 變量(); System.out.println(變量.age); System.out.println(變量.name); //類變量 static System.out.println(salary); } //其他方法 public void add(){ } }
常量
-
常量:初始化后不能再改變值!不會變動的值。
-
所謂常量可以理解成一種特殊的變量,它的值被設定后,在程序運行過程中不允許被改變。
//final 常量名=值; final double PI = 3.14; -
常量名一般使用大寫字符。
public class 常量 { //修飾符,不存在先后順序 static final double PI = 3.14; //final static double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
變量的命名規則
- 所有變量、方法、類名:見名知意
- 類成員變量:首字母小寫和駝峰原則:monthSalary 除了第一個單詞以外,后面的單詞首字母大寫
- 局部變量:首字母小寫和駝峰原則
- 常量:大寫字母和下劃線:MAX_VALUE
- 類名:首字母大寫和駝峰原則:Man,GoodMan
- 方法名:首字母小寫和駝峰原則:潤(),runRun()
6. 基本運算符
- 算數運算符:+,-,*,/,%,++,--
- 賦值運算符:=
- 關系運算符:>,<,>=,<=,==,!=,instanceof
- 邏輯運算符:&&,||,!
- 位運算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 條件運算符:?:
- 擴展賦值運算符:+=,-=,*=,/=
自增自減運算符
- ++ --是一元運算符
int a = 3;
int b = a++; //執行完這行代碼后,先給b賦值,再自增
System.out.println(a); //輸出4
System.out.println(b); //輸出3
int c = ++a; //執行完這行代碼后,先自增,再給b賦值
System.out.println(a); //輸出5
System.out.println(c); //輸出5
初識Math類
-
冪運算
double pow = Math.pow(3,2); System.out.println(pow); //3^2=9 -
很多運算,我們會使用一些工具類來操作!
邏輯運算符
-
&&:邏輯與運算:兩個變量都為真,結果才為true。
-
||:邏輯或運算:兩個變量有一個為真,則結果才為true。
-
?。哼壿嫹沁\算:如果是真,則變成假;如果是假,則變成真
-
短路運算:
int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //因為c<4已經是false了,所以就不用進行接下來的計算了
位運算符
/*
A = 0011 1100
B = 0000 1101
-------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
*/
/*
2*8 = 16 計算機怎么做算得快
=2*(2*2*2)
效率極高??!
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
擴展賦值運算符
-
a+=b --> a = a+b
a-=b --> a = a - b
-
字符串連接符 +
int a = 10; int b = 20; System.out.println(""+a+b); //輸出為1020 System.out.println(a+b+""); //輸出位30
條件運算符
-
三元運算符
-
x ? y : z
如果x==true,則結果為y,否則結果為z
int score = 80; String type = score<60 ? "不及格" : "及格"; System.out.println(type);
7. 包機制
-
為了更好地組織類,Java提供了包機制,用于區別類名的命名空間。(相當于文件夾)
-
包語句的語法格式為
package pkg1[.pkg2[.pkg3...]]; -
一般利用公司域名倒置作為包名;
com.baidu.www
com.baidu.wenku
-
為了能夠使用某一個包的成員,我們需要在Java程序中明確導入該包。使用“import”語句可完成此功能。
import package1[.package2...].(classname|*);



浙公網安備 33010602011771號