原创 java 歸併

基本思想:   歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分爲若干個子序列,每個子序列是有序的。然後再把有序子序列合併爲整體有序序列。 歸併排序示例:     合併方法: 設r[i…n]由兩個

原创 SQL Server邏輯讀、預讀和物理讀

SQL Server數據存儲的形式   預讀:用估計信息,去硬盤讀取數據到緩存。預讀100次,也就是估計將要從硬盤中讀取了100頁數據到緩存。  物理讀:查詢計劃生成好以後,如果緩存缺少所需要的數據,讓緩存再次去讀硬盤。物理讀10頁,從硬

原创 java 快排

快速排序的基本思想:          通過一趟排序將待排序記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分關鍵字小,則分別對這兩部分繼續進行排序,直到整個序列有序。 快速排序的示例: (a)一趟排序的過程: (b)排序的全過

原创 word文檔從服務器導出(用freemarker模板導出)

之前寫過一篇,用Java編寫生成word文檔,動態添加數據到word文檔buguo http://blog.csdn.net/u012438476/article/details/64443535 該方法適合小的java程序,當用到ja

原创 java反射技術

今天我們來看一下Java中的反射技術: 首先來了解一下Java中的反射的一些概念: Java中的反射是1.2引入的 反射的基石:class類 Class類的各個實例對象分別對應各個類在內存中的字節碼,例如Person類的字節碼,Array

原创 我們能從java的HelloWorld學到什麼?

這是每個Java程序員都知道的。雖然簡單,但是從一個簡單的問題可以引入更深的思考。在這篇文章中,我們將討論這個簡單的程序。如果能更多的幫到你,請留下寶貴的意見。 HelloWorld.java public class Hello

原创 Java中@Override的作用

@Override是僞代碼,表示重寫(當然不寫也可以),不過寫上有如下好處: 1、可以當註釋用,方便閱讀; 2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯。例如,你如果沒寫@Override,而

原创 Java中的多線程

引 如果對什麼是線程、什麼是進程仍存有疑惑,請先Google之,因爲這兩個概念不在本文的範圍之內。 用多線程只有一個目的,那就是更好的利用cpu的資源,因爲所有的多線程代碼都可以用單線程來實現。說這個話其實只有一半對,因爲反應“多角色”的

原创 Callable與Future的介紹

Callable與 Future 兩功能是Java在後續版本中爲了適應多並法才加入的,Callable是類似於Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其他線程執行的任務。 Callable的接

原创 哈希表(散列表)原理詳解

什麼是哈希表?    哈希表(Hash table,也叫散列表),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的

原创 java中volatile關鍵字的含義

在java線程併發處理中,有一個關鍵字volatile的使用目前存在很大的混淆,以爲使用這個關鍵字,在進行多線程併發處理的時候就可以萬事大吉。 Java語言是支持多線程的,爲了解決線程併發的問題,在語言內部引入了 同步塊 和 volati

原创 SQL Server 表變量和臨時表的區別

一、表變量   表變量在SQL Server 2000中首次被引入。表變量的具體定義包括列定義,列名,數據類型和約束。而在表變量中可以使用的約束包括主鍵約束,唯一約束,NULL約束和CHECK約束(外鍵約束不能在表變量中使用)。定義表變量

原创 類加載器詳解

首先來了解一下字節碼和class文件的區別: 我們知道,新建一個Java對象的時候,JVM要將這個對象對應的字節碼加載到內存中,這個字節碼的原始信息存放在classpath(就是我們新建Java工程的bin目錄下)指定的目錄下的.clas

原创 註解的使用

我們知道註解是在JDK1.5引入的,可能有的人沒有用過註解,所以感覺註解這個東西沒有什麼用,但是深入瞭解註解,對以後學習框架有所幫助的,後面提到的JavaWeb的框架中很多都是基於註解的技術, 其實註解你可以把他認爲是一種標記,和接口差不

原创 SQLServer XML類型

SQL Server從2005起開始支持xml類型,這個數據類型對於後期的改變非常有用。一對多的關係在後期變成了多對多的關係,XML類型就是一個不錯的選擇。   1、創建測試數據   創建表   --創