首页 新闻 会员 周边

User user=null;和User user=new User();

0
[已解决问题] 解决于 2018-04-18 10:57

User user=null;和User user=new User(); 两者有什么区别,

  什么情况下 用前者  什么情况下用后者。求大神解答

不点江山的主页 不点江山 | 初学一级 | 园豆:200
提问于:2018-04-17 08:41

不是大神但我也差不多了解,回答一下吧,new就是在堆内存里申请一块内存,user()就是构造函数创建一个对象,加起来就是这块内存存了一个对象,然后把这块内存的地址赋给user,也叫user引用了这个对象。同理null赋给user就是user不引用任何。

ღ细嗅蔷薇 6年前

@ღ细嗅蔷薇: 什么情况下用前者,什么时候用后者啊?

不点江山 6年前

@不点江山: 不清楚,我还在入门阶段

ღ细嗅蔷薇 6年前
< >
分享
最佳答案
1

User user=null; 声明一个变量,类型为User,不创建新实例。

User user=new User(); 声明一个变量,类型为User,同时创建一个新实例。

实际上,第一种写法也可以只写 User user;

但是这样编译器可能会出现Warning,给个null空值,编译器就不会报警了。

 

第二种写法创建一个新实例,是需要消耗一点点的CPU资源和内存资源的,如果你不需要一个新实例,就用第一种方法。

区别就是这样了。

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30839 | 2018-04-17 09:38
其他回答(2)
1

应用场景:

  

User user=null;
List<User> users=new List<User>();
for(.....)
{
   user=new User();
    users.add(user);
}

这样的好处是 user类似一种指针,我每次循环,这个指针指向新的User地址这样在循环中不用每次生命新地址

赵大大 | 园豆:1 (初学一级) | 2018-04-17 09:14
0

具体要看情况而定,要使用user对象就要有他的实例化对象,如果之前有user对象了就使用第一种用来获取,否则就要使用第二种自己新建一个来用

小光 | 园豆:1766 (小虾三级) | 2018-04-17 10:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册