java基础之java中的基本数据类型
生活随笔
收集整理的這篇文章主要介紹了
java基础之java中的基本数据类型
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
java基礎(chǔ)之java中的基本數(shù)據(jù)類型
???????? 學(xué)習(xí)java一段時(shí)間了,使用java也差不多一年多了,可是對于后續(xù)的java的學(xué)習(xí)真的是后勁不足,或者是說懶惰吧,回想一下這一年多,用java最多的就是Android開發(fā),說內(nèi)心話,在使用java的時(shí)候,好多基礎(chǔ)的東西卻沒有認(rèn)真去總結(jié)。學(xué)而不思則惘,思而不學(xué)則殆。
有必要總結(jié)下java的基礎(chǔ)知識了。
0.java中基本數(shù)據(jù)類型。
?? ?java中,基本數(shù)據(jù)類型主要有四類八種。
?? ?分別是
?? ?第一類:布爾型
?? ??? ?boolean 兩個(gè)值,true 或者 false。不像大多數(shù)其他語言,Java中有單獨(dú)的boolean類型,取值只有true 或者 false,且不能喝整數(shù)型互相轉(zhuǎn)化。根據(jù)Java虛擬機(jī)規(guī)范,boolean類型是沒有單獨(dú)的jvm指令去操作的,Java編程語言中操作boolean類型的值的表達(dá)式會被編譯成使用jvm的int類型的值,另外,jvm提供允許創(chuàng)建boolean數(shù)組,但是對boolean數(shù)組的訪問和修改是采用byte數(shù)組的指令。在Oracle實(shí)現(xiàn)的的JVM上,boolean數(shù)組被編碼為byte數(shù)組,每個(gè)元素占用一個(gè)字節(jié)。
?? ??? ?char 2個(gè)字節(jié),值得注意的是在C語言中,char是占1字節(jié)的,因此表達(dá)中文時(shí)需要使用兩個(gè)字符,char c = '中',這樣會出現(xiàn)亂碼的。在C語言中,char可以當(dāng)成byte用,而java里面卻不行。
?? ?第三類:整數(shù)型
?? ??? ?byte 1個(gè)字節(jié)?? ??? ?short 2個(gè)字節(jié)
?? ??? ?int 4個(gè)字節(jié)
?? ??? ?long 8個(gè)字節(jié)
?? ?第四類:浮點(diǎn)型
?? ??? ?float 4個(gè)字節(jié)
?? ??? ?double 8個(gè)字節(jié)
?? ?注意事項(xiàng):
?? ? 1.在聲明整形數(shù)字的時(shí)候,例如9999999999(大于9個(gè)9的時(shí)候),需要在數(shù)字后面加上l或者L,否則編譯器會報(bào)錯(cuò),因?yàn)閖ava語言默認(rèn)整形數(shù)字是int類型的,而int類型的變量最大能表示出9個(gè)9,(但是最大值可以表示2147483647即10位數(shù)),因此在定義long變量的時(shí)候,如果后面的字面量沒有超過int的最大值的時(shí)候,是沒有問題的,編譯器自動轉(zhuǎn)型為long型,但是超出int的最大值的時(shí)候就必須在字面量的后面加上l或者L了。
?? ? long val = 999999999;(9個(gè)9,編譯器通過,因?yàn)楹竺孀置媪课闯鰅nt型的最大值)
?? ? long val = 9999999999;(10個(gè)9,編譯器不通過)
?? ? long val = 9999999999L;(通過)
?? ? 2.在聲明小數(shù)形數(shù)字的時(shí)候,例如2.5,如果是float型的,要在數(shù)字后面加上f或者F,否則編譯器會報(bào)錯(cuò),因?yàn)閖ava語言默認(rèn)小數(shù)型數(shù)字是double型的
?? ? 例如: float val = 2.5f;(或者2.5F)
?? ? ?? ??? ??? double val = 2.5;
?? ? 以下是代碼實(shí)例:
?? public class Test {/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("char型" + Character.SIZE / 8 + "字節(jié)"); System.out.println("---------------------------------"); System.out.println("byte型" + Byte.SIZE / 8 + "字節(jié)"); System.out.println("short型" + Short.SIZE / 8 + "字節(jié)"); System.out.println("int型" + Integer.SIZE / 8 + "字節(jié)"); System.out.println("long型" + Long.SIZE / 8 + "字節(jié)"); System.out.println("---------------------------------"); System.out.println("float型" +Float.SIZE / 8 + "字節(jié)"); System.out.println("double型" + Double.SIZE / 8 + "字節(jié)"); } }
輸出:
char型2字節(jié) --------------------------------- byte型1字節(jié) short型2字節(jié) int型4字節(jié) long型8字節(jié) --------------------------------- float型4字節(jié) double型8字節(jié)
| boolean | 1 字節(jié)/4字節(jié)(不確定) |
| byte | 1字節(jié) |
| short | 2字節(jié) |
| int | 4字節(jié) |
| long | 8字節(jié) |
| float | 4字節(jié) |
| double | 8字節(jié) |
1.java中的引用數(shù)據(jù)類型
java中的引用類型的變量是存放在棧內(nèi)存中的,而new出來的對象卻是放在堆內(nèi)存的。
例如: int[] a = new a[]{1,2,3,4};
?? ?其中變量a是存放在棧內(nèi)存中的,后面new 出來的? a[]{1,2,3,4}這個(gè)對象是存放在堆內(nèi)存中的。
除此之外,java中的引用還有具體的分類
java中按照對對象引用的強(qiáng)弱關(guān)系分類依次為:
1.強(qiáng)引用 StrongReference
2.軟引用 SoftReference
3.弱引用 WeakReference
4.虛引用 PhantomReference
具體關(guān)于java引用的內(nèi)容我將進(jìn)一步學(xué)習(xí),并更新到我的博客。
?
轉(zhuǎn)載于:https://www.cnblogs.com/Spground/p/8536171.html
總結(jié)
以上是生活随笔為你收集整理的java基础之java中的基本数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模拟运行600万年 数据0损坏!Soli
- 下一篇: 剧版《1818黄金眼》开机!网友:谁演紫