原创 java的三種代理模式(AOP原理)

一、靜態代理:  1個接口+2實現類,不靈活 二、JDK動態代理      1.又叫動態代理、JDK代理。 目標對象一定要實現接口(否則只能用CGLib動態代理),代理類是 java.lang.reflect.Proxy類。      a

原创 LeetCode_拼寫單詞_Array_E

1160. 拼寫單詞       hashMap日常暴力... class Solution { public int countCharacters(String[] words, String chars) {

原创 LeetCode_

459. 重複的子字符串 class Solution { public boolean repeatedSubstringPattern(String s) { if (s == null || s.lengt

原创 8.happens-before原則

一、happens-before 原則     如果A happens-before B,僅保證A的操作結果對B可見,並不意味着A一定比B先執行;在不影響結果的前提下,B有可能會比A先執行。 具體的一共有六項規則: volatile變量規

原创 LeetCode_用隊列實現棧_Stack_E

225. 用隊列實現棧  方法一: 用兩個隊列來回poll和offer實現:  壓入棧O(1)、彈出棧O(n) class MyStack { private Queue<Integer> q1, q2; int

原创 LeetCode_用棧實現隊列_Stack_E

232. 用棧實現隊列   兩個棧實現:  棧s1中的數據是:直接push,從下到上是1234,跟隊列的順序相反;       棧s2中的數據是:從上到下是1234,直接pop符合隊列的順序。       s2不爲空時,直接在s2中pop

原创 6.JVM調優

一、JVM調優     1.jvm調優主要是內存空間的分配,目的是提高系統性能。主要調優方式:         1.適當增加堆大小(也不能太大不然gc時間太長);         2.-Xms初始堆大小 和-Xmx最大堆大小相同,減少內存

原创 LeetCode_二叉樹的層次遍歷_BFS/DFS_M

102. 二叉樹的層次遍歷  自己做的,完全按BFS模板搞的: /** * Definition for a binary tree node. * public class TreeNode { * int val;

原创 3.java字節碼

一、字節碼有哪些?     二、Integer x=5, int y=5, 比較 x==y 都經過哪些步驟?

原创 LeetCode_買賣股票的最佳時機_DP_E

121. 買賣股票的最佳時機 DP?????DP  

原创 2.GC垃圾回收機制

一、gc算法     1.標記-清除算法(Mark Sweep):    缺:效率低、有內存碎片             a.標記階段:遍歷所有GC roots,將gc roots引用鏈可達的對象標記爲存活;               

原创 1.JVM內存模型

一、JVM內存模型

原创 1.基礎小算法

1.字符串反轉 public static String reverse(String s){ char[] ch = s.toCharArray(); char temp; for(int i = 0; i <

原创 2.HTTP協議和HTTPS協議

一、HTTP的工作流程     1.工作流程:        a.構建URL。地址解析:協議類型+主機名(域名)+端口+請求的文件名(index.html)+請求參數(?name=a&age=b);        b.封裝HTTP請求。U

原创 1.TCP/IP協議、三次握手四次揮手

一、TCP/IP四層模型     1.TCP/IP協議:網絡通信協議,定義了電子設備如果連入因特網、以及數據傳輸的標準。     2.應用層:處理特定的應用程序細節。eg: HTTP超文本傳輸協議、DNS域名解析、FTP文件下載協議、遠程