下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java數據類型數據長度一2022-05-18 11:23數據類型在計算機語言里面,是對內存位置的一個抽象表達方式,可以理解為針對內存的一種抽象的表達方式。接觸每種語言的時候,都會存在數據類型的認識,有復雜的、簡單的。各種數據類型都需要在學習初期去了解,Java是強類型語言,所以Java對于數據類型的標準相對嚴格。數據類型是語言的抽象原子概念,可以說是語言中最根本的單元定義, 在Java里面,本質上數據類型分為兩種:簡單類型和復雜類型。簡單類型:簡單數據類型是不能簡化的、內置的數據類型、由編程語言本身定義,它表示了真實的數字、字符和整數。復雜類型:Java語言本身不支持 C+中的結構struc
2、t 或聯合union數據類型,它的 復合數據類型一般都是通過類或接口進行構造,類提供了捆綁數據和方法的方式,同時可以針對程序外部進行信息隱藏。i.Java 中的根本類型:1概念:Java中的簡單類型從概念上分為四種:實數、整數、字符、布爾值。但是有一點需要說明的是,Java里面有八種原始類型,其列表如下:實數:double、float整數:byte、short、int 、long字符:char布爾值:boolean復雜類型和根本類型的內存模型本質上不一樣,簡單數據類型的存儲原理:所有的簡單數據類型不存在“引用概念,簡單數據類型直接存儲在內存中的內存棧上,數據本身的值存儲在??臻g里面,而 Jav
3、a語言里面只有這八種數據類型是這種存儲模型;而其他的只要是繼承于Object類的復雜數據類型都是按照Java里面存儲對象的內存模型來進行數據存儲的,使用Java內存堆和內存棧來進行這種類型的數據存儲,簡單地 講,“引用是存儲在有序的內存棧上的,而對象本身的值存儲在內存堆上的。2原始類型特征:Java的簡單數據講解列表如下:int : int為整數類型,在存儲的時候,用 4個字節(jié)存儲,范圍為-2,147,483,648至U2,147,483,647 ,在變量初始化的時候, int類型的默認值為 0。short : short也屬于整數類型,在存儲的時候,用2個字節(jié)存儲,范圍為-32,768到32
4、,767,在變量初始化的時候,short類型的默認值為0, 一般情況下,因為Java本身轉型的原因,可以直接寫為0。Iong : long也屬于整數類型,在存儲的時候,用8個字節(jié)存儲,范圍為-9,223,372,036,854,775,808至U 9,223,372,036, 854,775,807,在變量初始化的時候,long類型的默認值為 0L或0l,也可直接寫為0。byte : byte同樣屬于 整數類型,在存儲的時候,用 1個字節(jié)來存儲,范圍為-128到127, 在變量初始化的時候,byte類型的默認值也為 0。float : float屬于實數類型,在存儲的時候,用4個字節(jié)來存儲,范
5、圍為 32位IEEEE 754單精度范圍,在變量初始化的時候,float的默認值為0.0f或0.0F,在初始化的時候可以寫0.0。double : double同樣屬于 實數類型,在存儲的時候,用8個字節(jié)來存儲,范圍為64位IEEE 754雙精度范圍,在變量初始化的時候,double的默認值為0.0。char : char屬于字符類型,在存儲的時候用2個字節(jié) 來存儲,因為Java本身的字符集不是用ASCII碼來進行存儲,是使用的16位Uni code字符集,它的字符范圍即是Uni code的字符范圍,在變量初始化的時候,char類型的默認值為U0000'。boolean : boole
6、an屬于布爾類型,在存儲的時候不使用字節(jié),僅僅使用1位來存儲,范圍僅僅為0和1,其字面量為true和false,而boolean變量在初始化的時候變量的默認值為false。$提供一個字面量賦值的例子package org.susan.java.basic;public classAssig nTester public static voidmain String argsint x,y; /定義x,y變量float f = 12.34f;/定義float 類型的變量并賦值double w = 1.234; /定義double類型變量并且賦值 boolean flag = true ;/ 指定
7、變量 flag 為 boolean 型,且賦初值為 truechar c ; /定義字符型變量 cStringstr ;/定義字符串變量strStringstr1 =" Hi " /指定變量str1 為String 型,且賦初值為 Hic ='A' /給字符型變量c賦值'A'str =" bye "/給字符串變量 str賦值"bye"x = 12 ;/給整型變量 x賦值為12y = 300;/給整型變量 y賦值為3003自動拆箱AutoBox:Java里面,每一種原始類型都對應著相應的包裝類型,在JDK
8、1.5之前不包含 JDK1.5,當包裝類和原始類型進行相互轉換的時候,需要調用包裝類型的方法進行轉換,不能通過操作符進行直接的計算。下邊是一個原始類型和包裝類型的一個對應表:原始類型對應的包裝類型默認值存儲格式數據范圍shortjava .lang.Short02個字節(jié)-32,768 到 32767intjava .lang.In teger04個字節(jié)-2,147,483,648 到 2,147,483,647bytejava .lang.Byte01個字節(jié)-128 到 127charjava .lang.Characteru00002個字節(jié)Unicode的字符范圍longjava .lang
9、.Lo ng0L 或 0l8個字節(jié)-9,223,372,036,854,775,808至U 9,223,372,03floatjava .lang.Float0.0F 或 O.Of4個字節(jié)32位IEEEE 754單精度范圍doublejava .lang.Double0.0 或 0.0D(d)8個字節(jié)64位IEEE 754雙精度范圍boolea njava .lang.Boolea nfalse1位true(1)或 false(0)簡單看看下邊這段代碼:package org.susan.java.basic;public class AutoBoxTester public static v
10、oidmain( Stringargs)In teger in teger = new In teger(12);int in teger2 = 33; System.out .println(integer + integer2);這段代碼在JDK 1.5版本以上可以通過編譯,而且不會報錯,運行結果如下輸岀:45但是如果這段代碼在JDK 1.4上邊編譯就會有問題了,因為在JDK 1.4的標準里面Integer屬于一個包裝類型,而int是原始類型,如果一個包裝類型和原始類型要進行想對應的運算的時 候,需要進行轉換操作,直接將In teger類型轉換稱為原始類型操作,否那么二者是不允許相加的,可
11、以試試將上邊代碼用1.4版本進行編譯:javac -source 1.4 AutoBoxTester.java就會收到下邊的異常:AutoBoxTester.java:5: operator + cannot be applied to java .lang.ln teger, intSystem.out.pr intln (i nteger + in teger2);為什么呢?其實編譯器給的信息很明顯,使用JDK 1.5進行編譯可以直接通過而且不會報錯,是因為JDK 1.5提供了自動拆箱和自動裝箱的功能,而JDK1.4里面如果要使得上邊的代碼段可以編譯通過,必須做一個簡單的修改:public
12、 class AutoBoxTester public static voidmain( Stringargs)In teger in teger = new In teger(12);int in teger2 = 33;System.out .println(Value() + integer2);改成上邊代碼段了過后,在JDK 1.4平臺下就可以得到輸岀:45從上邊的例子可以看岀,在JDK 1.5之前,如果要針對包裝類進行數值計算,必須要將包裝類直接轉化稱為原始類型,否那么操作符本身是不會支持包裝類的操作的,但是在JDK 1.5以及以后就沒有這個限制了。【簡 單總結:自動拆箱的意思就是不需要經過用戶手工編程,編譯器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 線上課程設計制作平臺
- 2025版電動快艇買賣及售后服務協議3篇
- 2025年度消防應急照明系統(tǒng)安裝勞務分包合同范本2篇
- 2024版還款協議書范例
- 自動采摘機課程設計
- 二零二五年度基礎工程基樁檢測專項合同2篇
- 2025版家教薪資福利待遇聘用合同細則3篇
- 2025年度智能交通產業(yè)股權投資三方協議3篇
- 2024年高速公路施工合作協議5篇
- 網絡嗅探器課課程設計
- 王牌電話交換機說明書
- 列管式換熱器-換熱面積計算
- 10個地基基礎工程質量通病及防治措施
- 25m預應力混凝土簡支T梁橋設計(共30頁)
- 籃球校本課程教案
- 高一學生文理分班意向表
- 高等傳熱學部分答案
- 地球物理學進展投稿須知
- 機床精度檢驗標準 VDI3441 a ISO230-2
- 解析電力施工項目的信息化管理
- 火炬介紹 音速火炬等
評論
0/150
提交評論