聊聊java中引用數(shù)據(jù)類型有哪些
java中引用數(shù)據(jù)類型有哪些
Java中有倆種數(shù)據(jù)類型,其中主要有8中基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,除了8中基本數(shù)據(jù)類型以外都是引用數(shù)據(jù)類型,8中基本數(shù)據(jù)類型分別是byte,short,int,long,char,boolean,float,double,具體如下:
1、boolean
:數(shù)據(jù)值只有true或false,適用于邏輯計算。
2、char
:char型(字符型)數(shù)據(jù)在內(nèi)存中占用2個字節(jié)。char型數(shù)據(jù)用來表示通常意義上的字符,每個字符占2個字節(jié),Java字符采用Unicode編碼,它的前128字節(jié)編碼與ASCII兼容字符的存儲范圍在\u0000~\uFFFF,在定義字符型的數(shù)據(jù)時候要注意加' ',比如 '1'表示字符'1'而不是數(shù)值1,
3、byte
:byte型(字節(jié)型)數(shù)據(jù)在內(nèi)存中占用1個字節(jié),表示的存儲數(shù)據(jù)范圍為:-128~127。
4、short
:short型(短整型)數(shù)據(jù)在內(nèi)存中占用2個字節(jié)。
5、int
:int型(整型)數(shù)據(jù)在內(nèi)存中占用4個字節(jié)。
6、long
:long型(長整型)數(shù)據(jù)在內(nèi)存中占用8個字節(jié)。
7、float
:float型(單精度浮點型)數(shù)據(jù)在內(nèi)存中占用4個字節(jié)。(float精度為7-8位)
8、double
:double型(雙精度浮點型)數(shù)據(jù)在內(nèi)存中占用8個字節(jié)。
下面說說java中引用數(shù)據(jù)類型:
引用數(shù)據(jù)類型分3種:類,接口,數(shù)組;
一、類Class引用
可以是我們創(chuàng)建的,這里我不多講,主要是講解幾個java庫中的類
Object
:Object是一個很重要的類,Object是類層次結(jié)構(gòu)的根類,每個類都使用Object作為超類,所有對象(包括數(shù)組)都實現(xiàn)這個類的方法。用Object可以定義所有的類
如:
Object object= new Integer(1); 來定義一個Interger類 Integer i=(Integer) object; 在來把這個Object強制轉(zhuǎn)換成Interger類
String
:String類代表字符串,Java 程序中的所有字符串字面值(如"abc")都作為此類的實例來實現(xiàn)。檢查序列的單個字符、比較字符串、搜索字符串、提取子字符串、創(chuàng)建字符串副本、在該副本中、所有的字符都被轉(zhuǎn)換為大寫或小寫形式。Date
:Date表示特定的瞬間,精確到毫秒。Date的類一般現(xiàn)在都被Calendar 和GregorianCalendar所有代替Void
:Void 類是一個不可實例化的占位符類,它保持一個對代表 Java 關(guān)鍵字 void 的 Class 對象的引用。
同時也有對應(yīng)的Class如:Integer Long Boolean Byte Character Double Float Short
二、接口interface引用
可以是我們創(chuàng)建的,這里我不多講,主要是講解幾個java庫中的接口interface
List<E>
:列表 ,此接口的用戶可以對列表中每個元素的插入位置進行精確地控制。用戶可以根據(jù)元素的整數(shù)索引 (在列表中的位置)訪問元素,并搜索列表中的元素。List 接口提供了兩種搜索指定對象的方法。從性能的觀點來看,應(yīng)該小心使用這些方法。在很多實現(xiàn)中,它們將執(zhí)行高開銷的線性搜索。 List 接口提供了兩 種在列表的任意位置高效插入和移除多個元素的方法。add()
:在列表的插入指定元素。remove()
:移除列表中指定位置的元素。get(int index)
:返回列表中指定位置的元素。Map<K,V>
:
K - 此映射所維護的鍵的類型
V - 映射值的類型 將鍵映射到值的對象。一個映射不能包含重復(fù)的鍵;每個鍵最多只能映射到一個值。
put(K key,V value)
:將指定的值與此映射中的指定鍵關(guān)聯(lián)(可選操作)。如果此映射以前包含一個該鍵的映射關(guān)系,則用指定值替換舊值(當且僅當,返回 true 時,才能說映射 m 包含鍵 k 的映射關(guān)系)。 remove(Object key)如果存在一個鍵的映射關(guān)系,則將其從此映射中移除(可選操作)。更確切地講,如果此 映射包含從滿足(key==null ? k==null :key.equals(k))的鍵 k 到值 v 的映射關(guān)系,則移除該映射關(guān)系。(該映射最多只能包含一個這樣的映射關(guān)系.) get(Object key):返回指定鍵所映射的值;如果此映射不包含該鍵的映射關(guān)系,則返回 null。
這里我們主要是用String List Map Object 是最常用Number ArrayList<E> Arrays等
三、數(shù)組引用
數(shù)組:存儲在一個連續(xù)的內(nèi)存塊中的相同數(shù)據(jù)類型(引用數(shù)據(jù)類型)的元素集合。
數(shù)組中的每一個數(shù)據(jù)稱之為數(shù)組元素,數(shù)組中的元素以索引來表示其存放的位置,索引(下標)從0開始。
數(shù)組的定義
- 第一種方式:類型[] 數(shù)組名; 如 int[] nums;
- 第二種方式:類型數(shù)組名[]; 如 int nums[];
大多數(shù)Java程序員喜歡使用第一種風格,因為它把數(shù)據(jù)類型int[],和變量名num分開了.
數(shù)組的初始化
Java中數(shù)組必先初始化后才能使用.
初始化就是給數(shù)組元素分配內(nèi)存,并為每個元素賦初始值。
初始化數(shù)組的兩種方式:
- 靜態(tài)初始化:
語法格式:類型[] 數(shù)組名 = new 數(shù)組類型[]{元素1,元素2,元素3,...元素n};
簡化語法:類型[] 數(shù)組名 = {元素1,元素2,元素3...元素n};
- 動態(tài)初始化:
如果我們事先不知道數(shù)組里存儲哪些數(shù)據(jù),只知道需要存儲數(shù)據(jù)的個數(shù),此時可以使用動態(tài)初始化方式。
動態(tài)初始化:初始化時由我們指定數(shù)組的長度,系統(tǒng)自動為數(shù)組元素分配初始值。
格式:類型[] 數(shù)組名 = new 數(shù)組類型[數(shù)組長度];
注意:無論,以哪種方式初始化數(shù)組,一旦初始化完成,數(shù)組的長度就固定了,不能改變,除非重新初始化。也就是說數(shù)組是定長的。
為什么Java里有基本數(shù)據(jù)類型和引用數(shù)據(jù)類型?
引用類型在堆里,基本類型在棧里。
??臻g小且連續(xù),往往會被放在緩存。引用類型cache miss率高且要多一次解引用。
對象還要再多儲存一個對象頭,對基本數(shù)據(jù)類型來說空間浪費率太高
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos下GitLab+Jenkins持續(xù)集成環(huán)境搭建(安裝jenkins)
這篇文章主要為大家詳細介紹了centos下搭建GitLab+Jenkins持續(xù)集成環(huán)境,安裝jenkins的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Idea創(chuàng)建多模塊maven聚合項目的實現(xiàn)
這篇文章主要介紹了Idea創(chuàng)建多模塊maven聚合項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12被遺忘的Java關(guān)鍵字transient的使用詳解
在 Java 中,transient 是一個關(guān)鍵字,用于指定一個類的字段(成員變量)在序列化時應(yīng)該被忽略。本文將通過示例為大家簡單講講transient的使用,需要的可以參考一下2023-04-04