原创 深入Java集合學習系列:HashMap的實現原理

1.    HashMap概述:    HashMap是基於哈希表的Map接口的非同步實現。此實現提供所有可選的映射操作,並允許使用null值和null鍵。此類不保證映射的順序,特別是它不保證該順序恆久不變。   2.    Ha

原创 HashMap實現原理分析

1. HashMap的數據結構 數據結構中有數組和鏈表來實現對數據的存儲,但這兩者基本上是兩個極端。 數組 數組存儲區間是連續的,佔用內存嚴重,故空間複雜的很大。但數組的二分查找時間複雜度小,爲O(1);數組的特點是:尋址容易,插

原创 《Spring 2.0技術手冊》 讀書筆記七-Spring的DAO框架(2)-JDBC支持

在上篇筆記中,說道使用JDBC存取數據庫時,流程大體相同,反覆使用較爲繁瑣。因此Spring採用了Template-Callback模式來簡化JDBC使用時的流程。 Spring提供了org.springframework.jdbc

原创 會話管理--session

什麼是Session 使用Cookie和附加URL參數都可以將上一次請求的狀態信息傳遞到下一次請求中,但是如果傳遞的狀態信息較多,將極大降低網絡傳輸效率和增大服務器端程序處理的難度。 Session技術是一種將會話狀態保存在服務器端的

原创 《Spring 2.0技術手冊》 讀書筆記七-Spring的DAO框架(1)-原理與DataSource注入

1.原理 何爲持久層?把內存裏的數據固化到硬盤上的過程,通常以數據庫文件的格式固化。DAO-Data Access Object,在應用程序中,需要使用到數據存取時,是通過一個數據存取接口來操作,而實際上進行數據存取的對象都要實現該接

原创 JVM學習筆記(二)------Java代碼編譯和執行的整個過程

Java代碼編譯是由Java源碼編譯器來完成,流程圖如下所示: Java字節碼的執行是由JVM執行引擎來完成,流程圖如下所示:   Java代碼編譯和執行的整個過程包含了以下三個重要的機制: Java源碼編譯機制類加載機制

原创 java synchronized詳解

Java語言的關鍵字,當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多隻有一個線程執行該段代碼。      一、當兩個併發線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間

原创 Spring原理概述

本文爲轉過來,對Spring進行了總體上的說明,有益於建立對Spring的總體把握和認識。   1、spring原理 spring的最大作用ioc/di,將類與類的依賴關係寫在配置文件中,程序在運行時根據配置文件動態加載依賴的類,

原创 兩個對象值相同,有相同的hash code

兩個對象值相同(x.equals(y) == true),則一定有相同的hash code。 這是java語言的定義:  因爲:Hash,一般翻譯做“散列”,也有直接音譯爲"哈希"的,就是把任意長度的輸入(又叫做預映射, pre

原创 HashMap的工作原理

HashMap的工作原理是近年來常見的Java面試題。幾乎每個Java程序員都知道HashMap,都知道哪裏要用HashMap,知道Hashtable和HashMap之間的區別,那麼爲何這道面試題如此特殊呢?是因爲這道題考察的深度很深。

原创 Jvm工作原理學習筆記

一、         JVM的生命週期 1.       JVM實例對應了一個獨立運行的java程序它是進程級別 a)     啓動。啓動一個Java程序時,一個JVM實例就產生了,任何一個擁有public static void

原创 月薪3萬的程序員都避開了哪些坑

程序員薪水有高有低,有的人一個月可能拿30K、50K,有的人可能只有2K、3K。同樣有五年工作經驗的程序員,可能一個人每月拿20K,一個拿5K。是什麼因素導致了這種差異?我特意總結了容易導致薪水低的九大行爲表現,避開這些大坑,你就離高

原创 Java中靜態變量的適用場景

Java類中的靜態變量在程序運行期間,其內存空間對所有該類的對象實例而言是共享的,有些時候可以認爲是全局變量。因此在某些時候爲了節省系統內存開銷、共享資源,可以將類中的一些變量聲明爲靜態變量,通過下面的例子,你可以發現合理應用靜態變量帶來