原创 lambda優雅取出對象list中某個屬性重複的集合數據

arrays.stream() .collect(Collectors.groupingBy(a->a.getField(),Collectors.counting())) .entrySet.stream

原创 插入1000w條記錄到文本文件並讀取做分組排序

背景 某司線上筆試題 隨機生成 Salary {name, baseSalary, bonus }的記錄,如“wxxx,10,1”,每行一條記錄,總共1000萬記錄,寫入文本文件(UFT-8編碼),然後讀取文件,name的前兩個

原创 mysql索引

前言 參考資料:innodb存儲結構,MySQL是怎樣運行的:從根上理解MySQL 數據頁 innodb將數據劃分爲一個個數據頁,數據頁大小爲固定16kb,因爲處理數據是在內存中,讀取和把數據刷新到磁盤上,以頁的形式來而不是一行行

原创 lambda優雅取出list中某個字段重複的集合

arrays.stream() .collect(Collectors.groupBy(a->a.getField(),Collectors.counting()) .entrySet.stream()

原创 之前遇到的連接池連接超時問題

alibaba druid拋出連接異常 -連接池最大連接數爲20,log中出現獲取連接超時,代表20個連接都在佔用 -同時出現socket超時,服務中有一個動作是http調用第三方接口,調用接口時超時 因爲有事物的存在,調用第三方接口

原创 插入1000w條記錄到文本文件並分組排序

背景 某司線上筆試題 隨機生成 Salary {name, baseSalary, bonus }的記錄,如“wxxx,10,1”,每行一條記錄,總共1000萬記錄,寫入文本文件(UFT-8編碼),然後讀取文件,name的前兩個字符

原创 分佈式鎖

鎖的概念: 線程的通信方式有兩種,同步和可見性 同步的本質是通過鎖來實現,可見性只在特定情況下才能保證線程安全,比如volitile,對jvm優化過後的指令進行重排序,強制要求線程刷新主存,但是 如果當前值由該變量以前的值相關 

原创 分佈式鎖一些見解

鎖的概念: 線程的通信方式有兩種,同步和可見性 同步的本質是通過鎖來實現,可見性只在特定情況下才能保證線程安全,比如volitile,對jvm優化過後的指令進行重排序,強制要求線程刷新主存,但是 如果當前值由該變量以前的值相關 比如執行

原创 python和shell調用redis

import redisredisConnectPool = redis.ConnectionPool(host='*', port=6379)  # redis連接池def runDitingScriptCount():    try:

原创 mysql查詢緩存詳解

緩存的意義: 公司部署了BI報表系統,每天腳本同步生產數據到報表的庫,報表在單獨的服務器上,mysql的CPU佔用率最高可達百分之600左右, 由於報表相對來說,一天之內數據不會發生改變,不會發生除了查詢之外的增刪改操作,所以緩存的命中是

原创 springboot項目啓動時未能加載maven中的provided範圍的jar

eclipse應該不存在這個問題,IDEA想要解決打開右側的mavenprojects,然後springboot:run的方式啓動就好了

原创 springboot解決跨域問題config類

package com.awservice.config; import org.springframework.context.annotation.Bean; import org.springframework.context.a

原创 記錄自己python爬蟲的學習

由於之前有java基礎和web開發基礎,所以把https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000廖雪峯老師的python3