原创 設計模式(一)觀察者設計模式

       觀察者模式定義了對象間的一對多關係,讓一個或多個觀察者對象觀察一個主題對象。當主題對象發生改變時,系統可以通知所有依賴於此對象的觀察者對象,從而使觀察者對象可以自動更新。 下面給出一個簡單的示範程序: /** *  */pa

原创 數據庫連接池技術中dbcp、c3p0、jndi

不管通過何種持久化技術,都必須通過數據連接訪問數據庫,在Spring中,數據連接是通過數據源獲得的。在以往的應用中,數據源一般是 Web應用服務器提供的。在Spring中,你不但可以通過JNDI獲取應用服務器的數據源,也可以直接在Spri

原创 oracle數據庫索引

例如這樣一個查詢:select * from table1 where id=44。如果沒有索引,必須遍歷整個表,直到ID等於44的這一行被找到爲止

原创 函數和存儲過程的區別

函數和存儲過程的區別 從參數的返回情況來看:     如果返回多個參數值最好使用存儲過程,如果只有一個返回值的話可以使用函數; 從調用情況來看:     如果在SQL語句(DML或SELECT)中調用的話一定是存儲函數或存儲的封裝函數

原创 大型網站架構演變和知識體系

之前也有一些介紹大型網站架構演變的文章,例如LiveJournal的、ebay的,都是非常值得參考的,不過感覺他們講的更多的是每次演變的結果,而沒有很詳細的講爲什麼需要做這樣的演變,再加上近來感覺有不少同學都很難明白爲什麼一個網站需要那麼

原创 Spring學習總結(三)Spring容器中的Bean

Spring配置文件中的根元素--beans 比較常用的四個屬性: default-lazy-init   :beans 下所有bean的默認初始化行爲 defaul-autowire  :beans下所有元素的默認自動裝配行爲 defa

原创 Spring 學習總結(一)依賴注入的理解

         爲了方便理解依賴注入(或稱控制反轉),以一個形象化的 “通知用戶上山砍柴”爲 例子做比方, 而實現這一行爲可能有三種情況:          1、通知用戶(調用者)去砍柴後,用戶需要先自己去磨一把斧子(被調用者),然後再

原创 Spring學習總結(二)Spring容器

Spring的兩個核心接口BeanFactory和ApplicationContext都可以代表Spring容器,其中後者是前者的子接口。 BeanFactory的一個常用實現類:xmlBeanFactory。 ApplicationCo

原创 自定義java類實現類似spring的依賴注入功能

package com.zhjjie.util; import java.io.File; import java.io.IOException;

原创 Java多線程學習

        本文主要講了java中多線程的使用方法、線程同步、線程數據傳遞、線程狀態及相應的一些線程函數用法、概述等。在這之前,首先讓我們來了解下在操作系統中進程和線程的區別:   進程:每個進程都有獨立的代碼和數據空間(進程上

原创 Java中equals()與hashCode()方法詳解

java.lang.Object類中有兩個非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object類是類繼承結

原创 基於maven使用IDEA創建多模塊項目

一 項目工程目錄二 創建父工程三 創建公共工具類三 創建開發項目四 創建開發項目子模塊五 運行項目鑑於最近學習一個分佈式項目的開發,講一下關於使用IntelliJ IDEA基於Maven創建多模塊項目的實際開發,可能有不合適的地方,但是項

原创 git實用命令

Git實用命令一、常用命令git init     在本地新建一個repo,進入一個項目目錄,執行git init,會初始化一個repo,並在當前文件夾下創建一個.git文件夾. git clone     獲取一個url對應的遠程Git

原创 使用Java VisualVM監控JVM

我們經常需要對我們的開發的軟件做各種測試, 軟件對系統資源的使用情況更是不可少, 目前有多個監控工具, 相比JProfiler對系統資源尤其是內存的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯的監控工具. 這個工具就在J

原创 Java多線程學習

       寫在前面的話:此文只能說是java多線程的一個入門,其實Java裏頭線程完全可以寫一本書了,但是如果最基本的你都學掌握好,又怎麼能更上一個臺階呢?如果你覺得此文很簡單,那推薦你看看Java併發包的的線程池(Java併發編