原创 spring如何初始化一個bean

我們都知道,在創建一個spring應用的時候,通過構建spring容器,根據容器獲取bean,那麼spring是如何創建bean的呢?首先在創建bean容器時,通過上下文也就是非BeanFactory創建時,被標記的java對象就

原创 關於GC垃圾回收及其算法的一點思考

在學過java一些有關GC以及相關算法後,對一些概念以及GC與垃圾回收算法的關係有點混亂,覺得有必要好好總結一下了,雖然GC誕生的時間比java早,並且GC並不是java語言所獨有的,但垃圾收集機制是java語言的招牌能力,極大的

原创 字符串變量拼接底層原理

與字面量的字符串拼接不同,有變量的字符串拼接要複雜得多,非常有必要進行研究 public static void main(String[] args){ String s1 = "a"; Stri

原创 jvm執行引擎:後端編譯的運行過程和原理

文章目錄1.概述2.解釋器和編譯器概述3.java是半編譯半解釋型語言3.1關於java跨平臺性的補充4.HotSpot中的解釋器和JIT編譯器5.判斷是否使用JIT編譯器5.1方法調用計數器5.2熱度衰減5.3設置程序執行方式6

原创 jvm中對象是怎麼存儲的,對象的內存佈局是怎樣的

對象通過new,反射,clone等方式創建完畢後被存儲到堆中,那麼對象是以什麼樣的方式存儲在堆中的? 對象的內存佈局 對象在堆內存的內存佈局主要有三部分,即對象頭,實例數據,對其填充 對象頭 對象頭主要包含兩部分的內容,一個叫運行

原创 垃圾收集算法-如何判定對象死亡

在堆中存放着幾乎所有的java對象實例,在GC執行垃圾回收之前,首先要區分出那些對象存活,哪些對象死亡,只有被標記爲死亡的對象,GC纔會在垃圾回收時釋放其所佔用的內存空間,這個過程被稱爲垃圾標記階段 在jvm中,當一個對象已經不再

原创 jvm-堆詳解

文章目錄1.堆概述2.堆內存細分2.1設置堆內存大小2.2新生代和老年代3.對象分配過程3.1對象分配特殊情況4.幾種垃圾收集比較4.1Minor GC4.2Major GC4.3Full GC5.爲什麼要分代6.本地線程緩衝TL

原创 理解java併發中的線程池

文章目錄1.線程池的出現2.Executor-構建線程池2.1Executors-併發工具類2.2`newSingleThreadExecutor`2.3`newFixedThreadPool`2.4`newCachedThrea

原创 java併發-走近Callable和Future

1.Callable 與Runnable類似,可以執行線程,與Runnable不同的是,它不是調用run方法,而是調用call方法,可以拋出異常,並且有返回值: public interface Callable<V> {

原创 深入剖析ThreadLocal線程局部變量

文章目錄1.簡介2.每個線程的變量副本是存儲在哪裏的3.通過源碼分析ThreadLocal具體實怎樣工作的3.1set方法3.2get方法4.變量副本【每個線程中保存的那個map中的變量】是怎麼聲明和初始化的5.不同的線程局部變量

原创 java-反射與Class

文章目錄1.動態語言概述2.Java反射機制概述3.Class類的理解3.1獲取Class實例3.2獲取運行時類的對象4.instanceof與Class等價性5.反射提供的功能及相關api6,反射的應用:動態代理 1.動態語言概

原创 深入理解Cookie作用機制

文章目錄1.回顧2.Cookie跨域問題2.1跨域問題的引出2.2Cookie的域名2.3Cookie的路徑2.4Cookie的安全屬性 1.回顧 對於Cookie的基本知識即什麼是Cookie可以看一下: JavaWeb-Co

原创 踩坑:阿里雲oss上傳圖片報空指針異常

在做前後端分離項目的時候,要使用阿里雲oss遠程上傳圖片 @PostMapping("up") public R uploadOssFile(MultipartFile file){ //獲取上傳文件M

原创 springboot報錯無法讀取配置文件:Could not resolve placeholder 'xxx' in value "${XXXX}

在springboot項目中,通過@Value("${aliyun.oss.file.endpoint}")讀取application.properties配置文件的內容報錯: org.springframework.beans.

原创 vue實例中template: App

官網的描述: 模板將會替換掛載的元素。掛載元素的內容都將被忽略 也就是說:template: ‘’ 表示用替換index.html裏面的 舉個例子: main.js: ------------------ import App