更新時間:2020-05-12 14:02:43 來源:動力節點 瀏覽2223次
HashMap和HashTable的區別:
二者都實現了Map接口,是將惟一鍵映射到特定的值上;主要區別在于:
HashMap和HashTable的底層實現數據結構:
HashMap和Hashtable的底層實現都是數組+鏈表結構實現的
HashMap何時擴容:
當向容器添加元素的時候,會判斷當前容器的元素個數,如果大于等于閾值---即當前數組的長度乘以加載因子的值的時候,就要自動擴容
擴容的算法是什么:
擴容(resize)就是重新計算容量,向HashMap對象里不停的添加元素,而HashMap對象內部的數組無法裝載更多的元素時,對象就需要擴大數組的長度,以便能裝入更多的元素。當然Java里的數組是無法自動擴容的,方法是使用一個新的數組代替已有的容量小的數組
Java把內存劃分成兩種:一種是棧內存,一種是堆內存。兩者的區別是:
異常整體分類:
第一范式1NF(域的原子性)
如果數據庫表中的所有字段值都是不可分解的原子值,就說明該數據庫表滿足了第一范式
第二范式2NF(表中除主鍵外的字段都完全依賴主鍵)
第二范式是在第一范式基礎上建立的。第二范式有兩個重點:(1)表中必須有主鍵;(2)其他非主屬性必須完全依賴主鍵,不能只依賴主鍵的一部分(主要針對聯合主鍵而言)。
第三范式3NF(表中除主鍵外的字段都完全直接依賴,不能是傳遞依賴)
不能是傳遞依賴,即不能存在:非主鍵列A依賴于非主鍵列B,非主鍵列B依賴于主鍵的情況。第二范式和第三范式區分的關鍵點:2NF:非主鍵列是否完全依賴于主鍵,還是依賴于主鍵的一部分;3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列。
Java四種線程池
第一種:newCachedThreadPool
創建一個可根據需要創建新線程的線程池,但是在以前構造的線程可用時將重用它們。
第二種:newFixedThreadPool
創建一個指定工作線程數量的線程池
第三種:newScheduledThreadPool
創建一個線程池,它可安排在給定延遲后運行命令或者定期地執行。
第四種:newSingleThreadExecutor
創建一個使用單個worker線程的Executor,以無界隊列方式來運行該線程。
volatile和synchronized簡介:
在Java中,為了保證多線程讀寫數據時保證數據的一致性,可以采用兩種方式:
兩者的區別:
(1)方便解耦,簡化開發
通過Spring提供的IoC容器,我們可以將對象之間的依賴關系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。
(2)AOP編程的支持
通過Spring提供的AOP功能,方便進行面向切面的編程。
(3)聲明事物的支持
在Spring中,我們可以從單調煩悶的事務管理代碼中解脫出來,通過聲明式方式靈活地進行事務的管理,提高開發效率和質量。
(4)方便程序的測試
可以用非容器依賴的編程方式進行幾乎所有的測試工作。例如:Spring對Junit4支持,可以通過注解方便的測試Spring程序。
(5)方便集成各種優秀框架
Spring不排斥各種優秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
(6)降低JavaEEAPI的使用難度
Spring對很多難用的JavaEEAPI(如JDBC,JavaMail,遠程調用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些JavaEEAPI的使用難度大為降低。
AOP用來封裝橫切關注點,具體可以在下面的場景中使用
以上就是動力節點java培訓機構的小編針對“大型互聯網企業精選Java筆試題目及答案”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習