原创 ZGC佔位

reference: https://wiki.openjdk.java.net/display/zgc/Main#Main-EnablingZGC https://docs.oracle.com/en/java/javase/11/gc

原创 Java多態堆棧信息

public class Test { static class A { public A() { System.out.println("A constructor");

原创 統一回包格式比較優雅的實現

1,需求 需要統一回包格式,用比較優雅的方式處理。也就是返回格式爲{code, data, msg}。 2,前言 這個需求的暴力實現是使用攔截器HandlerInterceptorAdapter,配合自定義註解。但是不夠優雅,後面一直有在

原创 Docker配置windows 10 訪問內部容器

閒來無事,折騰Spring的 HandlerMethodReturnValueHandler 差不多了,然後玩下docker,實際上之前也用過,只是沒有像現在一樣,突然發現我擦,Docker這麼牛掰,內部可以運行多個容器,都不用自己安裝

原创 JVM內存和GC相關

這裏簡單的回顧了一下JVM內存模型和GC回收器相關的知識點。由於畫圖的時候比較青睞Office的Visio,所以可能貼圖不打清晰。 爲什麼寫這篇文章呢,主要是懂了JVM內存模型,就可以在不自覺中寫出優良代碼,比如使用DirectByteB

原创 HashMap內部維護的是一顆樹還是多棵樹?

答案:多棵樹,即bin(bucket)個數顆樹。 先給出答案,然後說爲什麼? 我們都知道HashMap爲了解決hash衝突,使用了數組+鏈表的方法,同時也引入了紅黑樹。當有key的hash值衝突的時候,會放進鏈表中。那麼什麼時候會進行樹形

原创 記一次socketchannel在write ByteBuffer是總是write=0的問題

要做一個nio通信模型,使用java.nio包做,但是在socketchannel寫出的是時候,寫出總是0。我們知道socketchannel的寫出是ByteBuffer。 int write = channel.write(ByteA

原创 雙蛋問題的遞歸解法

現在是疫情期間,被動裁員,呆在宿舍沒事兒做,在YouTube上看見了李永樂老師的一個雙蛋問題的視頻,就是衆所周知的動態規劃問題,然後就做了一下。 1,問題描述: 有t層樓,n個雞蛋,雞蛋是相同的,臨界樓層是指從某個樓層之上拋下來,都會碎,

原创 Java視頻面試記錄

剛纔很奇怪的事情,就是面試問我集合的東西,我覺着自己回答的還可以,但是面試官好想不大滿意。這裏簡單記錄一下。 1,說一下單向鏈表,雙向鏈表,還有循環鏈表。 我說單向的典型例子就是ArrayList,內部是用數組實現的。雙向鏈表是有前後指針

原创 隨手記一次導出業務

這段時間忙於業務,貌似沒有什麼可以拿出來寫寫的。就說下最近做的導出功能吧。 需求: 1,管理後臺需要導出訂單表。月末的時候財務可能會頻繁導出。這裏假設使用阿里巴巴的easy excel,這樣會節省很多內存。假設一次需要導出5兆的文件,一次

原创 java之一個final引起的反射問題

java中的關鍵字final關鍵字標識編譯時常量。 對於基本類型,標識其值不可被改變,對於引用類型,標識其引用不可以被改變,但是引用對象的值可以發生變化。 這裏的引用類型是包含裝箱的類型的,只是裝箱類型的封裝了一個基本類型的變量,導致現象

原创 Socket測接口

package com.test; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import

原创 樹論

符號表:描述一張抽象的表格,我們將信息(值)存儲在其中,然後按照指定的鍵來搜索獲取這些信息。符號表的實現方式: 1,BST二叉查找樹(binary search tree): 數據結構:節點。每個節點只有一個父節點(除了根節點沒有父節點)

原创 串論

1,字符串排序。 這裏其實挺麻煩的。一般來說,我們會先從高位起,排序。分成三份,小於,等於,大於,然後在各自的區間內再次排序。 2,單詞查找樹 這個算法的應用場景是前綴有許多相同的。這樣根據一個一個的字符,構成一顆樹。樹的節點信息有:這個

原创 計算幾何之凸包之graham scan

Graham scan算法: 主要步驟: 找出所有已知點的y值最小,如果相同,取x值最小的點,作爲基準點s。 以s爲基準,所有的點按照與X軸夾角從小到大排序。 使用兩個棧,一個記錄已訪問的點,一個記錄未訪問的點,使用已訪問點的最後兩個入棧