原创 JAVA基礎複習(二),HashMap的實現原理
HashMap的JDK1.8的實現主要是由數組+單向鏈表+紅黑樹組成的,數據存儲結構如下圖。(JDK1.8之前採用的只是,數組+單向鏈表) 當鏈表長度大於8時會先判斷下,數組的長度是否小於64,如果小於則進行數組擴容;否則將鏈表結構轉換爲
原创 Spring源碼解析複習
1.spring中如何解決循環依賴問題? 首先我們來說一下什麼是循環依賴,所謂的循環依賴是指A類中有B類的屬性,而B類中包含A類的屬性。 spring中解決循環依賴有個前置條件,就是隻針對scope是singleton的類纔對循環依賴的問
原创 JAVA基礎知識複習(一)
1.String str="i"與 String str=new String("i")一樣嗎? 不一樣,前一個是先去常量池中去找看看有沒有“i”如果有的話,直接引用,否則就是在常量池中新建一個對象; 後一種,是直接在JVM的堆內存中去新
原创 VELOCITY 模板動態生成建表SQL
最近由於項目功能實現的需要(需要動態建表前端傳建表相關信息字段後端完成自動建表),採用了Velocity模板引擎來實現動態生成創建數據庫表的SQ語句,並用mybatis執行SQL。velocity下文簡稱vy 項目maven依賴: <d
原创 JVM知識點複習
JVM = 類加載器(classloader) + 執行引擎(execution engine) + 運行時數據區域(runtime data area) 運行時數據區域 JVM內存中的運行時數據區分爲:方法區,虛擬機棧,堆
原创 VELOCITY 模板的應用
最近由於項目功能實現的需要,採用了Velocity模板引擎來實現動態生成創建數據庫表的SQ語句,之後採用mybatis執行生成的SQL。(Velocity下文簡稱vy) Velocity 官網:http://velocity.apache
原创 多線程知識點整理(一)
多線程是爲了提高CPU的處理效率,也即提高程序的執行效率而引進的。因爲在操作系統中CUP,內存,硬盤(IO設備)3者之間存在處理速度上的顯著差異這是硬件層面無法解決的矛盾。CPU的處理速度>內存>硬盤(IO設備),爲了平衡和內存之間速度差
原创 Spring 複習之AOP
什麼是AOP? Aop是有別與OOP模式的切面編程模式。OOP將軟件系統分爲了多個模塊類似的,用戶管理模塊,訂單管理等,而AOP是對OOP模式的一種補充,把各個模塊中需要重複涉及到的功能點給抽取出來做成一個切面的形式來提供給各個模塊使用,
原创 @Value在工具類中取到的值爲null
@Component public class MailUtil { /** 日誌 */ private static Logger log = LoggerFactory.getLogger(MailUtil.class); /**
原创 泛型通配符
泛型的通配符 :?,表示可以設置任何泛型類型,但是由於類型的不確定性這個類型不能被修改。 衍生的兩個子通配符: ?extends 類:設置泛型上限,如? extends Number,表示?泛型類型只能爲Number或Number的子類,
原创 用selectKey獲取id值爲負數
項目用的是oracle結合mybatise,可能是受Mysql的影響過深,我在上層(contoller層)獲取用這種方式 select nvl(max(ID)+1,1) from ED
原创 Tomcat啓動項目時加載了兩遍Spring配置文件
解決方式,將Tomcat下的發佈路徑不直接放到webapps目錄下,而是在Tomcat的webapps目錄下建一個子目錄,並將war發佈到改子目錄下,就解決了重複加載spring配置的問題了。當然也可以將
原创 Matcher,Pattern
Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(string); matcher 有find(),matches(),lookin
原创 spring結合disconf時@Value註解獲取不到值
在controller中利用@Value註解獲取配置信息時,發現沒有獲取到,網上看了很多文章,由於在項目中集成了disconf與網友提供的方案稍有出入。首先我們得知道, 在使用spring mvc時,實
原创 關於oracle字段精度和javaType及jdbcType
最近在做項目過程中,遇到的一個業務是關於money 的,跟錢有關係的一般都是大事了~最初開發時候對此不是很注意,在建表之初隨隨便便就對那個字段設了個NUMBER(16),後面自己在做測試的時候發現了。。。這時候就要修改字段精度了,因爲表中