亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

2者基本區(qū)別解析 java引用傳遞和值傳遞的區(qū)別


2者基本區(qū)別解析 java引用傳遞和值傳遞的區(qū)別

文章插圖
Java基本類型哪些,所占字節(jié)byte :1個字節(jié)short :2個字節(jié)char :2個字節(jié)int :4個字節(jié)long :8個字節(jié)float :4個字節(jié)double :8個字節(jié)java集合以及底層原理Java集合框架的根接口有Collection和Map 。Collection根接口包含List和Set二個子接口 。
List接口
它的特點是:元素有序、且可重復(fù),主要包含三個實現(xiàn)類:ArrayList,vector,LinkedList ArrayList的特點:底層是數(shù)組,線程不安全,查找快,增刪慢(數(shù)組的特點) 。ArrayList的底層實現(xiàn)原理:通過ArrrayList空參構(gòu)造器創(chuàng)建對象 。底層創(chuàng)建一個長度為10的數(shù)組,當(dāng)我們向數(shù)組中添加11個元素時,底層會進行擴容,擴容為原來的1.5倍(創(chuàng)建一個新的數(shù)組,長度為原數(shù)組長度的1.5倍,將原數(shù)組復(fù)制到新數(shù)組中) 。vector的特點:古老的實現(xiàn)類,底層是數(shù)組,線程安全的,JDK1.0就有了,Vector總是比ArrayList慢,所以盡量避免使用 。LinkedList的特點:底層是使用雙向鏈表 。增刪快,查找慢 。Set接口
它的特點:無序性:通過HashCode方法算出的值來決定在數(shù)組中存放的位置;不可重復(fù)性:進行equals方法比較,結(jié)果為true則兩個數(shù)據(jù)相同,若為false則不同 。主要包含三個實現(xiàn)類:HashSet,LinkedHashSet,TreeSet HashSet特點:線程不安全,集合元素可以為null,不能保證元素的排列順序 HashSet的底層實現(xiàn)原理:當(dāng)向HashSet添加數(shù)據(jù)時,首先調(diào)用HashCode方法決定數(shù)據(jù)存放在數(shù)組中的位置,該位置上沒有其他元素,則將數(shù)據(jù)直接存放,若該位置上有其他元素,調(diào)用equals方法進行比較 。若返回true則認(rèn)為兩個數(shù)據(jù)相同,若返回false,則以鏈表的形式將該數(shù)據(jù)存在該位置上,(jdk1.8)如果數(shù)量達(dá)到8則將鏈表換成紅黑樹 。HashSet的底層就是一個HashMap,向HashSet中添加的數(shù)據(jù)實際上添加到了HashMap中的key里 。所以HashMap的key可以看成是Set的集合 。LinkedHashSet特點:繼承了HashSet,底層實現(xiàn)原理和HashSet一樣,可以安照元素添加的順序進行遍歷根據(jù)元素的hashCode值來決定元素的存儲位置,它維護了一張鏈表該鏈表記錄了元素添加的順序 。底層就是一個LinkedHashMap 。TreeSet特點:底層為紅黑樹;可以安照指定的元素進行排序;TreeSet中的元素類型必須保持一致,底層就是TreeMap 。TreeSet必須(自然排序)實現(xiàn)Comparable接口,重寫compareTo()方法,按照某個屬性進行排序,相結(jié)合添加元素或(定制排序)創(chuàng)建一個Comparator實現(xiàn)類的對象,并傳入到TreeSet的構(gòu)造器中,按照某個屬性進行排序,向集合添加元素 。定制排序比自然排序靈活 。如果即有自然排序又有定制排序誰起作用? 定制排序Map接口
Map的特點:Map存儲的是鍵值對(key,value),Map中的key是無序的且不可重復(fù)的,所有的key可以看成是一個set集合 。Map中的key如果是自定義類的對象必須重寫hashCode和equals方法,Map中的value是無序的可重復(fù)的,所有的value可以看成是Collection集合,Map中的value如果是自定義類的對象必須重寫equals方法,Map中的鍵值對可以看成是一個一個的Entry.Entry所存放的位置是由key來決定的 。Entry是無序的不可重復(fù)的 。主要的實現(xiàn)類:HashMap,LinkedHashMap,TreeMap,HashTable.HashMap特點1.底層是一個數(shù)組 + 鏈表 + 紅黑樹(jdk1.8)2.數(shù)組的類型是一個Node類型3.Node中有key和value的屬性4.根據(jù)key的hashCode方法來決定Node存放的位置5.線程不安全的 ,可以存放nullHashMap的底層實現(xiàn)原理:當(dāng)我們向HashMap中存放一個元素(k1,v1),先根據(jù)k1的hashCode方法來決定在數(shù)組中存放的位置 。如果該位置沒有其它元素則將(k1,v1)直接放入數(shù)組中,如果該位置已經(jīng)有其它元素(k2,v2),調(diào)用k1的equals方法和k2進行比較 。如果結(jié)果為true則用v1替換v2,如果返回值為false則以鏈表的形式將(k1,v1)存放,當(dāng)元素達(dá)到8時則會將鏈表替換成紅黑樹以提高查找效率 。HashMap的構(gòu)造器:new HashMap() :創(chuàng)建一個容量為16的數(shù)組,加載因子為0.75 。當(dāng)我們添加的數(shù)據(jù)超過12時底層會進行擴容,擴容為原來的2倍 。LinkedHashMap:繼承了HashMap底層實現(xiàn)和HashMap一樣.可以安照元素添加的順序進行遍歷底層維護了一張鏈表用來記錄元素添加的順序 。TreeMap特點:可以對Key中的元素安照指定的順序進行排序 ( 不能對value進行排序)HashTable特點:線程安全的 ,不可以存放null,map中的key不能重復(fù),如果有重復(fù)的,后者的value覆蓋前者的value四大作用域和九大內(nèi)置對象四大作用域:


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: