程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語言入門教程(四):Java語言中的數據類型及String類

Java語言入門教程(四):Java語言中的數據類型及String類

編輯:關於JAVA

Java類中的主要組成部分就是數據成員和方法成員。而數據成員的聲明必須指定其數 據類型,方法成員的聲明也必須指定其返回值類型,如果方法有形式參數,也必須指定其 參數類型。因此,對於初學者來說,了解Java語言的數據類型是非常必要的。

Java語言中的數據類型可以分為兩大類,即基本數據類型(也有人稱為原始類型)和 引用類型(也有人稱類類型,對象類型等)。Java語言是面向對象的語言,大多數數據都 是引用類型,基本類型主要為了進行數學運算。下面對這兩種類型分別進行介紹。

1.基本數據類型:

Java中的基本數據類型分4大類

整型:byte,short,int,long

浮點型:float,double

字符型:char

邏輯型(也稱布爾型):boolean(true、false)

值得一題的是,Java中的基本數據類型的數據長度是跨平台的,不會因為運行的平台 不同而不同。

另外需要注意的是,整型默認以32位的int存儲,浮點型默認以64位的double存儲。如 下面例子:

package com.csst.test;
public class TestType {

    /**

     * @param args

     */

    public static void main(String[] args) {

       float f=1.0;//會有編譯錯誤

    }

}

出現錯誤的一行,主要就是因為數據類型轉換引起。1.0是浮點型,默認以64位的 double存儲,而程序中將1.0聲明位32位的float,就會出現編譯錯誤。基本原則是高精度 的數不能直接賦值給低精度的數。修改如下:

float f=(float) 1.0;

稱為強制類型轉換。

2.引用類型:

可以說,除了基本數據類型以外的數據,都是引用類型。也可以說,引用類型就是對 象,或者對象都是引用類型。很多人會有一個疑問,字符串算什麼類型?讓我們看看,在 基本類型的8個類別中,沒有字符串,那麼可以肯定的說,字符串是引用類型。但是接下 來的疑問就是,引用類型都是對象,對象不都是用new創建出來的麼?為什麼我們常常看 到如下語句:

String s=”Hello World”;

其實,在所有的類中,包括我們自己創建的類,以及API中已有的類,只有String這個 類比較特殊,可以直接使用=進行賦值,不用使用new關鍵字。但是String既然是對象,也 可使用new創建,如:

String s=new String(“Hello World”);

那麼這兩種聲明方式,有何不同?如果使用new關鍵字創建,那麼每次創建,都是在內 存空間初始化一個新的字符串對象,而如果使用=創建,並不會每次都初始化一個新的。 而是會看一下實例池中是否有字符序列相同的字符串,如果有,就將引用指向該空間,如 果沒有,才初始化,如下:

String s1=”abc”;

String s2=”abc”;

String s3=new String(“abc”);

String s4=new String(“abc”);

其中假設s1賦值時,在實例池中沒有找到abc字符串,那麼s1就被初始化到內存中。但 是創建s2時,由於已經有了一個用=號創建的abc了,將不會創建新的對象,而是將s2也 指向跟s1相同的空間,共享s1的abc。而s3,s4由於是使用new創建的,所以都會新創建對 象,在內存中初始化新的abc字符串。

String類有這樣的特性,源於String類另一個特征:String對象是不可變的。也就是 說,不管通過哪個方式初始化到內存中的字符串,都是不能被修改的。如:

String s=”abc”;

s=”def”;

當s被重新賦值時,並不是修改了abc,而是會新開辟內存空間,初始化新的字符串def 。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved