java对象引用的大小 本帖最后由 sjkzc3 于 2013-05-07 15:21:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 推荐这本书: http://book.jd.com/10697182.html 我是这样理解的,你看一下对不对啊?:1. 对象的引用(a1)应该申请一个内存,它的大小是4个字节2. new A()的这个具体的对象,应该是在堆里面,其大小应该按照它的基本数据类型+其他的引用数据类型的大小3. a1 4个字节,它是在堆里面还是在栈里面,还是都有可能?这个不确定。如果a1是局部变量,它是否在栈里面?如果a1是类的成员变量,它是否在栈里面? 多谢推荐这本书《深入理解java 虚拟机》本人刚刚开始JAVA之旅,看来要读的书很多啊你看一下楼上,我的第一印象,是否正确啊?多谢 引用的这段文字说的虽然非常好,但是不一定所有的java程序员能够看懂,如果是学过c的人一看就很容易明白。但是如果只学习过java的人可能本来理解的还挺好,结果越看越糊涂。 这类概念,在JAVA项目中用到的多不? 在32位JVM中,引用的大小是32bit,最多使用4G内存;在64位JVM中,假设你不使用-XX:+UseCompressedOops选项,你的引用大小是64bit,可以使用。。我都不想数有多少内存;假设你使用了-XX:+UseCompressedOops,那引用的大小是32bit,但是你可以使用最多32G的内存。原理是它把所指向的内存地址缩小了8倍(相对32位JVM里的引用来说)。也就是说,这里一个引用指向地址4,实际上指向的是内存地址32。所以如果你有很多不足8字节的小对象,会造成客观的资源浪费。但是一般会为了性能,将这个选项打开(JavaSE6u23之后就是默认打开了,可以用-XX:-UseCompressedOops关闭) 在实际编程中,你只要知道java中拿到的都是对象引用,接触不到对象本身,这些引用使用完以后,会有垃圾收集器自动回收堆内存 多谢推荐这本书《深入理解java 虚拟机》本人刚刚开始JAVA之旅,看来要读的书很多啊你看一下楼上,我的第一印象,是否正确啊?多谢没什么java基础的话,看这本书会比较晕的,而且过于深入底层的知识,会影响你对java语法的认知,因为class指令与Java语法的出入实在是比较大。建议你先从基本的开始入手,先熟悉java原生的语法,再深入研究jvm体系与class指令集,一步一步来,一口吃不成胖子。 你的意思是:1. 在64位JVM中,使用-XX:+UseCompressedOops这个选项,每一个引用的大小是32bit?如果不使用,引用的大小是64bit.2. 但是引用指向的地址的大小,也就是对象的大小,不是由引用来决定的吧? 怎么理解引用指向地址是4,实际上指向32?你的意思是如果引用这个指针移动一位,增加的是32个bit吗?多谢。 多谢推荐这本书《深入理解java 虚拟机》本人刚刚开始JAVA之旅,看来要读的书很多啊你看一下楼上,我的第一印象,是否正确啊?多谢没什么java基础的话,看这本书会比较晕的,而且过于深入底层的知识,会影响你对java语法的认知,因为class指令与Java语法的出入实在是比较大。建议你先从基本的开始入手,先熟悉java原生的语法,再深入研究jvm体系与class指令集,一步一步来,一口吃不成胖子。多谢你的建议。以前看视频的老师也说,学习编程不能太钻牛角尖^^我的意思也是就题论题,看看能讨论多深啊。呵呵。我也会及时结贴的。 Good,解释的很清楚。但是我想知道的具体大小^^ 关于表达式求值的,求帮忙 小弟请教个关于子类父类和泛型的问题~ java 按钮问题 问个比较菜的问题,求教该如何输出sys_dTime不报错,分数有限,各位多多包涵小弟了(以解决,大家千万别看了- -) 外企面试题两道 int到char类型转换 (新人高分请教)JDBC数据库问题 关于Serializable,为什么实现Serializable就能够实现序列化 再问RMI问题,如何在程序里指定*.policy? Jbuilder3.0的一个小问题 求一个季度有几个星期 People
1. 对象的引用(a1)应该申请一个内存,它的大小是4个字节
2. new A()的这个具体的对象,应该是在堆里面,其大小应该按照它的基本数据类型+其他的引用数据类型的大小
3. a1 4个字节,它是在堆里面还是在栈里面,还是都有可能?这个不确定。
如果a1是局部变量,它是否在栈里面?
如果a1是类的成员变量,它是否在栈里面?
本人刚刚开始JAVA之旅,看来要读的书很多啊
你看一下楼上,我的第一印象,是否正确啊?
多谢
本人刚刚开始JAVA之旅,看来要读的书很多啊
你看一下楼上,我的第一印象,是否正确啊?
多谢
没什么java基础的话,看这本书会比较晕的,而且过于深入底层的知识,会影响你对java语法的认知,因为class指令与Java语法的出入实在是比较大。
建议你先从基本的开始入手,先熟悉java原生的语法,再深入研究jvm体系与class指令集,一步一步来,一口吃不成胖子。
1. 在64位JVM中,使用-XX:+UseCompressedOops这个选项,每一个引用的大小是32bit?如果不使用,引用的大小是64bit.
2. 但是引用指向的地址的大小,也就是对象的大小,不是由引用来决定的吧? 怎么理解引用指向地址是4,实际上指向32?你的意思是如果引用这个指针移动一位,增加的是32个bit吗?
多谢。
本人刚刚开始JAVA之旅,看来要读的书很多啊
你看一下楼上,我的第一印象,是否正确啊?
多谢
没什么java基础的话,看这本书会比较晕的,而且过于深入底层的知识,会影响你对java语法的认知,因为class指令与Java语法的出入实在是比较大。
建议你先从基本的开始入手,先熟悉java原生的语法,再深入研究jvm体系与class指令集,一步一步来,一口吃不成胖子。
多谢你的建议。
以前看视频的老师也说,学习编程不能太钻牛角尖^^
我的意思也是就题论题,看看能讨论多深啊。呵呵。
我也会及时结贴的。
但是我想知道的具体大小^^