原创 violate與線程安全

  1  violate   線程可見性: 可見性是值一個線程對共享變量的修改,對於另一個線程來說是否是可以看到的。   爲什麼會出現這種問題呢?   我們知道,java線程通信是通過共享內存的方式進行通信的,而我們又知道,爲了加快執行

原创 多線程與高併發基礎概念與synchronized

線程基礎概念與synchronized 1線程、進程、纖程的基本概念 (1)進程   進程是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。每個進程都有自己的獨立內存空間,不同進程通過

原创 模擬銀行開戶

  /**  * 面試題:模擬銀行賬戶  * 對業務寫方法加鎖  * 對業務讀方法不加鎖  * 這樣行不行?  *  * 容易產生髒讀問題(dirtyRead)  */   package com.mashibing.juc.c_008

原创 160相交鏈表

鏈接: https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 相似題目連接(幾乎一模一樣):https://leetcode-cn.com/problems

原创 86分割鏈表

鏈接:https://leetcode-cn.com/problems/partition-list/ 相似題目鏈接(題目幾乎一模一樣):https://leetcode-cn.com/problems/partition-list-l

原创 138複製帶隨機指針的鏈表

鏈接:https://leetcode-cn.com/problems/copy-list-with-random-pointer/ 相似題目連接:https://leetcode-cn.com/problems/fu-za-lian-

原创 88合併兩個有序數組

刷題鏈接:https://leetcode-cn.com/problems/merge-sorted-array/ 在這裏提供兩套解題思路: 直接將nums1後續的值填滿,調用Arrays.sort()函數直接進行排序。 使用該方

原创 面試16_16

鏈接地址:https://leetcode-cn.com/problems/sub-sort-lcci/   尋找最短序列從數學的角度上來看就是尋找最後一個逆序對的位置,逆序對就是在一個順序的數組中,出現一個不按順序排列的值,比如 [1

原创 jmm

JMM 先看單例模式上最著名的DCL(double check loading)問題。 public class Singleton {     private static Singleton singleton;       pri

原创 使用JavaAgent測試Object的大小(以64位的計算機爲例)

  1對象創建的過程   2對象在內存的存儲佈局 普通對象 對象頭:markword 8 ClassPointer指針:-XX:+UseCompressedClassPointers 爲4字節 不開啓爲8字節 實例數據 引用類型:-XX

原创 jvm基礎入門

1:JVM基礎知識 什麼是JVM JVM(Java Virtual Machine,Java虛擬機) Java程序的跨平臺特性主要是指字節碼文件可以在任何具有Java虛擬機的計算機或者電子設備上運行,Java虛擬機中的Java解釋器負責將

原创 類加載初始化

類加載-初始化 1類加載過程圖   當class文件,經過loading(加載階段)後,把類的.class文件中的數據讀入到內存中,通常是創建一個字節數組讀入.class文件,然後產生與所加載類對應的Class對象。加載完成後,Clas

原创 常見垃圾回收器組合參數

  -XX:+UseSerialGC = Serial New (DefNew) + Serial Old 小型程序。默認情況下不會是這種選項,HotSpot會根據計算及配置和JDK版本自動選擇收集器 -XX:+UseParNewGC

原创 i++和++i問題

  package c4_RuntimeDataAreaAndInstructionSet;     public class TestIPulsPlus {     public static void main(String[] a

原创 常用的垃圾回收器

常用的垃圾回收器 大部分資料參考:https://www.cnblogs.com/chenpt/p/9803298.html 1當前常用的垃圾回收器   STW:Java中Stop-The-World機制簡稱STW,是在執行垃圾收集算法