Java数组初始化大小为零
发布时间:2020-12-14 16:46:22 所属栏目:Java 来源:网络整理
导读:在 java中声明数组时,我们必须使用new关键字动态分配内存. class array{ public static void main(String ars[]) { int A[] = new int[10]; System.out.println(A.length); }} 以上代码将创建一个包含10个元素的1D数组,每个元素4个字节. 输出为10. 但是当您
在
java中声明数组时,我们必须使用new关键字动态分配内存.
class array { public static void main(String ars[]) { int A[] = new int[10]; System.out.println(A.length); } } 以上代码将创建一个包含10个元素的1D数组,每个元素4个字节. class array { public static void main(String ars[]) { int A[] = new int[0]; System.out.println(A.length); } } 输出为0.我想知道当你写新的int [0]时,Java会为数组分配一些内存吗?如果是多少? 解决方法
是的,它分配一些内存,但数量因JVM实现而异.你需要以某种方式代表:
>一个唯一的指针(使数组是!=每隔一个新的int [0]),所以至少要有1个字节 JVM可以执行各种优化(如果尚未GC /重新定位,则从对象指针导出系统散列代码,使用单个位来表示未锁定的对象,使用单个位来表示空数组)等等),但它仍然需要分配一些内存. 编辑:例如,按照this post上的步骤,我的JVM报告新的int [0]的大小为16,而对于新的int [4]则为32. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 处理器核心数与线程池的大小
- java – 如何基于两点旋转图像
- java – 在运行时创建的对象中使用自动装配的bean
- java – 为什么JodaTime和Calendar返回不同的结果
- Spring boot + mybatis + Vue.js + ElementUI 实现数据的增
- java – 在Struts 2中使用Ajax URL调用一个动作
- java – 运行Google Compute Engine实例的GAE开发服务器
- java 在Jetty9中使用HttpSessionListener和Filter
- 为什么Java ImageIO平滑JPEG颜色
- java – 数字文字后缀大小写的编码指南