Java的基本數據類型和Java的變量類型

一、Java 基本數據類型

1、什麼是變量?

變量就是用來儲存值而保留的內存位置。這就意味着當你創建一個變量時就會在內存中佔用一定的空間。

基於變量的數據類型,操作系統會進行內存分配並且決定什麼將被儲存在保留內存中。因此,通過給變量分配不同的數據類型,你可以在這些變量中存儲整數,小數或者字字母。

Java 中有兩種有效的數據類型:

·基本數據類型

        · 引用數據類型

2、基本數據類型

Java 支持 種原始數據類型。原始數據類型是由該語言預先定義的並用關鍵詞命名的。下面讓我們深入學習一下這 種數據類型。

字節型(byte

· 字節型是一種 位有正負的二進制整數

· 最小值是 -128(-2^7)

· 最大值是 127(2^7-1)

· 默認值爲 0

· 字節型數據類型主要是爲了在大型數組內節省空間,主要是替代整數由於字節型比整數小 倍。

· 例如: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'

3、引用數據類型

· 引用數據類型是在類中由用戶自己定義的。他們是用於訪問對象的引用。這些變量被定義爲不可更改的特定類型。例如:Employee, Puppy 等等。

· 類對象和數組變量就是這種引用數據類型。

· 任何引用數據類型的默認值都爲空(即null)。

· 基本數據的的包裝類也是數據類型

· 一個引用數據類型可以被用於任何聲明類型和兼容類型的對象。

· 例如: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)

三、Java 變量類型

變量可以給我們提供我們程序可以操縱的命名的存儲。Java 中的每種變量都有特定的類型,這決定了變量的大小和它的設計佔用內存空間;這一些列的值可以存儲在那個內存空間中;變量可以應用的操作。在使用前你必須現將所要使用的變量進行聲明。聲明變量的基本格式如下:

<span style="font-size:12px;">data type variable [ = value][, variable [= value] ...] ;</span>

這裏的 data type 是 Java 的一種數據類型,variable 是一種變量的名稱。要聲明一個以上的特定變量類型,你可以採用逗號分隔開。

下面是 Java 中有效的變量聲明和賦值的例子:

<span style="font-size:12px;">int a, b, c; // Declares three ints, a, b, and c.
int a = 10, b = 10; // Example of initialization
byte 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'</span>

Java 中共有三種變量:

· 本地變量

· 實例變量

· 類、靜態變量

本地變量

· 本地變量在方法、構造器或者塊中聲明

· 本地變量在方法、構造器或者塊進入時被創建,一旦退出該變量就會被摧毀

· 可訪問描述符不能用於本地變量

· 本地變量僅在已經聲明的方法、構造器或者塊中可見

· 本地變量在棧深度內部實施

· 本地變量沒有默認值,因此本地變量必須被聲明並且在第一次使用前要給它賦值

例子

這裏,age(年齡)是本地變量。這是在 pupAge() 方法下定義的,它的範圍僅限於這個方法。

<span style="font-size:12px;">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();
   }
}</span>

上述代碼會輸出如下結果:

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 initialized
age = age + 7;
^
1 error
實例變量

Test.java:4:variable number might not have been initialized
age = age + 7;
^
1 error


實例變量

· 實例變量在類中聲明,但是它在方法、構造器或者塊外。

· 當堆中的對象被分配了一個空間時,每個實例變量的位置就被創建了。

· 當對象採用關鍵字“ new ”創建時實例變量就被創建了,當對象被銷燬時它也就被銷燬了。

· 實例變量的值必須被一個以上的方法、構造器或者塊,或者類中必須出現的對象的狀態的重要部分所引用。

· 實例變量可以在類水平上在使用前或者使用後聲明。

· 實例變量可以用可訪問描述符。

· 實例變量對類中的所有方法、構造器或者塊可見。一般來講,推薦將這些變量私有(訪問層面)。然而子類的可見性可用可訪問描述符給予那些變量。

· 實例變量有默認值。數字的默認值爲零,布爾型默認值爲假,對象引用默認值爲空。在聲明或者構造器內可以進行賦值。

· 實例變量可以採用直接在類中叫名字方式訪問。然而在靜態方法和不同的類(實例變量可以被訪問)中應當使用完全限定名稱。ObjectReference.VariableName

例子

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  : Ransika

salary :1000.0

類、靜態變量

· 類變量也叫靜態變量,它是在類中用 static 關鍵字聲明的,但是它在方法、構造器或者塊之外。

· 每個類中只有一個類變量,不管這個類有多少對象。

· 除了作爲常量被聲明之外,類變量很少被應用。常量是被作爲 publicprivate, final 和 static 被聲明的變量。實例變量的初始值不會被改變。

· 靜態變量存儲在靜態內存中,很少採用靜態變量而不是聲明結束或者用常量public 或 private 之一。

· 靜態變量隨着程序的開始和結束而開始和結束。

· 可見性和實例變量相似。然而大多數靜態變量被聲明爲public由於他們必須爲類的使用者所用。

· 默認值和實例變量相似。對於數字的默認值爲零,布爾型默認值爲假,對象引用默認值爲空。在聲明或者構造器內可以進行賦值。除此之外,可以在特殊的靜態初始化區賦值。

· 靜態變量可以用類的名稱訪問。ClassName.VariableName

· 當靜態變量被作爲 public static final 聲明時,變量(常量)名稱都要用大寫字母。如果靜態變量不是 public 和 final,它的命名方法和實例變量和本地變量相同。

例子

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 訪問。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章