首頁 > 軟體

Java詳解資料型別的定義與使用

2022-04-14 22:00:15

識別符號和關鍵字

識別符號

讀音 biao zhi fu

什麼是識別符號

包、類、變數、方法…等等,只要是起名的地方,那個名字就是識別符號

識別符號的定義規則

四個可以:可以是數位、字母、下劃線(_)、美元符號($),我們一般起名儘量使用英文字母。

兩個不可以:不可以以數位開頭,不可以使用java中的關鍵字。

見名知意:使讀者能通過名字就能明白是幹什麼的,比如:氣泡排序(bubble_Sort),我們就能清楚的知道這個方法是氣泡排序。

駝峰命名:

  • 類名:首字母大寫,其餘遵循駝峰命名
  • 方法名/變數名:首字母小寫,其餘遵守駝峰命名
  • 包名:全部小寫

長度限制:長度沒有限制,但是不建議太長

關鍵字

  • 被Java語言賦予了特殊含義,用作專門用途的單詞
  • 特點:Java中所有的關鍵字都為小寫

官網:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

常數和變數

常數

常數分為兩種:

常數通常指的是一個固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。

在Java語言中,主要是利用關鍵字final來定義一個常數。 常數一旦被初始化後不能再更改其值。

為了更好的區分和表述,一般將1、2、3、’a’、’b’、true、false、”helloWorld”等稱為字面常數,而使用final修飾的PI等稱為符號常數(字元常數)。

字面常數的型別:

​ 整型常數: 123 23

​ 實型常數: 3.1415926

​ 字元常數: ‘a’ ‘b’

​ 邏輯常數: true false

​ 字串常數: “helloworld”

注意:邏輯常數就兩個值,一個是true,一個是false

變數

變數本質上就是代表一個可操作的儲存空間,空間位置是確定的,但是裡面放置什麼值不確定。我們可通過變數名來存取對應的儲存空間”,從而操縱這個儲存空間儲存的值。

Java是一種強型別語言,每個變數都必須宣告其資料型別。變數的資料型別決定了變數佔據儲存空間的大小。 比如,int a=3; 表示a變數的空間大小為4個位元組。變數作為程式中最基本的儲存單元,其要素包括變數名,變數型別和作用域。變數在使用前必須對其宣告, 只有在變數宣告以後,才能為其分配相應長度的儲存空間。

變數的宣告格式

資料型別  變數名 = 初始值, 變數名 = 初始值 …;

例如:

public class TestCode01{
        public static void main(String[] args){
            int a=3,b=4,c=5;
            //也可以先定義不賦值
            int a,b,c;                        
        }
}

變數的宣告

  • 如果你只定義一個變數,沒有給變數進行賦值的話,那麼其實這個變數相當於沒有定義;
  • 變數如果沒有進行賦值的話,那麼使用的時候會出錯,告訴你:尚未初始化變數;
public class TestCode01{
        public static void main(String[] args){
            int a;
            System.out.println(a);//會報錯,未初始化變數a
        }
}

變數的賦值

int a=10;//直接定義並賦值
int b;//先定義在賦值
b=20;

變數不可以重複定義

基本資料型別

整數型別

整型資料型別:

下面以程式碼為例:

public class TestCode01{
        public static void main(String[] args){
                //定義整數型別的變數:
                //給變數賦值的時候,值可以為不同進位制的:
                int num1 = 12 ;//預設情況下賦值就是十進位制的情況
                System.out.println(num1);
                int num2 = 012;//前面加上0,這個值就是八進位制的
                System.out.println(num2);
                int num3 = 0x12;//前面加上0x或者0X,這個值就是十六進位制的
                System.out.println(num3);
                int num4 = 0b10;//前面加上0x或者0B,這個值就是二進位制的
                System.out.println(num4);
                
                //定義byte型別的變數:
                byte b = 126;//定義了一個byte型別的變數,名字叫b,賦值為12
                System.out.println(b);
                //注意:超範圍的賦值會報錯。
                short s = 30000;
                System.out.println(s);
                int i = 1234;
                System.out.println(i);
                //整數型別預設就是int型別的,所以12345678910是一個int型別的數,對於int型別來說,它超出範圍了
                //要想把一個數給long型別變數,那麼後面加上L(推薦)或者l就可以了
                long num5 = 12345678910L;
                System.out.println(num5);
                //注意:只有這個數超出int型別的範圍了後面才需要加上L,否則無需加L也可以賦值給long型別:
                long num6 = 12;
                System.out.println(num6);
                
        }
}

浮點型別

浮點型別常數

(1)十進位制數形式,例如: 3.14 314.0 0.314

(2)科學記數法形式,例如:

