集合对象的声明和初始化
需要實(shí)現(xiàn)的功能是從數(shù)據(jù)庫中查數(shù)據(jù)封裝為一個(gè)list集合,然后返回給前臺(tái)將數(shù)據(jù)顯示在表格中。
后臺(tái)在定義list集合時(shí)無意中發(fā)現(xiàn)兩種不同的寫法會(huì)有不同 的結(jié)果出現(xiàn),之前沒太注意這兩種寫法的區(qū)別,發(fā)現(xiàn)錯(cuò)誤之 后我查了一些資料,在這里總結(jié)一下:
1、List list = new ArrayList();//返回[]
2、List list;//返回null
獲取到的list均為空,在返回給前臺(tái)時(shí)第一種寫法會(huì)報(bào)空指 針異常,而第二種寫法直接返回?cái)?shù)據(jù)列表空白無數(shù)據(jù);
List list = null;是聲明了一個(gè)類型是List的變量,但是 他指向(或者說是持有)null(空指針)的引用,這時(shí)候他 什么都做不了;只有當(dāng)你給他實(shí)例化的時(shí)候,如下 list = new ArrayList() 或者 list = new LinkedList() 以后,才能確定他究竟是什么類型。
List list;是在棧區(qū)開辟一個(gè)空間放list引用,并沒有創(chuàng)建 對象所以不知道該list是ArrayList還是LinkedList。當(dāng)你 list= new ArrayList(); 就創(chuàng)建了ArrayList對象。并且把 開始創(chuàng)建的list引用指向這個(gè)對象。ArrayList和inkedList 都是List的實(shí)現(xiàn)類。
總結(jié)
以上是生活随笔為你收集整理的集合对象的声明和初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java并发编程】并发之痛 Threa
- 下一篇: JavaScript jQuery获取