原创 Jsp:內置對象

Session對象: **定義:**表示客戶端與服務器的一次會話,會話的生命週期定義爲用戶進入網站到所有相關瀏覽器關閉所經過的時間段,其存儲位置爲服務器的內存,爲不同的用戶保持着不同的session. 詳解: ①session對象

原创 內存分配與回收技術

簡言 Java技術體系提倡的自動內存管理最終可以歸結爲自動化的解決了兩個問題:給對象分配內存以及回收分配給對象的內存。對象內存的分配,往大方向講,就是在堆上分配,對象主要分配在新生代的Eden區上,如果啓動本地線程分配緩衝,將按線

原创 Jsp狀態管理(Cookie、Session)

http協議無狀態性: 超文本協議無狀態性,無法保存同一用戶不同時段請求狀態。 保存用戶狀態的兩大機制: ①Session ②Cookie Cookie簡介 定義:Web服務器保存在客戶端的一系列文本信息(判斷用戶是否登錄、購物車

原创 字符串子串求解(KMP算法)

引言 子串求解是面試中經常問到的算法問題,其方法有暴力匹配法、KMP方法 暴力匹配法 將設有一文本串S,其長度爲sLen,已匹配字符串M,其長度爲mLen。現需要求解M是否爲S的子串,並返回M在S中第一次出現的首字符H位置。 利用

原创 Jsp:基礎語法

Jsp註釋 HTML註釋:<!--客戶端可見--> JSP註釋:<%--客戶端不可見--%> JSP腳本註釋://單行註釋 /**/雙行註釋(客戶端均不可見) Jsp腳本 形式:<%Java代碼塊%>(其內部變量、方法生命週期

原创 Jsp:JavaBean

定義:符合某種規範的Java類,解決代碼重複編寫,減少代碼雍於,提高代碼可維護性。 規範:共有類、無參構造函數、屬性私有、提供getter和setter方法 存取javaBean有關動作元素:<jsp:userBean><jsp:

原创 Java內存區域以及對象創建

概述 對於Java程序員來說,在虛擬機自動內存管理機制的幫助下,不再需要爲每一個new操作去寫配對的delete/free代碼,不容易出現內存泄漏問題。不過由於虛擬機的內存控制權限過大,導致程序員對內存錯誤的排除變得異常艱難,因此

原创 Java與線程

線程的實現 線程是比進程更輕量級的調度執行單位,線程的引入,可以把一個進程的資源和執行調度分開,各個線程即可以共享進程資源(內存地址、文件I/O),又可以獨立調度(線程是CPU調度的基本單位),Thread類的大部分方法爲nati

原创 動態代理生成技術

技術基礎: ①程序運行時動態生成字節碼文件 ②需要反射機制的支持 優點:使得原始類和接口還未知的情況,就確定代理類的行爲,靈活運用在不同場景之中(僅代理接口中的方法,代理生成對象,僅能轉換爲被代理類實現的接口類型) 代碼應用解析

原创 Java內存模型

緩存一致性 在多處理器系統中,每個處理器都有自己的高速緩存,而它們又共享同一塊內存。當多個處理器的運算任務都涉及到同一塊內存區域時,將可能導致各自的緩存數據不一致。爲了解決一致性的問題,需要各個處理器訪問緩存是都遵守一些協議。

原创 垃圾收集器

概述 Java與C++之間有一堵由內存動態分配和垃圾收集技術所圍成的“高牆”,牆外面的人想進去,牆裏面的人卻想出來。目前內存動態分配與內存回收技術已經相當成熟,但仍然需要開發人員對該兩種機制有一個詳細的瞭解,當需要排查各種內存溢出

原创 java對象的初始化順序

對象初始化順序: 虛擬機初始化工作: ①虛擬機遇到new指令時,根據指令參數檢查是都能在常量詞中定位到一個類的符號引用,並且檢查這個符號引用代表的類是否已被加載、解析和初始化過。如果未被加載,必須先執行加載過程。 ②類加載檢查通過

原创 Memory異常

OutOfMemoryError 拋出範圍:Java虛擬機規範的描述中,出程序計數器外,虛擬機棧、本地方法棧、堆內存、方法區均可拋出OutOfMemoryError異常。 Java堆溢出:用於存儲對象,只要滿足不斷創建對象,並保證

原创 線程安全與鎖優化

線程安全 定義:當多個線程訪問同一個對象時,如果不用考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進行其他任何的協調操作,調用這個對象的行爲都可以獲得正確的結果,那這個對象時線程安全的 Java語

原创 No enum constant org.apache.ibatis.type.JdbcType.xxx

Mybatis對jdbcType的支持問題 背景:今天在Springboot項目中使用Mybatis連接Mysql數據庫的過程中,出現了No enum constant org.apache.ibatis.type.JdbcTyp