1. 程式人生 > 其它 >一些基礎知識

一些基礎知識

關鍵字

被賦予了特定意義的單詞稱之為關鍵字,關鍵字不能用於識別符號的定義了

識別符號

類名,介面名,變數名,方法名等我們都可以稱之為識別符號。識別符號不能是關鍵字,否則程式會報錯。

識別符號遵循駝峰式命名,類名,介面名為大駝峰式命名(列如: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);
    }