list和其对象之间的关系

java基础-list

## 一、 List Alt text

朋友说这个地方不太清楚,我就详细写一下

package rui.list;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

public class TestList {
	
	private  List<String> list1;
	
	private List<String> list2=null;
	
	private List<String> list3=new ArrayList<>();
	
	
}

首先可以知道的一些东西就是,这些现在都是成员变量

至于说这三个区别是什么,现在先说第一个

1.1 List<?> list

List<String> list1;

第一个仅仅是一个空的地址,没有指向任何一个对象,这种模式最常用的地方是就使用spring注入的时候,才出现的最为常见的一个例子。

当然这种例子有个比较有意思的地方就是如果作为方法内部的变量,即局部变量

	@Test
	public void testList(){
		String str="test";
		List<String> list4;
		list4.add(str);
	}

Alt text

就会出现这个错误,然后执行这个解决方法就会变成

Alt text

	@Test
	public void testList(){
		String str="test";
		List<String> list4 = null;
		list4.add(str);
	}

这就引出了我要说的第二种

1.2 List<?> list =null

这个和第一种的区别就是是否指向一个空指针,其他我没有碰到任何区别,这个其实就是上面的那个的解决方法

这两种都一个共同的问题就是会出现异常

Exception in thread "main" java.lang.NullPointerException
	at rui.List.TestList.main(TestList.java:21)

1.3 List<?> list= new ArrayList<>()

这种常用于成员方法内部,这个地址有了一个对象。

和前面两种的区别就是什么什么时候地址和对象产生关联,这个最好看看单例模式中的懒汉式和饿汉式的区别,能够非常明显的看出两者之间的区别

转载于:https://my.oschina.net/dylw/blog/694938

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值