//314e2      314E2 (E的大小寫沒有區分)    314E-2
double  f = 314e2;   //31410^2-->31400.0
double  f2 = 314e-2; //31410^(-2)-->3.14

浮點型別變數

float型別又被稱作單精度型別,尾數可以精確到7位有效數位,在很多情況下,float型別的精度很難滿足需求。

而double表示這種型別的數值精度約是float型別的兩倍,又被稱作雙精度型別,絕大部分應用程式都採用double型別。

float型別的數值有一個字尾F或者f ,沒有字尾F/f的浮點數值預設為double型別。

也可以在浮點數值後新增字尾D或者d, 以明確其為double型別。

PS:有效數位指的是從左開始第一個不為0的數到最後一個數

public class TestCode02{
        public static void main(String[] args){
                //浮點型別的常數有兩種形式:
                //十進位制形式:
                double num1 = 3.14;
                System.out.println(num1);
                //科學計數法形式:
                double num2 = 314E-2;
                System.out.println(num2);
                
                //浮點型別的變數:
                //注意:浮點型預設是double型別的,要想將一個double型別的數賦給float型別,必須後面加上F或者f
                float f1 = 3.14234567898623F;
                System.out.println(f1);
                //注意:double型別後面可以加D或者d,但是一般我們都省略不寫
                double d1 = 3.14234567898623D;
                System.out.println(d1);
                
                //注意:我們最好不要進行浮點型別的比較:
                float f2 = 0.3F;
                double d2 = 0.3;
                System.out.println(f2==d2);
                /*
                區別:
                = 賦值運算:  將等號右側的值賦給等號左側
                == 判斷==左右兩側的值是否相等  :結果要麼相等 要麼不相等
                ==運運算元的結果就是要麼是true,要麼是false
                */
                
        }
}

字元型別

字元型

Java的字元使用16位元的Unicode編碼表示,而計算機語言通常使用ASCII碼,用8位元表示一個字元。

字元型是用兩個單引號括起來的一個字元,如’a’,’1’,’A’等。其中,’a’和’A’分別表示ASCII碼中的字元a和A,而’1’表示字元型1,而不是整數的數值1。除了一般字元外,Java還定義了一些特殊字元,如圖:

字元型除了常數值的表示方式與整數型不同外,在其他方面幾乎可以將它視為一般整數來處理。

字串型

字串是指括在兩個雙引號之間0個或多個字元組成的序列。若兩個雙引號之間沒有任何字元,則為空串。下面是有關字串的一些例子:

""
"hello world!"
"hello java"

Java語言把字串當作String型別的一個物件來處理。

布林型別

boolean型別有兩個常數值,truefalse,在記憶體中佔一位(不是一個位元組),不可以使用 0 或非 0 的整數替代 true 和 false ,這點和C語言不同。 boolean 型別用來判斷邏輯條件,一般用於程式流程控制 。

public class TestCode03{
        public static void main(String[] args){
                //建立一個布林型別的變數:
                boolean flag1 = true;
                System.out.println(flag1);
                boolean flag2 = false;
                System.out.println(flag2);
                boolean flag3 = 5==9;
                System.out.println(flag3);
                boolean flag4 = 5<9;
                System.out.println(flag4);
        }
}

基本資料型別的轉換

自動型別轉換

即精度小的型別自動轉換為精度大的資料型別

資料型別按精度大小排序為:

在型別轉換的時候需要遵循哪些規則:

第一條:八種基本資料型別中,除boolean 型別不能轉換,剩下七種型別之間都可以進行轉換;

第二條:小容量向大容量轉換稱為自動型別轉換,大容量轉換小容量必須使用強制型別轉,但執行時可能出現精度損失,謹慎使用

第三條:byte,short,char 型別混合運算時,先各自轉換成 int 型別再做運算;

第四條:整數的預設型別是 int,小數預設是 double 型別浮點型,在定義 float 型別時必須在數位後面跟上 F 或者 f。

第五條:浮點數到整數的轉換是通過捨棄小數得到,而不是四捨五入

當一個表示式中有多種資料型別的時候,要找出當前表示式中級別最高的那個型別,然後其餘的型別都轉換為當前表示式中級別最高的型別進行計算。

 double d2 = 12+1294L+8.5F+3.81+'a';//都轉換成最高的double型別,相當於= 12.0+1294.0+8.5+3.81+97.0

強制型別轉換

把精度大的資料型別的資料賦值給精度小的資料型別。

double b=3.1415926;
int a=(int)b;//強制轉換  高-->低

在進行運算的時候:

左=右 : 直接賦值

左<右 :強轉

左>右 :直接自動轉換

到此這篇關於Java詳解資料型別的定義與使用的文章就介紹到這了,更多相關Java 資料型別內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com