黑马程序员技术交流社区
标题:
关于java中如何求一个基本类型占用多少个字节数的问题
[打印本页]
作者:
曾祥彬
时间:
2012-6-18 08:02
标题:
关于java中如何求一个基本类型占用多少个字节数的问题
本帖最后由 曾祥彬 于 2012-6-18 16:42 编辑
在以前学习C或C++的时候,有一个函数sizeof可以求的一个数据项分配的字节数,为什么在java里面没有提供这样的函数?
那么我们如何知道一个数据分配项占用了多少个字节呢?难道每次不确定的时候都要翻文档查询吗?
作者:
闾丘日月
时间:
2012-6-18 08:03
java里面基本数据类型所占有的字节数都是一样的哈,与机器无关。
作者:
余清兰
时间:
2012-6-18 09:07
java中没有这样的功能计算占用字节数的,字节数都是固定的,查下表
byte b; 1字节 short s; 2字节
int i; 4字节 long l; 8字节
char c; 2字节(C语言中是1字节)
float f; 4字节 double d; 8字节
boolean bool; false/true
汉字是占两字节,可以通过下面代码来实验
class BytesDemo {
public static void main(String[] args) {
String ChineseCharacter="我";
System.out.println(ChineseCharacter.getBytes().length);
}
}
运行后的结果输出为2
作者:
刘笑
时间:
2012-6-18 09:15
C中要使用sizeof主要是因为C程序员要自己管理堆内存的分配和释放,在使用malloc来获取堆内存时,我们必须知道要创建的对象的具体大小,才能根据对象的具体大小从堆中分配相应大小的动态内存,而获取对象大小这个工作就是通过sizeof来完成的。而java中的内存管理任务直接交给了JVM。因此,java中不存在类似sizeof的操作符。
如果楼主真的想实现sizeof功能,可以使用新提供的Instrument包。通过这个包提供的接口和类,我们可以很容易获取一个对象实际占用的内存大小。不过这个得jdk5.0以上。
作者:
sbeeqnui1987
时间:
2012-6-18 09:23
int 4个字节(32bit) -2,147,483,648到2,147,483,647 默认为0
short 2个字节(16bit) -32,768到32,767 默认为0
long 8个字节(64bit) -9,223,372,036,854,775,808L到9,223,372,036,854,775,807L 默认为0L
byte 1个字节(8bit) -128到127 默认为0
float 4个字节(32bit) 约+—3.40282347E+38F(6~7个有效的十进制数位) 默认为0.0F
double 8个字节(64bit) 约+-1.79769313486231570E+308(15个有效数位) 默认为0.0D
作者:
常佳杰
时间:
2012-6-18 09:31
int 4个字节(32bit),short 2个字节(16bit) , long 8个字节(64bit) ,byte 1个字节(8bit) ,
float 4个字节(32bit) ,double8个字节(64bit),char c; 2字节(C语言中是1字节),汉字占两个字节
这些都是确定的,记住就行了
作者:
车风波
时间:
2012-6-18 11:30
刘笑 发表于 2012-6-18 09:15
C中要使用sizeof主要是因为C程序员要自己管理堆内存的分配和释放,在使用malloc来获取堆内存时,我们必须知 ...
学习了:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2