java sizeof是什么?讓我們一起來了解一下吧!
java sizeof是一個(gè)特殊的概念。在C/C++中,當(dāng)我們想知道一個(gè)對象或者一個(gè)原始數(shù)據(jù)類型所占用的內(nèi)存大小時(shí),只需簡單調(diào)用sizeof操作符即可,但是,在java中是沒有相應(yīng)的操作符或者方法來直接完成相應(yīng)功能的。sizeof 在C/C++得到大量的運(yùn)用,是程序員必不可少的工具之一。
sizeof在C語言中是一個(gè)判斷數(shù)據(jù)類型長度符號的關(guān)鍵詞,它的功能是返回一個(gè)對象或者類型所占的內(nèi)存字節(jié)數(shù)。而java的內(nèi)存管理都有虛擬機(jī)負(fù)責(zé)。所以java要模擬c中對sizeof的實(shí)現(xiàn)。
我們首先需要了解Java具有哪些基本數(shù)據(jù)類型:
1.int 32bit
2.short 16bit
3.long 64bit
4.byte 8bit
5.char 16bit
6.float 32bit
7.double 64bit
8.boolean 1bit
Java基本數(shù)據(jù)類型封裝類:
1.Integer // 4 byte
2.Short // 2 byte
3.Long // 8 byte
4.Byte // 1 byte
5.Character: // 2 byte
6.Float // 4 byte
7.Double // 8 byte
檢測類型代碼如下:
?private?static?void?calSize()?{?? ????????System.out.println("Integer:?"?+?Integer.SIZE/8);???????????//?4?? ????????System.out.println("Short:?"?+?Short.SIZE/8);???????????????//?2?????? ????????System.out.println("Long:?"?+?Long.SIZE/8);?????????????????//?8?? ????????System.out.println("Byte:?"?+?Byte.SIZE/8);?????????????????//?1?? ????????System.out.println("Character:?"?+?Character.SIZE/8);???????//?2?? ????????System.out.println("Float:?"?+?Float.SIZE/8);???????????????//?4?? ????????System.out.println("Double:?"?+?Double.SIZE/8);?????????????//?8??? }
檢測代碼如下:
?private?static?void?calSize2()?{?? ????????runGC();?? ? ????????long?heap1?=?0;?? ????????final?int?count?=?100000;?? ????????Object[]?objs?=?new?Object[count];?? ? ????????for(int?i=-1;?i以上就是小編今天的分享了,希望可以幫助到大家。