A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴振良 黑马帝   /  2012-3-25 15:29  /  1833 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int [] array = {1,2,3,4};

int [] array = new int[]{3,4,5};

这两种定义方式有什么不同吗?如果没有是不是用第一种比较方便快捷呢?还有下面的也是,有区别吗:

String str = "你好";
String str = new String("你好");

4 个回复

倒序浏览
第一个问题:
1、前者只能在第一次初始化时使用,在运行时不能重新初始化

2、后者可以在运行时分配存储空间并初始化,并可以运行过程中动态改变这个数组对象
第二个问题:
1.String str = "你好"; 是在堆中构建一个String对象"你好",str为其引用。

2.String str = new String("你好"); 这里共创建了两个对象,第一个是"你好",第二个是由new创建的,str为其引用。

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1 回答的不全面哦,亲

查看全部评分

回复 使用道具 举报
功效是没有什么不同的,主要是看你的代码是否合乎规范。代码写多了,这种就不是快捷的问题,第一种的可读性不好,对以后的调试等都是不好的。
回复 使用道具 举报
我对沙发的内容作下补充,String str = new String(“你好”)
这个是先创建str引用,其次在堆中创建String对象,第三把str指向String创建的对象,而String str = "你好"是在常量池直接创建一个字符串常量,让str指向这个常量,
回复 使用道具 举报
哦,原来如此,谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马