黑马程序员技术交流社区

标题: 两种定义变量方式的区别 [打印本页]

作者: 戴振良    时间: 2012-3-25 15:29
标题: 两种定义变量方式的区别
int [] array = {1,2,3,4};

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

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

String str = "你好";
String str = new String("你好");
作者: 李柯    时间: 2012-3-25 15:52
第一个问题:
1、前者只能在第一次初始化时使用,在运行时不能重新初始化

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

2.String str = new String("你好"); 这里共创建了两个对象,第一个是"你好",第二个是由new创建的,str为其引用。
作者: 李见黎    时间: 2012-3-25 18:50
功效是没有什么不同的,主要是看你的代码是否合乎规范。代码写多了,这种就不是快捷的问题,第一种的可读性不好,对以后的调试等都是不好的。
作者: 亚男    时间: 2012-3-26 02:13
我对沙发的内容作下补充,String str = new String(“你好”)
这个是先创建str引用,其次在堆中创建String对象,第三把str指向String创建的对象,而String str = "你好"是在常量池直接创建一个字符串常量,让str指向这个常量,
作者: 戴振良    时间: 2012-3-27 17:41
哦,原来如此,谢谢了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2