java中int double(包装类分别是Integer和Double,实际是一样的)分别占用的大小是4B 和8B
这里说的B,就是我们通常说的KB中的那个B,全称是Byte。
1B = 8bit。 所以我们通常会说int是32位,有时候又4字节
而String他是有char数组组成,一个长度为10的String,占用的char就是10个,一个char是2B。
所以看String占多少内存,需要知道String的长度
二问中:答案是可以的
摘自ObjectOutPutStream的API说明
FileOutputStream fos = new FileOutputStream("t.tmp")
ObjectOutputStream oos = new ObjectOutputStream(fos)
oos.writeInt(12345)
oos.writeObject("Today")
oos.writeObject(new Date())
oos.close()
栈内存放引用型变量,指向堆里面new出来的对象
堆内存放new出来的对象
方法只有一份用来共享,只有在执行的时候才在内存中分配空间,如图:
java中可以用.getBytes().length获取字符串占用内容的大小,原理是java中任何字符都采用Unicode编码,所以衡量占用内存大小采用占用的字节数。举例如下:
public class TestStringSize {
public static final void main(String[] args) {
System.out.println("占用内存大小:"+"学java".getBytes().length)
}
}
输出结果:
占用内存大小:6 byte