原创 LeetCode刷題筆記(二)兩數相加

題目:給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。你可以假設除了數字 0 之外

原创 JAVA隨時筆記(一)try,catch,finally的返回值

1、public class TryCatchFinally { @SuppressWarnings("finally") public static final String test() { String

原创 LeetCode刷題筆記(五)最長迴文子串

題目:給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲1000。示例 1:輸入: "babad" 輸出: "bab" 注意: "aba"也是一個有效答案。示例2:輸入: "cbbd" 輸出: "bb"解法1:暴

原创 Java從入門到放棄(七)集合框架之ArrayList的坑

1、快速失敗和安全失敗    1)、快速失敗        在用迭代器遍歷一個集合對象時,如果遍歷過程中對集合對象的內容進行了修改(增加、刪除、修改),則會拋出ConcurrentModificationException。如下:    

原创 Java從入門到放棄(十)集合框架之HashMap源碼(1)

        HashMap是使用最最多的Java集合框架之一,在面試中如果問基礎肯定是要問集合框架的,要問集合框架那HashMap是一定少不了的。所以準備深入理解一下內部的實現。       看源碼之前先了解一下HashMap的底層數

原创 Java從入門到放棄(十五)集合框架之LinkedHashMap源碼

LinkedHashMap是一個有序的HashMap,各個節點以雙向鏈表的形式鏈接着,結構如圖所示: LinkedHashMap的真實結構不會死這樣子的,因爲長度原因截圖部分。節點裏的數字標識實際上是沒有的,是爲了表示插入的順序(如果是

原创 入坑JAVA多線程併發(九)CAS和ABA

  如果瞭解數據庫的悲觀鎖和樂觀鎖的話,對於理解CAS就很簡單了,因爲CAS就是樂觀鎖的具體實現。   悲觀鎖:在操作數據庫時本能的覺得一定會有競爭,所以把數據鎖住,不讓其他事物對對應的數據進行操作,在本次操作之後把鎖釋放,其它事物纔可

原创 JAVA隨時筆記(四):常用的排序算法實現

1、冒泡排序 原理: 比較array[n]和array[n+1]的大小,把大的數交換到後面,即array[n]>array[n+1],就交換。循環到數組最後,就可以把最大值找出來,放到array[length-1]上。 第二次循環,把

原创 入坑JAVA多線程併發(四)賣火車票瞭解一下

多線程最常用的兩個例子就是:火車票和生產者消費者問題了,本文簡單的實現一下賣火車票的例子, 首先創建車票類: class Ticket implements Runnable{ private int num; pri

原创 入坑JAVA多線程併發(七)volatile到底是什麼

多線程中有三個特性: 1、原子性:不可分割的一個操作,類似於數據庫的事物。 如下代碼: > int a,b; a = 0; //1 b = a; //2 a = a+1; //3 a++; //

原创 入坑JAVA多線程併發(八)詳解ThreadLocal使用和原理

  ThreadLocal是一個用於存儲多線程變量的類,它可以把線程與設置的值對應起來,因爲它爲變量在每個線程都創建了一個副本。訪問的時候每個線程只能訪問到自己的副本變量。 實例 看如下代碼: public class Main {

原创 入坑JAVA多線程併發(六)死鎖

  在多線程的中,因爲要保證線程安全,需要對一些操作進行加鎖,但是如果操作不當,會造成死鎖,導致程序無法運行下去。   形成死鎖的場景:如果有兩個線程,線程1和線程2,線程1運行,獲得鎖A,線程2運行,獲得B,線程1等待鎖B的釋放,線程

原创 Java從入門到放棄(十六)定時器Timer

Timer是java自帶的定時器,可以做一些簡單的定時任務。 創建對象 Timer timer = new Timer(); //定義定時器的名字 Timer timer1 = new Ti

原创 入坑JAVA多線程併發(五)生產者消費者模式

生產者消費者模式對於理解多線程是一個很經典,也很好的例子 資源類: class Resource{ //資源初始化個數 private int init; //資源最大個數 private int Max;

原创 Java從入門到放棄(十四)集合框架之TreeMap源碼

我們經常需要對一些集合按照指定的規則進行排序,比如學生按照學號排序,或者按照成績排序,集合裏面有專門排序的集合,如TreeMap。TreeMap裏面是使用的紅黑樹結構。 構造方法 private final Comparator<?