原创 「每日一問」面向對象的基本特性是什麼?

封裝 封裝是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。 換而言之,類是一個封裝了它自身數據和操作這些數據的代碼的抽象。在類內部,某些代碼或某些數據可以是私有的,不能被外

原创 「每日一問」Java虛擬機內存分爲哪幾個區域?

程序計數器 程序計數器(Program Counter Register)是一塊較小的內存空間,它記錄了當前線程所執行的字節碼的行號。在JVM的概念模型裏,字節碼解釋器工作時就是通過改變它的值來選取下一條需要執行的字節碼指令,分支

原创 「每日一問」面向對象的基本原則是什麼?

單一職責原則 單一職責原則(Single Responsibility Principle):類應該僅具有一種單一功能,並且該功能應該由這個類完全封裝起來。如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化就可能

原创 【Java併發編程實戰】03對象的共享

上一篇介紹瞭如何通過同步多個線程避免同一時刻訪問相同數據,本篇介紹如何共享和發佈對象,使它們被安全地由多個進程訪問。 1.可見性 通常,我們無法保證執行讀操作的線程能看到其他線程寫入的值,因爲每個線程都由自己的緩存機制。爲了確保多

原创 春眠不覺曉,Redis數據類型知多少?String,List,Set,SortedSet,Hash,Bitmap,HyperLogLogs

前言 Redis不是一個簡單的鍵值對存儲,它實際上是一個支持各種類型數據結構的存儲。在傳統的鍵值存儲中,是將字符串鍵關聯到字符串值,但是在Redis中,這些值不僅限於簡單的字符串,還可以支持更復雜的數據結構。下面就是Redis支

原创 【Java併發編程實戰】04對象的組合

1. 設計線程安全的類 在設計線程安全類的過程中,需要包含以下三個基本要素: 找出構成對象狀態的所有變量。 找出約束變量的不變性條件。 建立對象狀態的併發訪問管理策略。 1.1 收集同步需求 在很多類中都定義了一些不可變條件,

原创 死磕Lambda表達式(一):初識Lambda

弱小和無知不是生存的障礙,傲慢纔是。——《三體》 什麼是Lambda表達式 Lambda表達式是表示可傳遞匿名函數的一種簡潔方式,Lambda表達式沒有名稱,但是有參數列表、函數主體、返回類型,還可能有一個可以拋出的異常列表。

原创 寫給大忙人看Hadoop完全分佈式集羣搭建

Hadoop的運行模式 Hadoop一般有三種運行模式,分別是: 單機模式(Standalone Mode),默認情況下,Hadoop即處於該模式,使用本地文件系統,而不是分佈式文件系統。,用於開發和調試。 僞分佈式模式(Ps

原创 一篇文章快速搞懂Java虛擬機的棧幀結構

什麼是棧幀? 正如大家所瞭解的,Java虛擬機的內存區域被劃分爲程序計數器、虛擬機棧、本地方法棧、堆和方法區。(什麼?你還不知道,趕緊去看看《Java虛擬機內存結構及編碼實戰》)這次要介紹的棧幀(Stack Frame),就是Ja

原创 月薪過萬必會的:雙親委託模型

類加載器簡介 在介紹雙親委託模型之前,先介紹一下類加載器。類加載器通過一個類的全限定名來轉換爲描述這個類的二進制字節流。 對於任意一個類,被同一個類加載器加載後都是唯一的,但如果被不同加載器加載後,就不是唯一的了。即使是源於同一個

原创 一篇文章徹底搞懂JVM加載中初始化的時機

JVM類加載過程 JVM類加載過程分爲幾個階段,分別是加載、驗證、準備、解析和初始化。加載是把二進制字節碼載入內存,驗證是校驗字節流中包含的信息是否符合當要求,準備是爲靜態變量分配內存並設置靜態變量初始值,解析是把常量池內的符號引

原创 Java筆試真題及參考答案

題目 使用Swing實現一個窗口程序,窗口包括一個菜單欄,請按以下要求實現相應功能。 (1)窗口標題爲“GUI程序”,大小爲400X300, 居中顯示:窗口上有一個面板,面板背景色爲灰色; (2)面板上有一個標籤,內容爲“河南城建

原创 運用惰性刪除和定時刪除實現可過期的localStorage緩存

localStorage簡介 使用localStorage可以在瀏覽器中存儲鍵值對的數據。經常被和localStorage一併提及的是sessionStorage,它們都可以在當瀏覽器中存儲鍵值對的數據。但是它們之間的區別是:存儲

原创 80%碼農都難以逃脫的痛,你中招了嘛?

各位家人們,在忘我搬磚和享受“福報”的時候,有沒有感覺到手腕手指在隱隱作痛?對於碼農來說,手腕手指痠痛早就習以爲常,不過,這可是個危險信號,你可能患上了“腱鞘炎”! 什麼是腱鞘炎? 肌腱是連接骨骼和肌肉的結構,腱鞘是包裹在肌腱外

原创 騰訊面試居然跟我扯了半小時的CountDownLatch

一個長頭髮、穿着清爽的小姐姐,拿着一個嶄新的Mac筆記本向我走來,看着來勢洶洶,我心想着肯定是技術大佬吧!但是我也是一個才華橫溢的人,穩住我們能贏。 面試官:看你簡歷上有寫熟悉併發編程,CountDownLatch一定用過吧,