Time of Update: 2015-03-15
標籤:1.線程的概念:線程(thread)是指一個任務從頭至尾的執行流,線程提供一個運行任務的機制,對於java而言,一個程式中可以並發的執行多個線程,這些線程可以在多處理器系統上同時運行。當程式作為一個應用程式運行時,java解譯器為main()方法啟動一個線程。 2.並行與並發:(1)並發:在單一處理器系統中,多個線程共用CPU時間,而作業系統負責調度及分配資源給它們。(2)並行:在多處理器系統中,多個處理器可以同時運行多個線程,這些線程在同一時間可以同時運行,而不同於並發,只能多
Time of Update: 2015-03-15
標籤:今天遇到一個大集合裡面的資料刪除問題, 因為是一個大集合,如果同時傳遞到資料庫,那麼就會造成資料庫壓力 所以分批次的進行大量操作 其實 也可以採用多線程來處理或者多批次加多線程來處理都是可以的 下面的案例 主要講述是大集合拆分成小集合的代碼 避免下次用到忘記了! 啥也不說,直接上代碼,避免下次會用到,先記著 public static void main(String[] args) { List<String> list=new
Time of Update: 2015-03-15
標籤:前幾節都是基礎中的基礎,從第三講的筆記開始,每次筆記針對Java的一個知識塊兒。 Java異常處理 1、什麼是異常? 異常是指運行期出的錯誤。比如說:除以一個0;數組越界;讀取的檔案不存在。 異常處理,要把異常控制在程式員合理範圍之內。如數組越界indexOutOfArray,在使用者看來是不可以被理解的,所以,程式員要捕獲這種異常,反饋到前端告訴使用者是“超出了範圍”。 Java中針對例外狀況事件,自動產生一個異常對象。這個異常對象封裝了
Time of Update: 2015-03-14
標籤:java內建的會忽略空內容,guava Splitter不會忽略.或者可以自由選擇的忽略. /** * {@code Splitter}和{@code Joiner} 這兩個對於map的相反的操作,在web架構例如spring mvc中用到過. * * 對於get url後面的參數和pos form中前端參數的串連和後端的拆分都有用到.每個架構的處理思維是一樣的. * * @author doctor * * @since 2015年3月14日 下午9:00:17 */........
Time of Update: 2015-03-15
標籤:一、筆試題目:1. 簡述類與對象的區別,Java 虛函數的作用。類是對象的抽象,對象是類的具體執行個體。類是抽象的,不佔用記憶體,而對象是具體的,佔有記憶體空間。java中沒有虛函數的概念,普通函數就相當於C++中的虛函數,不過可以在函數前加final使函數不能被重寫。虛函數的作用是允許在衍生類別中重新定義與基類同名的函數,是多態性的一種體現。2. Database table 寫SQL語句去掉重複的記錄,保留其中ID最小的一條。delete from tablename
Time of Update: 2015-03-14
標籤:Classpath是Java中的重要概念:它描述了Java虛擬機器在運行一個Class時在哪些路徑中載入要啟動並執行類以及啟動並執行類要用到的類簡單的說,就是像作業系統的path只不過這個classpath是由Java的虛擬機器來使用尋找需要載入的類而作業系統的path是由作業系統用來尋找使用者輸入的可執行程式同path一樣,classpath也是一個環境變數,可以通過set命令來設定Classpath的順序和類版本衝突:Java虛擬機器在載入類的時候尋找classpath是有順序的如果在
Time of Update: 2015-03-15
標籤: Java的反射機制是Java語言很重要的一個特性,先從Sun官網上看一下官網是如何定義反射機制的。
Time of Update: 2015-03-14
標籤:本文採用java多線程實現了類比車站多個車票賣票的功能。關鍵詞:java多線程 共用變數 實現runnable介面 volatile 線程同步。代碼如下Ticket類package ex7_TicketSaler;/*同一對象的多個線程thread0/1/2,對共用變數count的操作,需要將count的值聲明為volatile * 並且因為多個線程操作的是同一個對象ticket,因此count是資源共用的 * */public class Ticket
Time of Update: 2015-03-15
標籤:CountDownLatch 1、類介紹一個同步輔助類,在完成一組正在其他線程中執行的操作之前,它允許一個或多個線程一直等待。用給定的計數 初始化 CountDownLatch。由於調用了 countDown() 方法,所以在當前計數到達零之前,await 方法會一直受阻塞。之後,會釋放所有等待的線程,await 的所有後續調用都將立即返回。這種現象只出現一次——計數無法被重設。 一個線程(或者多個), 等待另外N個線程完成某個事情之後才能執行
Time of Update: 2015-03-15
標籤:(此話題將不斷更新,請留意)第一,談談final, finally, finalize的差別。 final 用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結構的一部分,表示總是運行。finalize是 Object類的一個方法,在垃圾收集器啟動並執行時候會調用被回收對象的此方法,能夠覆蓋此方法提供垃圾收集時的其它資源回收,比如關閉檔案等。 第二,Anonymous Inner Class (匿名內部類)
Time of Update: 2015-03-14
標籤:Q:剛才我參加了面試,面試官問我如何寫出會發生記憶體泄露的Java代碼。這個問題我一點思路都沒有,好囧。A1:通過以下步驟可以很容易產生記憶體泄露(程式碼不能訪問到某些對象,但是它們仍然儲存在記憶體中):應用程式建立一個長時間啟動並執行線程(或者使用線程池,會更快地發生記憶體泄露)。線程通過某個類載入器(可以自訂)載入一個類。該類分配了大塊記憶體(比如new byte[1000000]),在某個靜態變數儲存一個強引用,然後在ThreadLocal中儲存它自身的引用。分配額外的記憶體new
Time of Update: 2015-03-15
標籤:aop cglib spring 事件 編程 一、 引言AOP(Aspect-Oriented
Time of Update: 2015-03-14
標籤:SDUT2525:A-B (模板題)import java.util.Scanner;import java.math.*;public class Main{ public static void main(String[] args) { Scanner ci = new Scanner(System.in); BigInteger a; BigInteger b; while(ci.hasNext())
Time of Update: 2015-03-14
標籤:反射就是把Java類中的各種成分映射成相應的java類。Class類-->java程式中的各個java類屬於同一事物,描述這類事物的Java類名就是Class。Class.forName的作用:返回類的位元組碼,返回的方式有兩種,一種是這個類曾被載入過,則直接從JVM中返回位元組碼,另一種是JVM中沒用這個類的位元組碼,得用類載入器先將位元組碼載入到JVM中,然後返回位元組碼。得到類的位元組碼的三種方式1.類名.class2.對象.getClass();3.Class.forName
Time of Update: 2015-03-14
標籤:volatile提供了弱同步機制,用來確保將變數更新通知到其它線程。volatile變數不會被緩衝在寄存器中或者對其它處理器不可見的地方,因此在讀取volatile變數時總會返回最新寫入的值。可以想象成如下語義,然而volatile是更輕量級的同步機制。volatile只能確保可見度,但不能保證原子性。也就是說不能在複合操作用volatile變數,比如i++。public synchronized void setValue(in
Time of Update: 2015-03-15
標籤:最近學習struts,韓大師的視頻講的很精彩,也很詳細,讓我回味不已,看完struts的基本用法之後,突然想與Net的MVC架構做個對比,或許這樣會理解的更深刻一些。當然,一下整理的都只是鄙人粗淺的總結,必定會有一些地方需要大家指正,望高手不吝賜教。 首先從整體流程上做一下對比:1. Net的MVC主要流程時序圖:2.
Time of Update: 2015-03-14
標籤: JDK是支援Java程式開發的最小環境集,JRE是支援Java程式啟動並執行標準環境,JRE是JDK的一部分。 Java 1.0版本誕生於1995年,其使用的虛擬機器是Sun Classisc VM,這款虛擬機器已經不再使用。JDK1.3時,HotSpot VM成為了預設的虛擬機器。其他較為出名的Java虛擬機器還包括JRockit、J9等。 JDK1.5中的java.util.concurrent包實現了一個粗粒度的
Time of Update: 2015-03-14
標籤: 一、Lambda運算式的組成主要有傳入參數列表(參數1,參數2,...),箭頭 ->,及傳回值,可以是某個值,或者結構體。 如下舉一個小小的例子: 在沒有使用Lambda運算式時: import java.util.stream.Stream;/** * * @author Kangjun */public class Demo { public static void main(String[] args){ Dog dog1 =
Time of Update: 2015-03-14
標籤:一、序列化和還原序列化的概念 把對象轉換為位元組序列的過程稱為對象的序列化。 把位元組序列恢複為對象的過程稱為對象的還原序列化。 對象的序列化主要有兩種用途: 1) 把對象的位元組序列永久地儲存到硬碟上,通常存放在一個檔案中; 2) 在網路上傳送對象的位元組序列。 在很多應用中,需要對某些對象進行序列化,讓它們離開記憶體空間,入住物理硬碟,以便長期儲存。比如最常見的是Web伺服器中的Session對象,當有
Time of Update: 2015-03-14
標籤:package com.czj;public class Person { String str= "string"; public Person() { System.out.println("person 空建構函式"); } public Person(String