Time of Update: 2018-07-25
第一章:java多線程技能 在學習線程之前我們首先要清楚一下 進程的概念: 進程是作業系統結構的基礎,是系統進行資源分派的和調度的獨立單位。windows上一個啟動並執行word,一個瀏覽器程式就稱之為一個進程。
Time of Update: 2018-07-25
第二章 對象及變數的並發訪問 本節主要總結了一些synchronized的使用方法: 在java中:“非安全執行緒”的問題存在於“執行個體變數”中,如果是方法內部的私人變數,則不存在“非安全執行緒“的問題。 synchronized加在方法的前部:
Time of Update: 2018-07-25
面向介面編程在Java web 三層架構的應用與使用原廠模式解決問題 為什麼要面向介面編程: 在應用中,我們一般都是面向介面編程的,這樣有利於系統的擴充與移植。就像Java Web中的三層架構:展現層、商務邏輯層、資料持久層一樣,上層都是調用下層的介面。因為一旦下層實現改變:比如持久層從資料庫操作更換為檔案操作,上層因為調用下層的介面而不用更改任何代碼,利於系統擴充與移植。 面向介面編程的思路要點: 舉一個例子,現在要添加一個使用者,資料持久層介面如下所示: &
Time of Update: 2018-07-25
設定步驟如下: 1.點 “window”-> "Preferences" -> "Java" -> "Installed JRES" 2.此時"Installed JRES"右邊是列表格窗格,列出了系統中的 JRE 環境,選擇你的JRE,然後點邊上的 "Edit...", 會出現一個視窗(Edit JRE)
Time of Update: 2018-07-25
在Java中有以下三種方法可以終止正在啟動並執行線程: 使用退出標誌,使線程正常退出,也就是當run方法完成後線程終止 使用stop方法強行終止線程,但不推薦使用這種方法,因為stop和suspend及resume一樣,都是作廢到期的方法,使用它們可能產生不可預料的結果 使用interrupt方法中斷線程,不過interrupt方法不會終止一個正常啟動並執行線程,只會給它設定一個中斷標記,需要對其進行判斷來停止線程運行 判斷線程是否是停止狀態有兩個方法:
Time of Update: 2018-07-25
之前的內容中,寫了幾篇關於J2EE規範的部落格,現在繼續來完善這些內容,這次內容主要補充上一篇部落格。 WebLogic Server使用JTA1.0.1a實現和管理事務 WebLogic Server提供以下支援: 建立唯一的事務標記符(XID) 支援可選的事務名稱 跟蹤事務涉及的對象 通知事務的資料庫 使用XA改寫2PC 執行復原 在失敗時執行自動的恢複過程 管理逾時 處理事務的步驟: 事務的範圍:
Time of Update: 2018-07-25
定時器 Timer的使用 在JDK庫中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一個任務。 Timer類的主要作用就是設定計劃任務,但封裝任務的類確實TimerTask類。執行計畫任務的代碼要放到TimerTask的子類中,因為TimerTask是一個抽象類別。 方法schedule(TimerTask task,Date time) 該方法的作用是在指定的日期執行一次某一任務。 方法schedule(TimerTask,Date
Time of Update: 2018-07-25
import java.util.Set; import java.util.TreeSet; public class Admin { public static void main(String[] args) { String fdbs = "WXB,WXA,FDA,WXB"; String[] str = fdbs.split(","); Set set = new TreeSet(); for (int i = 0; i <
Time of Update: 2018-07-25
13.1 集合介面 13.1.1 將集合的介面與實現分離 與現代的資料結構類庫的常見情況一樣,Java集合類庫也將介面(interface)與實現(impementation)分離。首先,看一下人們熟悉的資料結構——隊列(queue)是如何分離的。 隊列介面指出可以在隊列的尾部添加元素。在隊列的頭部刪除元素,並且可以尋找隊列中元素的個數。當需要收集對象,並按照“先進先出”的規則檢查對象時就應該使用隊列。 隊列通常有兩種實現形式:一種是使用迴圈數組,另一種是使用鏈表。 13.1
Time of Update: 2018-07-25
對Java中的靜態修飾符還是不太瞭解.如果定義個靜態方法,方法內部不涉及調用外部變數,比如說這個方法是為瞭解決某個問題的一個工具方法,就像"Array.getLong(arg0, arg1)"這種一樣,那麼這個靜態方法在遇到多線程問題的時候是否會存在安全隱患呢? 我寫了下面一段代碼,用兩個線程不停的去調用類中的一個靜態方法,試問:Sytem.err.println()中的內容是否會列印出來。
Time of Update: 2018-07-25
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.ResourceBundle;/** * * <b>Application
Time of Update: 2018-07-25
剛好最近項目中需要用到一點加密的東西,java安全類庫提供了一個 java.security.MessageDigest類,此 MessageDigest 類為應用程式提供資訊摘要演算法的功能,如 MD5 或 SHA 演算法。資訊摘要是安全的單向雜湊函數,它接收任意大小的資料,並輸出固定長度的雜湊值。有現成的當然是最好的,省事省力。 MD5的非常有實際應用性。有網友給出這樣的描述,可以參照一下:
Time of Update: 2018-07-25
寫一些Java架構的時候,經常需要通過反射get或者set某個bean的field,比較普通的做法是擷取field後調用java.lang.reflect.Field.get(Object),但每次都這樣調用,能否有最佳化的空間呢。 答案是有。 第一種:
Time of Update: 2018-07-25
因為畢業設計的緣故,研究了一下網站的加密,做了一個MD5加密,也算是一個小小的加密、但是在Web程式上不論是在用戶端還是服務端加密理論上都是不安全的,我們要使用HTTPS這個協議來保證通訊的全加密再加上MD5加密才比較安全、MD5是一個無法復原的密碼編譯演算法、所以一般來說只要加密就好、不需要解密程式.資料庫中存入的也是加密過得密碼就行了、下面直接上代碼 public class EncryptionByMD5 {public static String getMD5(byte[]
Time of Update: 2018-07-25
public class DoublyLinkList {private class Data{private Object obj;private Data left = null;private Data right = null;Data(Object obj){this.obj = obj;}}private Data first = null;private Data last = null;public void insertFirst(Object obj){Data data =
Time of Update: 2018-07-25
public class Code {private int data;private Code next;public int getData() { return data;}public void setData(int data) { this.data = data;}public Code getNext() { return next;}public void setNext(Code next) { this.next = next;}}
Time of Update: 2018-07-25
棧數組實現一:優點:入棧和出棧速度快,缺點:長度有限(有時候這也不能算是個缺點) public class Stack {private int top = -1;private Object[] objs;public Stack(int capacity) throws Exception{if(capacity < 0)throw new Exception("Illegal capacity:"+capacity);objs = new
Time of Update: 2018-07-25
[java] view plain copy print ? import java.security.*; public class MD5 {
Time of Update: 2018-07-25
擷取Java的32位MD5實現 public static String md5(String s) { char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; try { byte[] btInput = s.getBytes(); // 獲得MD5摘要演算法的
Time of Update: 2018-07-25
文章來源:http://blog.sina.com.cn/s/blog_700dec940100spox.html 他使用的是jdom.jar解析xml檔案 import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException;