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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ☆╰學不会☆╮ 中级黑马   /  2013-10-22 18:13  /  1540 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ☆╰學不会☆╮ 于 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种
}
}
我有的时候 图省事就直接用第二种了 和第一种规范的相比 哪种更节省资源 效率更高。

评分

参与人数 1技术分 +1 收起 理由
李江 + 1 赞一个!

查看全部评分

6 个回复

倒序浏览
第二种写法属于匿名对象调用,虽然新new了一个对象 但是它并没有指向,当该语句结束,这个对象就已经变成垃圾。当你只要对该对象的方法只调用一次,可以使用匿名对象方法。或者把其作为一个实际参数传递。
比如
List<Student<String,int>> al = new List<Student<String,int>>();
al.add(new Student("zhangsan",19));

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
其实两种写法之间效率的差异很小。匿名对象可以节省代码,但是代码一多,又长的话,阅读性就相对差一些了。
回复 使用道具 举报
为了不给版主增加负担 改为提问结束  想问一下怎么才能更改帖子的状态,找了好久啊。就是没找到。。。
回复 使用道具 举报
我个人觉得, 用第一种和第二种 这两种方式, 主要是看对象调用里面的对象的成员, 如果只需要调用一次, 那么就用匿名对象,   但是要多次调用对象的方法, 那么还是用第一种,
回复 使用道具 举报
两种方式性能一样,因为只要new了一个新对象,都要在内存开辟一个空间,,都生成一个引用地址如:0x3243和0x5660

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

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

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

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 很给力!

查看全部评分

回复 使用道具 举报
李江 中级黑马 2013-10-22 21:50:58
7#
☆╰學不会☆╮ 发表于 2013-10-22 18:53
为了不给版主增加负担 改为提问结束  想问一下怎么才能更改帖子的状态,找了好久啊。就是没找到。。。 ...



楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马