原创 Java 併發高頻面試題:聊聊你對 AQS 的理解?

一、寫在前面 這篇文章,我們來聊聊面試時一個比較有殺傷力的問題:聊聊你對AQS的理解? 之前有同學反饋,去互聯網公司面試,面試官聊到併發時就問到了這個問題。當時那位同學內心估計受到了一萬點傷害。。。 因爲首先,很多人可能連AQS是什麼都不

原创 MyBatis一對多collection用法

形如下面的一個類 package com.example.demo; import java.util.List; public class ClassDemo { private Long classId; p

原创 Dubbo的服務啓動依賴檢查配置

dubbo的服務啓動依賴檢查,指的是當啓動服務時,如果存在不可用的依賴時,直接拋出異常,從而阻斷spring初始化完成,以便在上線時發現問題。 這種看似非常合理的檢查,有時候卻會給系統帶來很大的困擾。比如A的consumer依賴了B的pr

原创 Java 判斷一個鏈表是否成環

成環: 可以是循環單鏈表,即首位相連;也可以是部分成環,即尾部和其他節點相連。   判斷是否成環: 使用快慢指針遍歷鏈表: 慢指針: 從頭節點開始,一次跳一個節點。 快指針: 從頭節點開始,一次跳兩個節點。 如果是成環的,這兩個指針一定會

原创 Java 求 1到n各階乘的和

題目: 1-n階乘之和 分析: 1的階乘是1 2的階乘是1*2 3的階乘是1*2*3 4的階乘是1*2*3*4 ......... 代碼: public static long factorialSum(int num) {

原创 Mysql的常用配置參數

基本配置: datadir:指定mysql的數據目錄位置,用於存放mysql數據庫文件、日誌文件等。   配置示例:datadir=D:/wamp/mysqldata/Data default-character-set:mysql服務器

原创 Java NIO核心組件學習

背景知識 同步、異步、阻塞、非阻塞 首先,這幾個概念非常容易搞混淆,但NIO中又有涉及,所以總結一下[1]。 同步:API調用返回時調用者就知道操作的結果如何了(實際讀取/寫入了多少字節)。 異步:相對於同步,API調用返回時調用者不知道

原创 Java找出數組中第二大的值

題目: 給出一個數組 {7,3,19,40,4,7,1};找出第二大的值 思路: 定義兩個變量:一個變量用來存儲數組的最大值,初始爲數組首元素。另一個變量用來存儲數組元素的第二大數,初始值爲最小負整數,然後遍歷數組元素。 實現: pu

原创 Java的鎖

常見的鎖有synchronized、volatile、偏向鎖、輕量級鎖、重量級鎖、公平鎖/非公平鎖、獨享鎖和共享鎖。 1.synchronized synchronized是併發編程中接觸的最基本的同步工具,是一種重量級鎖,也是Java內

原创 Java語言找出數組中的最大值

代碼如下: public class Practice{ //找最大值 public static int max(int [] array){ int max=0; int i=0; for(i=0;i<array.l

原创 Hystrix功能介紹

1、什麼是Hystrix     在一個分佈式系統中,必然會有部分系統的調用會失敗。Hystrix是一個通過添加超時容錯和失敗容錯邏輯來幫助你控制這些分佈式系統的交互。Hystrix通過隔離服務之間的訪問,阻止他們之間的級聯故障以及提供後

原创 億級請求下多級緩存

什麼是多級緩存 所謂多級緩存,即在整個系統架構的不同系統層級進行數據緩存,以提升訪問效率,這也是應用最廣的方案之一。 整體流程如上圖所示: 1)首先接入Nginx將請求負載均衡到應用Nginx,此處常用的負載均衡算法是輪詢或者一致性哈希

原创 map集合解決雙重for循環的性能問題

現在有個需求,需要將student表和class表的所有數據返回回去,關聯條件時class_id。如果用sql很容易實現,直接連表查詢就可以了,但是現在項目是微服務,不能連表查詢了,所以得在代碼裏面修改。 定義三個類,student類,c

原创 Java常用的加密算法

本文從對稱加密和非對稱加密展開論述。 簡介: 對稱加密: 加密和解密的祕鑰使用的是同一個. 非對稱加密: 與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。 對稱加密算法: 

原创 Java鏈表反轉

反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL Java public ListNode reverseList(ListNode head) {     i