一.概述 線程池,顧名思義就是存放線程的池子,池子里存放了很多可以復(fù)用的線程。 如果不用類似線程池的容器,每當(dāng)我們需要執(zhí)行用戶任務(wù)的時(shí)候都去創(chuàng)建新的線程,任務(wù)執(zhí)行完之后線程就...
一.簡(jiǎn)介 jdk中獨(dú)占鎖的實(shí)現(xiàn)除了使用關(guān)鍵字synchronized外,還可以使用ReentrantLock。雖然在性能上ReentrantLock和synchronized...
一.概述 Java中所有多線程的實(shí)現(xiàn),均通過封裝Thread類實(shí)現(xiàn),所以通過源碼深入研究Thread類,對(duì)深入理解java多線程很有必要,本文Thread類源碼均基于JDK ...
一.簡(jiǎn)介 join()是Thread類的一個(gè)方法,根據(jù)jdk文檔的定義,join()方法的作用,是等待這個(gè)線程結(jié)束,即當(dāng)前線程等待另一個(gè)調(diào)用join()方法的線程執(zhí)行結(jié)束后再...
一.概念 Java中使用ThreadGroup類來(lái)代表線程組,表示一組線程的集合,可以對(duì)一批線程和線程組進(jìn)行管理??梢园丫€程歸屬到某一個(gè)線程組中,線程組中可以有線程對(duì)象,也可...
一.Java創(chuàng)建線程的三種方式 Java中創(chuàng)建線程主要有三種方式:1.繼承Thread類2.實(shí)現(xiàn)Runnable接口3.使用Callable和Future 1.繼承Thead...
一.HashMap概述 HashMap是基于哈希表的Map接口的非同步實(shí)現(xiàn)。此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用null值和null鍵。此類不保證映射的順序,特別是它不保...
一.Object類中的equals和hashCode 眾所周知,equals和hashCode是java.lang.Object類的兩個(gè)重要方法,下面這段代碼是Object類...
一.問題 眾所周知,HashMap是線程不安全的,在并發(fā)使用HashMap時(shí)很容易出現(xiàn)一些問題,其中最典型的就是并發(fā)情況下擴(kuò)容之后會(huì)發(fā)生死循環(huán),導(dǎo)致CPU占用100%。同時(shí),...
【題目】 題目來(lái)源于頭條面試的一道算法題,如下: 其實(shí)這道題跟劍指offer上一道面試題很類似,原題如下: 【思路】 既然輸入的數(shù)組是排序的,那么我們很自然地就能想到用二分查...
一.LeetCode198.打家劫舍 1.題目鏈接 https://leetcode-cn.com/problems/house-robber/ 2.題目 你是一個(gè)專業(yè)的小偷...
一.頁(yè)面置換算法 三種常見的頁(yè)面置換算法:FIFO、LFU、LRU參考:緩存算法(頁(yè)面置換算法)-FIFO、LFU、LRU 二.LRU算法 1.什么是LRU算法 LRU(Le...
【題目】給定無(wú)序數(shù)組 arr, 返回其中最長(zhǎng)的連續(xù)序列的長(zhǎng)度. 【舉例】arr=[100,4,200,1,3,2], 最長(zhǎng)的連續(xù)序列為 [1,2,3,4],所以返回 4. 【...
@CooooSo 皮
String類的不可變性一.原理(為什么說String類是不可變的) 1.什么是不可變對(duì)象 如果一個(gè)對(duì)象在創(chuàng)建之后就不能再改變它的狀態(tài),那么這個(gè)對(duì)象是不可變的(Immutable)。不能改變狀態(tài)的意...
一.定義 單一職責(zé)原則(Single Responsibility Principle, SRP),有且僅有一個(gè)原因引起類的變更。 二.問題由來(lái) 類T負(fù)責(zé)兩個(gè)不同的職責(zé):職責(zé)...