User user=null;和User user=new User(); 两者有什么区别,
什么情况下 用前者 什么情况下用后者。求大神解答
User user=null; 声明一个变量,类型为User,不创建新实例。
User user=new User(); 声明一个变量,类型为User,同时创建一个新实例。
实际上,第一种写法也可以只写 User user;
但是这样编译器可能会出现Warning,给个null空值,编译器就不会报警了。
第二种写法创建一个新实例,是需要消耗一点点的CPU资源和内存资源的,如果你不需要一个新实例,就用第一种方法。
区别就是这样了。
应用场景:
User user=null; List<User> users=new List<User>(); for(.....) { user=new User(); users.add(user); }
这样的好处是 user类似一种指针,我每次循环,这个指针指向新的User地址这样在循环中不用每次生命新地址
具体要看情况而定,要使用user对象就要有他的实例化对象,如果之前有user对象了就使用第一种用来获取,否则就要使用第二种自己新建一个来用
不是大神但我也差不多了解,回答一下吧,new就是在堆内存里申请一块内存,user()就是构造函数创建一个对象,加起来就是这块内存存了一个对象,然后把这块内存的地址赋给user,也叫user引用了这个对象。同理null赋给user就是user不引用任何。
– ღ细嗅蔷薇 6年前@ღ细嗅蔷薇: 什么情况下用前者,什么时候用后者啊?
– 不点江山 6年前@不点江山: 不清楚,我还在入门阶段
– ღ细嗅蔷薇 6年前