原创 給定一個整數數組, 其中2個數出現了奇數次數,其他的數都是偶數詞,打印這個數

遍歷整個數組,依次做異或運算。由於數組存在兩個出現奇數次的整數,所以最終異或的結果,等同於這兩個整數的異或結果。這個結果中,至少會有一個二進制位是1(如果都是0,說明兩個數相等,和題目不符)。 舉個例子,如果最終異或的結果是5,轉換成二進

原创 給定一個整數數組, 其中只有一個數出現了奇數次數,其他的數都是偶數詞,打印這個數

直接用異或運算符來進行計算,相同的數字異或爲0,0異或任何數都等於任何數,且異或的位置可以進行交換而不影響結果;   異或運算的作用   參與運算的兩個值,如果兩個相應bit位相同,則結果爲0,否則爲1。   即:   0^0 = 0,

原创 Spring系列學習2---@Autowired 和 @Resource 和 @Inject的區別

都是用於自動裝配,自動注入 1、@Autowired  ①、spring定義的註解,默認是優先按照類型去容器中查找對應的組件; ②、如果找到多個相同類型的組件,再將屬性的名稱作爲組件的ID去容器中查找; ③、使用@Qualifier指定需

原创 解決 An invalid domain was specified for this cookie

在tomcat的conf文件下的context.xml中加入 <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />   然後重啓

原创 docker 安裝elasticsearch 啓動後隨機報exit(1) 退出。

1,首先通過資料參考得知這是docker 沒有足夠的ram空間 運行elasticsearch ,導致linux系統包oom錯誤。 2,解決方法: docker run --name elasticsearch -p 9200:9200

原创 性能瓶頸--CPU(上下文切換)

CPU的性能瓶頸不僅僅是cpu負載。因爲Linux的性能問題可能是牽一髮而動全身的。 比如一個佔用內存較高的java程序,導致問題的根本原因是內存不足,但是反映最直觀的可能是cpu使用率很高。因爲java開啓了大量的線程進行GC操作。進而

原创 尋址空間與內存尋址

尋址空間: 尋址空間一般指的是CPU對於內存尋址的能力。通俗地說,就是能最多用到多少內存的一個問題。數據在存儲器(RAM)中存放是有規律的 ,CPU在運算的時候需要把數據提取出來就需要知道數據存放在哪裏 ,這時候就需要挨家挨戶的找,這就叫

原创 哪些情況下Mysql索引會失效

1、全值匹配我最愛; 2、最佳左前綴法則 ; 3、不在索引列上做任何操作(計算、函數、(自動or手動)類型轉換),會導致索引失效而轉向全表掃描; 4、存儲引擎不能使用索引中範圍條件右邊的列; 5、儘量使用覆蓋索引(只訪問索引的查詢(索引列

原创 如何保證Kafka消息不被重複消費?(如何保證消息消費時的冪等性)

首先就是比如rabbitmq、rocketmq、kafka,都有可能會出現消費重複消費的問題,正常。因爲這問題通常不是mq自己保證的,是給你保證的。然後我們挑一個kafka來舉個例子,說說怎麼重複消費吧。   kafka實際上有個offs

原创 細說Mysql間隙鎖

1.什麼是間隙鎖?間隙鎖是怎樣產生的? 2.間隙鎖有什麼作用? 3.使用間隙鎖有什麼隱患? 一、間隙鎖的基本概念 1.什麼叫間隙鎖 當我們用範圍條件而不是相等條件檢索數據,並請求共享或排他鎖時,InnoDB會給符合條件的已有數據記錄的索引

原创 深入理解分佈式鏈路追蹤系統

  分佈式服務化的階段,傳統的日誌監控等方式無法很好達到跟蹤調用,排查問題等需求。 各種服務之間調用: 1.如何快速發現問題? 2.如何判斷故障影響範圍? 3.如何梳理服務依賴以及依賴的合理性? 4.如何分析鏈路性能問題以及實時容量規劃

原创 怎麼進行分庫分表以及數據遷移

有一個未分庫分表的系統,未來要分庫分表,如何設計纔可以讓系統從未分庫分表動態切換到分庫分表上? 已經明白爲啥要分庫分表了,你也知道常用的分庫分表中間件了,你也設計好你們如何分庫分表的方案了(水平拆分、垂直拆分、分表),那問題來了,你接下來

原创 CPU佔用過高如何定位分析

在實際開發過程中,我們經常遇到cup突然飆升,這個時候我們要怎麼分析,是項目中的那一行代碼導致的呢? 假如有下面一段程序 import java.util.ArrayList; import java.util.List; import

原创 Java的淺拷貝與深拷貝

首先我們知道Java的Object類中有個clone()的方法,中文名字叫做克隆,當我們一個對象調用clone()方法時, 因爲該方法默認使用的是淺拷貝,首先我們看下什麼是淺拷貝? 先看下面幾段代碼 書包類: public class

原创 使用wait和notifyAll出現異常java.lang.IllegalMonitorStateException

  在線線程中調用wait方法的時候 要用synchronized鎖住對象,確保代碼段不會被多個線程調用。加上了synchronized解決了次異常;