原创 HashSet源碼粗略解析

複習下java的常用集合框架,java常用的集合大致有兩種類型,一種實現了Collection接口表示普通的集合,一種實現了Map接口表示嚴格的鍵值對,其中Collection又分爲List接口類型和Set接口類型,其中List接口類型允

原创 爲什麼需要https

爲什麼需要https HTTP是明文傳輸的,也就意味着,介於發送端、接收端中間的任意節點都可以知道你們傳輸的內容是什麼。這些節點可能是路由器、代理等。 舉個最常見的例子,用戶登陸。用戶輸入賬號,密碼,採用HTTP的話,只要在代理服務

原创 Socket使用BufferedReader和BufferedWriter讀不到數據的問題

BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedWriter writer = n

原创 Vector源碼註釋,粗略理解

認識Vector就可以和ArrayList進行比較,注意兩點:1,它是線程安全的ArrayList(方法都有synchronized)。 2,Arr

原创 數組-在一個有序的數組中尋找出現次數超過一半的那個數

問題描述: 在一個有序的數組中尋找出現次數超過一半的那個數 思考: 參考了網上的辦法,忽略兩個不相等的相鄰的數,即一個數i,出現次數爲n>(總數/2),那麼(n-1)>((總數-2)/2),考慮在遍歷數組的時候,使用一個值保存臨時數字出

原创 Java ConcurrentModificationException異常原因和解決方法

Java ConcurrentModificationException異常原因和解決方法   在前面一篇文章中提到,對Vector、ArrayList在迭代的時候如果同時對其進行修改就會拋出java.util.Concurren

原创 通過分析 JDK 源代碼研究 TreeMap 紅黑樹算法實現

TreeMap 的實現就是紅黑樹數據結構,也就說是一棵自平衡的排序二叉樹,這樣就可以保證當需要快速檢索指定節點。 TreeSet 和 TreeMap 的關係 爲了讓大家瞭解 TreeMap 和 TreeSet 之間的關係,下面先看

原创 Java 8的變化: 從永久代(PermGen)到元空間(Metaspace)

正如大家所知,JDK 8 Early Access版已經提供下載。這使開發者可以體驗Java8的新特性。其中之一,是Oracle從JDK7發佈以來就一直宣稱的要完全移除永久代空間。例如,字符串內部池,已經在JDK7中從永久代中移除。JD

原创 位運算-Single Number III(只有兩個不同的數字出現了一次,其餘出現了兩次,找出這兩個數)

題目描述: Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appe

原创 樹-Path Sum II(指定和,求根到葉子的路徑)

題目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. For exampl

原创 JVM調優Demo(四)合適的年輕對象存活年齡

先上代碼: 生成單位大小對象的類: public class GCDataObject { byte[] bytes = null; public GCDataObject(int i){ bytes = new byte[i *

原创 JVM調優Demo(二)避免新生代過大(調整合適新生代大小)

先上代碼: 代碼和JVM調優Demo(一)完全一樣 運行參數: -Xmx20M -Xms20M -Xmn18M -verbose:gc -XX:+PrintGCDetails運行日誌: [GC (Allocation Failure) -

原创 JVM調優Demo(三)合適的Survivor

使用參數-XX:SurvivorRatio=n表示新生代中Eden空間大小和一個Survivor的比值。 有些時候無法增加JVM的整個內存的時候(堆),也可以調整Survivor的值來進行優化,減少MinorGC和FullGC的頻率。 1

原创 loback打印日誌問題

設置charset, 在encoder 中增加一行 <charset>UTF-8</charset>,重新啓動系統,日誌中中文顯示正常了。 <appender name="console" class="ch.qos.logback.c

原创 idea到tomcat扔進war包的區別

1.url需要在tomcat的server.xml修改 2遇到spring-datasource.xml需要去掉中文註釋問題,不然啓動因爲編碼問題報錯。