java中数组可以使用new分配内存空间,也可以边声明边赋值.区别是什么

Sakura xu 2015-10-14 07:56:59
一:使用数组可以 1声明数组 int[ ]a;
2分配空间a=new int[3];
3赋值 a[0]=8;
4处理a[1]=a[0]*3;
二:数组使用还可以边赋值边声明
eg:
int [ ]score ={11,12,23];
在二中没有体现分配空间的问题,想知道一种分配空间的意义,初学者,求指导
...全文
364 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuangqingch 2015-10-14
  • 打赏
  • 举报
回复
a[99]
zhuangqingch 2015-10-14
  • 打赏
  • 举报
回复
从本质上讲,其实楼主说的这2种并没有什么区别。 在第2种创建方式中,隐含了你上述描述的第一种中涉及的大部分直接相关的操作。 int [ ]score ={11,12,23];在运行期执行的操作为: 1、创建一个引用变量score (引用地址为为null) 2、请求分配24个字节大小空间(3个Int)【PS:实际不止24个字节】,更细分的话为:24*8bit 即184位,每位默认值为0。这也是为什么int[] a = new int[100]; 声明后,a[0]~a[100]每个元素默认值为0的原因。 此操作相当于执行score=new int[3] , 3、针对每一个数组元素赋值:a[0] = 11; a[1] = 12,a[2]=23 4、将数组对象(数组本身也是一个对象)内存地址赋值给score 在实际代码编写过程中,以下3种情况都有使用。具体看使用场景。 1、先声明一个空对象(int[] s; 或者 int[] s = null) 2、声明并分配默认值(int[] s = new int[5]) 3、声明并分配指定值(int[] s = {1,2,3})

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