黑马程序员技术交流社区

标题: 新建对象 [打印本页]

作者: ☆╰學不会☆╮    时间: 2013-10-22 18:13
标题: 新建对象
本帖最后由 ☆╰學不会☆╮ 于 2013-10-23 08:00 编辑

个人有个习惯 就是在新建对象的时候
public class DemoAA{
   public void met(){
     system.out.println("Hello World");
}
  public static void main(String[] args){
   //新建对象 调用方法
  Demo aa=new Demo();  //第1种
    aa.met();
    new Demo().met();     //第2种
}
}
我有的时候 图省事就直接用第二种了 和第一种规范的相比 哪种更节省资源 效率更高。

作者: 寻丶丶觅    时间: 2013-10-22 18:35
第二种写法属于匿名对象调用,虽然新new了一个对象 但是它并没有指向,当该语句结束,这个对象就已经变成垃圾。当你只要对该对象的方法只调用一次,可以使用匿名对象方法。或者把其作为一个实际参数传递。
比如
List<Student<String,int>> al = new List<Student<String,int>>();
al.add(new Student("zhangsan",19));
作者: 黄炳期    时间: 2013-10-22 18:43
其实两种写法之间效率的差异很小。匿名对象可以节省代码,但是代码一多,又长的话,阅读性就相对差一些了。
作者: ☆╰學不会☆╮    时间: 2013-10-22 18:53
为了不给版主增加负担 改为提问结束  想问一下怎么才能更改帖子的状态,找了好久啊。就是没找到。。。
作者: Simple_love    时间: 2013-10-22 19:00
我个人觉得, 用第一种和第二种 这两种方式, 主要是看对象调用里面的对象的成员, 如果只需要调用一次, 那么就用匿名对象,   但是要多次调用对象的方法, 那么还是用第一种,
作者: 深情小建    时间: 2013-10-22 21:44
两种方式性能一样,因为只要new了一个新对象,都要在内存开辟一个空间,,都生成一个引用地址如:0x3243和0x5660

第一种:把引用地址赋给了a 如:a=0x3243
第二种:内存引用地址生成了但是没有赋给谁

两种方式各用所用
当要多次使用这个对象的时候,第一种方式就比较适合了

当只要使用一次的时候,第二种方式就比较适用了。
例如作为一个参数传递的时候
List<Student<String,int>> al = new List<Student<String,int>>();
al.add(new Student("zhangsan",19));


作者: 李江    时间: 2013-10-22 21:50
☆╰學不会☆╮ 发表于 2013-10-22 18:53
为了不给版主增加负担 改为提问结束  想问一下怎么才能更改帖子的状态,找了好久啊。就是没找到。。。 ...



楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




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