基本數據類型
變量就是用來儲存值而保留的內存位置。這就意味著當你創建一個變量時就會在內存中占用一定的空間。
基于變量的數據類型,操作系統會進行內存分配并且決定什么將被儲存在保留內存中。因此,通過給變量分配不同的數據類型,你可以在這些變量中存儲整數,小數或者字字母。
Java 中有兩種有效地數據類型:
原始數據類型
Java 支持 8 種原始數據類型。原始數據類型是由該語言預先定義的并用關鍵詞命名的。下面讓我們深入學習一下這 8 種數據類型。
字節型(byte)
字節型是一種 8 位有正負的二進制整數
最小值是 -128(-2^7)
最大值是 127(2^7-1)
默認值為 0
字節型數據類型主要是為了在大型數組內節省空間,主要是替代整數由于字節型比整數小 4 倍。
例如:
byte a = 100 , byte b = -50
短整數(short)
短整數是一種 16 位有正負的二進制整數
最小值是 -32768(-2^15)
最大值是 32767(2^15-1)
短整數類型的數據也可以像字節型一樣用于節省空間。短整數比整數小兩倍
默認值為 0
例如:
short s = 10000, short r = -20000
整數型(int)
整數型是一種 32 位有正負的二進制整數
最小值是 - 2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31 -1)
整數型一般默認被應用于整數值除非擔心內存不夠用。
默認值為 0
例如:
int a = 100000, int b = -200000
長整型(long)
長整型是一種 64 位有正負的二進制整數
最小值是 -9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807 (2^63 -1)
這種數據類型一般是在需要比整數型范圍更大時應用。
默認值為 0L
例如:
long a = 100000L, int b = -200000L
浮點型(float)
浮點型數據是一種單精度的 32 位 IEEE 754 標準下的浮點數據。
浮點型數據主要是為了在大型浮點數字數組中節約內存。
默認值是 0.0f。
浮點型數據不能用于如貨幣這樣的精確數據。
例如:
float f1 = 234.5f
雙精度型(double)
雙精度型數據是一種雙精度的 64 位 IEEE 754 標準下的浮點數據。
這種數據類型主要是默認被用于表示小數的值,一般是默認的選擇。
雙精度型數據不能用于如貨幣這樣的精確數據。
默認值是 0.0d
例如:
double d1 = 123.4
布爾型(boolean)
布爾型數據代表一個信息比特。
它只有兩個可能的值:真(true)和假(false)
這種數據類型用于真假條件下的簡單標記。
默認值是假(false)
例如:
boolean one = true
字符型(char)
字符型數據是簡單的 16 位 Unicode 標準下的字符。
最小值是: '/u0000' (或 0)。
最大值是: '/uffff' (或 65,535 )。
字符型數據可以用來儲存任意字母。
例如: char letter A(字符型的字母A) ='A'
引用數據類型
引用數據類型是由類的編輯器定義的。他們是用于訪問對象的。這些變量被定義為不可更改的特定類型。例如:Employee, Puppy 等等。
類對象和數組變量就是這種引用數據類型。
任何引用數據類型的默認值都為空。
一個引用數據類型可以被用于任何聲明類型和兼容類型的對象。
例如:
Animal animal = new Animal("giraffe");
Java 常量
常量是代表固定值的源代碼。他們直接以代碼的形式代表而沒有任何估計。
常量可以被分配給任意的原始變量類型。例如:
byte a = 68;char a = 'A'
字節型,整數型,長整型和短整型也可以由十進制,十六進制和八進制計數系統表示。
當用這些技術系統表示直接量時,前綴 0 是為了標明八進制,前綴 0x 是為了標明十六進制。例如:
int decimal = 100;int octal = 0144;int hexa = 0x64;
Java 中的字符串型常量的規定和其他大多數語言一樣,也是要寫在雙引號中間。字符串型直接量的例子如下:
"Hello World""two/nlines""/"This is in quotes/""
字符和字符串型常量可以包含任意的 Unicode 字母。例如:
char a = '/u0001';String a = "/u0001";
Java 語言也支持一些特殊的轉義序列的字符和字符串直接量。他們是:
轉義字符 | |
---|---|
/n | 換行 (0x0a) |
/r | 回車 (0x0d) |
/f | 換頁 (0x0c) |
/b | 退格 (0x08) |
/s | 空格 (0x20) |
/t | tab |
/" | 雙引號 |
/' | 單引號 |
/ | 反斜杠 |
/ddd | 八進制字符 (ddd) |
/uxxxx | 十六進制 UNICODE 字符 (xxxx) |
在使用前你必須現將所要使用的變量進行聲明。聲明變量的基本格式如下:
data type variable [ = value][, variable [= value] ...] ;
這里的 data type 是 Java 的一種數據類型,variable 是一種變量的名稱。要聲明一個以上的特定變量類型,你可以采用逗號分隔開。
下面是 Java 中有效的變量聲明和賦值的例子:
int a, b, c; // Declares three ints, a, b, and c.int a = 10, b = 10; // Example of initializationbyte B = 22; // initializes a byte type variable B.double pi = 3.14159; // declares and assigns a value of PI.char a = 'a'; // the char variable a iis initialized with value 'a'
Java 中共有三種變量:
本地變量
例子
這里,age(年齡)是本地變量。這是在 pupAge() 方法下定義的,它的范圍僅限于這個方法。
public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); }}
上述代碼會輸出如下結果:
Puppy age is: 7
例子
下面的例子使用了本地變量 age 但是沒有進行初始化,所以在編輯是就會顯示錯誤。
public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); }}
編輯時會產生如下錯誤:
Test.java:4:variable number might not have been initializedage = age + 7;^1 error
實例變量
例子
import java.io.*;public class Employee{ // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName){ name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal){ salary = empSal; } // This method prints the employee details. public void printEmp(){ System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]){ Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); }}
上述代碼會輸出如下結果:
name : Ransikasalary :1000.0
類、靜態變量
例子
import java.io.*;public class Employee{ // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]){ salary = 1000; System.out.println(DEPARTMENT+"average salary:"+salary); }}
上述代碼會輸出如下結果:
Development average salary:1000
注:如果變量從類外訪問,常量就必須以 Employee.DEPARTMENT 訪問。
新聞熱點
疑難解答