註釋
單行註釋: //註釋
多行註釋: /*註釋*/
文檔註釋: /** 文檔註釋 */
標識符與關鍵字
下圖爲Java中所有的關鍵字
所有標識符必須以大小寫字母或$或_開頭,首字母之後可以用數字
不能使用關鍵字做變量名或方法名
標識符大小寫敏感
數據類型
Java是一種強類型語言:要求變量使用要嚴格符合規定,所有變量必須先定以後才能使用。
Java數據類型分爲2大類
基本類型(primitive type):
1、整數類型: byte佔1個字節
short佔2個字節
int 佔4個字節 (默認)
long佔8個字節
2、浮點類型:float佔4個字節
double佔2個字節(默認)
3、字符類型:char佔2個字節
4、boolean類型:佔1位,true和false
引用類型(reference type)
1、類 class
2、接口 interface
3、數組 array
public class Demo01 {
public static void main(String[] args) {
//八大基本數據類型 定義的變量不賦值則無法使用
byte num1 =10;
short num2 = 20;
int num3 = 30;
long num4 = 40L; //長整型需要在value後面加L
// 浮點數 float double
float num5 = 10.1F; //float 類型需要在value後加F
double num6 = 3.1415926;
//字符類型
char name1 = 'A';
//字符串String不是數據類型也不是關鍵詞而是類,必須用"包裹
String name2 = "Hellow World!";
boolean flag = true;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
System.out.println(name1);
System.out.println(name2);
System.out.println(flag);
}
}
類型轉換
Java是搶類型語言,在進行運算時,不同類型的數據需要先轉換爲同一類型在進行運算。
容量從低到高優先級排序,因爲浮點型優先級比整型高,所以float雖然容量小於long,但依然優先級高於long。
從 高 --> 低 需要強制類型轉換
從 低 --> 高 自動類型轉換
強制類型轉換:
類型 變量名 = (目標類型名) 需要強制轉換的變量名
public class Demo05 {
public static void main(String[] args) {
// 高 --> 低 :強制類型轉換
int i = 128;
byte b = (byte)i; //這裏輸出結果不爲128,因爲byte最大值爲127,此處內存溢出了,類型轉換時需注意相應類型的最大容量,避免內存溢出。
System.out.println(i);
System.out.println(b);
}
}
//輸出結果:
128
-128
自動類型轉換:
public class Demo05 {
public static void main(String[] args) {
// 低 --> 高 :自動類型轉換
int j = 128;
double c = j;
System.out.println(j);
System.out.println(c);
}
}
//輸出結果:
128
128.0
Ps:
- 不能對布爾值進行類型轉換
- 不能把對象類型轉換爲不相干的類型
- 高容量 --> 低容量 強制類型轉換
- 轉換時可能存在內存溢出或精度問題
public class Demo03 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //強制類型轉換
System.out.println(c2);
System.out.println((int)c2);
}
}
可以看到進行強制類型轉換後輸出的爲字符對應的ascii值
a
97
中
20013
變量
Java是強類型語言,每個變量都必須聲明其類型
變量是Java最基本的存儲單元,其要素包含變量名、數據類型、作用域
ps:
- 每個變量都有類型,類型可以是基本類型(整型、浮點型、字符型、布爾型)也可以是引用類型(類、接口、數組)
- 變量名必須是合法標識符,也就是必須以大小寫字母或$或_開頭
- 聲明變量語句注意要以 分號 結束
type varName = [=value] [{,varName[=value]}];
數據類型 變量名 = 值; //可以使用逗號分隔來同時聲明多個變量
變量的作用域
- 類變量
- 實例變量
- 局部變量
public class Demo06 {
//類變量,聲明格式類似於實例變量,不過需要加static, 隨類的出現和消失而出現和消失。
static double salary = 2500;
//實例變量,在類的裏面方法的外面,從屬於對象;如不自行初始化,Java會將其值初始化爲這個類型的默認值。 0,0.0, 布爾:false, 其餘數據類型:null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部變量,在此方法裏面,使用時必須聲明和初始化值,不可在其他方法調用。
int i = 10;
System.out.println(i);
//變量類型(Demo06) 變量名(demo06) = 值(new Demo06())
Demo06 demo06 = new Demo06();
System.out.println(demo06.age);
System.out.println(demo06.name);
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
- 常量初始化後,常量值不可改變,可理解爲特殊的變量
- 常量名一般使用大寫字符
final 常量名 = 常量值;final i = 10;
public class Demo07 { //修飾符(static、final等)無先後順序 static final int I = 10; public static void main(String[] args) { System.out.println(I); }}
變量命名規範
修飾符
static 將方法變爲類的方法,被修飾的方法可以在類裏直接引用而不需要先創建對象。
public 公有的,如果想讓子類也可以使用此屬性或方法,需要用public修飾
protected 受保護的,同包不同級,不可以跨包使用
default 默認爲default
private 私有的,私有的屬性和方法是可以被繼承的,但是僅限被類訪問,子類一般無法直接調用及訪問。一般屬性也是私有的
final 通過final修飾得類沒有子類
運算符
% 模 取餘運算instanceof==實例注意a++與++a的區別,a++先賦值再+1,++a先+1再賦值
package operator;public class Demo2 { public static void main(String[] args) { long a = 123123123123123123L; int b = 123; short c = 10; byte d = 8; // 返回結果爲操作數中最高位 System.out.println(a+b+c+d); System.out.println(b+c+d); System.out.println(c+d); }}12312312312312326414118
當操作數中有long,則返回值類型爲long;操作數中無long時,返回結果爲操作數中最高位
自增自減運算符、Math類
Java.lang下的包不需要導入
package operator;public class Demo3 { public static void main(String[] args) { int a = 3; //先賦值再+1 int b = a++; //先+1再賦值 int c = ++a; System.out.println(a); System.out.println(b); System.out.println(c); //java.lang下的包不需要導入; double pow = new Math.pow(2,3); System.out.println(pow); }}
Java包機制
包可以理解爲一個文件夾
爲了更好的組織類,Java提供了包機制,用於區別類名的命名空間。
語法:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作爲包名
例如:com.baidu.www
爲了能夠使用某一個包的成員,我們需要在Java程序中明確導入該包。
import package1[.package2...].(classname|*);
import語句必須在package語句下面,不然會報錯
IDEA默認開啓了Compact Middle Packages,需要取消勾選才可一次性生成多級package