java创建对象时,new 出一个对象 和 = null的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java创建对象时,new 出一个对象 和 = null的区别相关的知识,希望对你有一定的参考价值。
举个例子,有对夫妻要生孩子。如果已经生下来了,取名字叫“小明”,“小明”目前是真实存在这个世上,那就是new出来了。
如果还没生下来,只是去了个名字叫“小明”,目前并没有真正存在这个世上,那就是 = null。
new 出来的就已经是实体了,这个实体会占用内存的,并且是一个对象的形式存在。
null并不会占用内存,只是一个空的指向。 参考技术A new实例化了对象,而null没有。String a = new String();里的a其实是引用,有点像c里的指针。求采纳 参考技术B 如果你一开始不想初始化,那可以先不初始化,声明一下就好了
ArrayList<BookInfo> InfoList;
BookInfo bookinfo;
这里其实就是 = null,没有创建对象。
java-匿名对象
概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。
1. 创建匿名对象直接调用方法,没有变量名。
new Scanner(System.in).nextInt();
2. 一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。
new Scanner(System.in).nextInt(); new Scanner(System.in).nextInt();
小贴士:一个匿名对象,只能使用一次。
3. 匿名对象可以作为方法的参数和返回值
1.作为参数:
public class Test public static void main(String[] args) /* * //普通方式 Scanner sc = new Scanner(System.in); input(sc); */ // 匿名 input(new Scanner(System.in)); // 作为参数 public static void input(Scanner sc) System.out.println(sc); java.util.Scanner[delimiters=\\pjavaWhitespace+][position=0][match valid=false][need input=false][source closed=false] [skipped=false][group separator=\\,][decimal separator=\\.][positive prefix=][negative prefix=\\Q-
2.作为返回值
import java.util.Scanner; public class Test2 public static void main(String[] args) Scanner sc=getScanner(); // 作为返回值 public static Scanner getScanner() //普通方式 Scanner sc=new Scanner(System.in); return sc; //匿名 /* return new Scanner(System.in); */
以上是关于java创建对象时,new 出一个对象 和 = null的区别的主要内容,如果未能解决你的问题,请参考以下文章