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的区别的主要内容,如果未能解决你的问题,请参考以下文章

java创建对象时,new 出一个对象 和 = null的区别

Java 对象创建过程

Java内存区域与内存溢出异常---对象的创建

java每次都new出个对象干嘛

java-匿名对象

string创建了多少个对象 Java