原创 【學習筆記】—JVM(三)類文件的結構,16進制分析

一、如何查看一個類文件的16進制結構 寫一個簡單的java程序,javac編譯產生.class文件 用notepad++打開,一開始可能是亂碼引入插件HexEditor HexEditor.dllx64版本下載 將HexEdi

原创 爲什麼Java的圖標是一杯咖啡呢?

  今天在書上看到一個很有趣的東西,於是去查了查,爲什麼Java的圖標是一杯咖啡   得到了以下回答 “因爲寫 java 經常通宵加班,需要喝咖啡。” “java是一種程序設計語言。 java中有種技術叫java bean。

原创 【JDK】ArrayList和Vector的動態擴增有啥區別

直接說結論ArrayList在擴增時擴增1.5倍,Vector擴增2倍大小 ArrayList   是一個不安全的基於數組實現的。   當我們new ArrayList()的時候,無參數構造 public ArrayList()

原创 【學習筆記】—JVM(二)垃圾收集器和內存分配策略

一、爲什麼要回收   在上一部分在對每個數據區分析了,最後指出了他會拋出什麼異常,最多的就是OOM,內存溢出異常。在Java堆中一個程序要創建太多的實例對象,但有些數據只用了一次之後卻再沒有使用,如果不將它清除掉,對內存而言永遠是

原创 【學習筆記】—JVM(四)虛擬機類加載機制

一、什麼是類加載機制 虛擬機把描述類的數據從Class文件加載到內存,並對數據進行檢驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型。 二、類的生命週期   加載、驗證、準備、初始化和卸載這5個順序是固定的,

原创 【學習筆記】—JVM(一)Java內存區域的劃分和相應作用及對象在其中的分佈

參考:《深入理解Java虛擬機》周志明著 一、JVM數據區 1. 程序計數器:   當前線程所執行的字節碼的信號指示器。   JVM的多線程是通過線程輪流切換並分配處理器執行時間(操作系統)實現 因此每條線程都需要有一個獨立

原创 【JDK】爲啥會有Integer.valueOf()和Integer.parseInt()這兩個功能幾乎一樣的方法嘞?

  在平常要將string類型轉化爲int類型時,直接使用Integer.valueOf()或者Integer.parseInt()就可以了,但是看Integer.valueOf()這個方法 ???!!!你這不是直接調用了Int

原创 【數據結構】反轉鏈表

方法一   假設有下面這樣一個單向鏈表   想要將其反轉輸出,即得到4->3->2->1這樣一個鏈表,我首先想到的是從拿到最後一個節點前面一個節點將他刪除接在最後一個節點的後面依次下去不就可以了麼   但是這樣就需要五個指針

原创 【JDK1.8】HashMap源碼詳解:

一、HashMap概述       在JDK1.8之前,HashMap採用數組+鏈表實現,即使用鏈表處理衝突,同一hash值的節點都存儲在一個鏈表裏。但是當位於一個桶中的元素較多,即hash值相等的元素較多時,通過key值依次查

原创 【學習筆記】—JVM(五)內存模型與線程

一、Java內存模型   創建這樣一個模型主要是爲了定義程序中各個變量的訪問規則。這也是Java跨平臺性的一個重要組成部分。因爲例如C/C++等語言都是直接使用物理硬件和操作系統的內存模型,會出現在這個平臺能夠正常訪問數據,換一

原创 【數據結構】根據前序遍歷與中序遍歷重建樹

  直接衝代碼 package algorithm_tree; import java.util.Arrays; /** * @Author: xc * @Date: 2019/11/12 20:26 * @Descri

原创 【SpringCloud】簡單應用(二)——Eureka服務註冊中心

一、Eureka服務中心的作用  上一章我們說到,物品服務改變地址或者端口,那麼想要再次使用這個服務就要去修改使用者中的url,顯然這樣效率不高,Eureka就是讓使用者只用知道服務的名字,然後自己去尋找服務具體的地址。,這樣就解

原创 【JDK】靜態方法中只能調用靜態的變量或者方法

public class Demo { private String name; public static void A(){ System.out.println(name);

原创 【SpringCloud】簡單應用(三)——Ribbon負載均衡

一、引入 上面那個使用者一直都是訪問的第一個goods-serivce服務,那如果我有很多個service服務,後面豈不是都是沒用的,所以我們要解決這一問題。現版本的Eureka Server已經自動集成了Ribbon無需引入。

原创 【SpringCloud】簡單應用(一)——業務分離

一、什麼是分佈式   最簡單的理解:多個服務器全部運作起來纔是一整個項目   因此,我們需要將都一些業務分離出去,讓一個服務器完成一個大類的業務邏輯以承受更高的併發。例如簡單的訂單-查詢 訂單表: 物品信息表:   一般實現是