一些基礎知識
關鍵字
被賦予了特定意義的單詞稱之為關鍵字,關鍵字不能用於識別符號的定義了
識別符號
類名,介面名,變數名,方法名等我們都可以稱之為識別符號。識別符號不能是關鍵字,否則程式會報錯。
識別符號遵循駝峰式命名,類名,介面名為大駝峰式命名(列如:HelloWorld),而變數名,方法名一般為小駝峰式命名(getName)。
資料型別
計算機語言大致分為強型別語言和弱型別語言,java屬於強型別。
資料型別為基本資料型別和引用資料型別
基本資料型別有4類8種:byte(1位元組),char(2位元組),short(2位元組),int(4)位元組,long(8位元組),float(4位元組),double(8位元組),boolean(沒有明確定義,依賴於jvm)。
引用資料型別:類,介面,陣列等等。
位和位元組
-
位(b)是計算機中資料儲存最小單位,位元組(B)是資料處理的基本單位,1個位元組等於8位。
-
位元組的單位有B,KB,MB,GB,TB,PB
1KB=1024B=1M 1024M=1G
1MB=1024KB
1GM=1024MB
1TB=1024GB
1PB=1024TB
32位和64位的區別
主要是定址能力,32位的定址空間是2的32次方位,64位的定址空間是2的64次方位
進位制
-
2進位制
0b 比如說0b10=2
-
8進位制
0 比如說010=8
-
10進位制
比如說10=10
-
16進位制
0x 比如說0x10=16
浮點數拓展
float f= (float) (1.0+0.6);
double d=(double)(1.0+0.6);
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
/*這邊的f==d輸出的是false,只要是浮點數,在進行小數運算的時候會發生精度損失
所以在進行和錢有關的重要的資料進行計算的時候,我們要用BigDecimal
*/
字元和位元組
字元本質上都是數字我們可以用強制轉換成int
字元可以可以對照ascll碼錶轉換成對應位元組。
位元組也可以轉換成對應的字元。
基本型別的互相轉換
低->高 自動型別轉換
高->低 強制型別轉換
強制型別轉換可能會發生記憶體溢位導致精度的損失
布林型別在java中不能進行轉換!
轉換時不可以轉換成無關的型別!
變數
記憶體中的一小塊儲存單元,裡面存放著經常會改變的資料。
資料型別 變數名=變數值(,變數名=變數值,。。。。);
常量
值在執行過程中不會發生改變的量。
final 資料型別 資料名=資料值(,變數名=變數值,。。。);
被常量修飾的變數可以在類中方法內,也可以在類中方法外
但是被static修飾只能在類中方法外了
變數分為區域性變數和全域性變數,區域性變數必須賦初值,全域性變數可以不用賦初值,系統會自動分配給它預設的值!
作用域
{}
作用域中的變數只能在作用域中生效,同一個作用域中,變數不可重名
Math類
與數學有關的工具類
Math.abs()
Math.pow()
............
>> <<
右移 左移
左移 *2
右移 /2
2*8=16
<=>2 * 2 * 2 * 2
2<<3
00000010 變成了
00010000
三元運算子
語法:表示式?值1:值2;
包機制
包package要位於第一行,包上不可以有任何東西
如果不是java.lang包下的類,需要導包。
JavaDoc
javadoc -encoding UTF-8 -charset utf-8 檔名.java
這是對文件註釋的
@author
@version
@since
@param
@return
@throws
也可用idea生成文件
在tools中找到generate doc
我再生成文件的時候老是報錯,後來我把環境變數中的classpath刪除了,然後我的包可能不小心建的有些亂,然後把包刪了重新建,就能生成doc了。
Scanner
//Scanner的方法next()和nextLine()的區別前者有空格也會合並掉,後者可以有空格
int num=0;
int sum=0;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
num=sc.nextInt();
sum+=num;
}
System.out.println(sum);
sc.close();
//============================================
String num="";
int sum=0;
Scanner sc=new Scanner(System.in);
while(!sc.hasNext("#")){
num = sc.next();
}
sc.close();
反編譯
idea它支援反編譯
將要反編譯的位元組碼放入和java類一塊的目錄中即可
比如Project Structure ->D:\mad_speak\out看到類似這個路徑把它找到,並找出相應的class位元組碼檔案貼上,和java類放一塊,再在idea裡開啟即可。
方法過載
引數不同即個數不同或順序不同或型別不同
但方法名要相同
可變引數
可變引數必須放在引數列表的最後面,否則會報錯
可變引數可以理解它就是個陣列
例如
public static void main(String[] args) {
can(5,1,2,3,7,9);
}
public static void can(int a,int...num){
for(int n:num){
System.out.println(n);
}
System.out.println("a="+a);
}
//=======================================================================================
public static void main(String[] args) {
can(5,1,2,3,7,9);
can(5,new int[]{1,2,7,9});
}
public static void can(int a,int...num){
for(int n:num){
System.out.println(n);
}
System.out.println("a="+a);
}