Time of Update: 2018-12-08
複製代碼 代碼如下:import java.util.regex.Matcher;import java.util.regex.Pattern; /** * @author lei * 2011-9-2 */public class StringUtils { public static String replaceBlank(String str) { String dest = ""; if (str!=null) { Pattern
Time of Update: 2018-12-08
複製代碼 代碼如下:try { String targetImg = "D:/Blue hills.jpg";// String pressImg = "D:/20130311220300.jpg"; String pressImg = "D:/html_original.jpg"; File f1 = new File(targetImg); Image src =
Time of Update: 2018-12-08
學jsp這麼長時間,做的項目也有七八個了,可所有的項目都是使用者登入就直接跳轉到其擁有許可權的頁面,或者顯示可訪問頁面的連結。使用這種方式來幼稚地控制存取權限。從來沒有想過如果我沒有登入,直接輸入地址也可以直接存取使用者的頁面的。在jsp中許可權的控制是通過Filter過濾器來實現的,所有的開發架構中都整合有Filter,如果不適用開發架構則有如下實現方法:LoginFilter.java複製代碼 代碼如下:public class LoginFilter implements Filter {
Time of Update: 2018-12-08
1、先在項目中建立一個包(如:config),再建立一個設定檔(如:a.properties),添加配置資訊如下:比如:複製代碼 代碼如下:name=kakaage=282、代碼:複製代碼 代碼如下:import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class PropertyTest { public static void main(String[]
Time of Update: 2018-12-08
java在圖形處理時調用了本地的圖形處理庫。在利用Java作圖形處理(比如:圖片縮放,圖片簽名,產生報表)時,如果運行在windows上不會出問題。如果將程式移植到Linux/Unix上的時候有可能出現圖形不能顯示的錯誤。提示資訊:"Can't connect to X11 window server"這是由於Linux的圖形處理需要一個X Server伺服器。解決辦法:1.如果伺服器上安裝有圖形介面,可以通過設定環境變數:DISPALY=127.0.0.1:0.0解決。2.
Time of Update: 2018-12-08
Message Digest Algorithm MD5(中文名為訊息摘要演算法第五版)為電腦安全領域廣泛使用的一種散列函數,是一種比較常用的雜湊演算法。 java中可以用兩種方法實現,我們先說麻煩一點的,代碼: 複製代碼 代碼如下:public class md5_test { //MD5的字串常量 private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "
Time of Update: 2018-12-08
做了N年的java開發從沒有自己寫過一個網站,最近亂忙活弄了一個企業家宣傳網站。 跟大家一樣遇到了中文字元集亂碼問題,為了大家能少走一些彎路,所以在此分享一下即簡單又實用的解決方案。 1. POST 資料傳遞 接收頁 複製代碼 代碼如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String
Time of Update: 2018-12-08
繼承類的構建過程是向外擴散的,子類初始化了,父類一定也初始化了複製代碼 代碼如下:class Art{ Art(){ System.out.println("Art"); }}class Drawing extends Art{ Drawing(){ System.out.println("Drawing"); }}public class Cartoon extends Drawing { Cartoon(){ System.out.println("Cartoon"); }
Time of Update: 2018-12-08
規則1(無繼承情況下):對於靜態變數、靜態初始化塊、變數、初始化塊、構造器,它們的初始化順序依次是(靜態變數、靜態初始化塊)>(變數、初始化塊)>構造器證明代碼:複製代碼 代碼如下:public class InitialOrderTest { // 靜態變數 public static String staticField = "靜態變數"; // 變數 public String field = "變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
wait(),notify(),notifyAll()不屬於Thread類,而是屬於Object基礎類,也就是說每個對象都有wait(),notify(),notifyAll()的功能.因為每個對象都有鎖,鎖是每個對象的基礎,當然操作鎖的方法也是最基礎了。wait導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或被其他線程中斷。wait只能由持有對像鎖的線程來調用。notify喚醒在此對象監視器上等待的單個線程。如果所有線程都在此對象上等待,
Time of Update: 2018-12-08
首先來看看以下程式將會列印出什麼:複製代碼 代碼如下:class Dog { public static void bark() { System.out.print("woof "); }}class Basenji extends Dog { public static void bark() { }}public class Bark { public static void main(String args[]) { Dog
Time of Update: 2018-12-08
雖然關於Java字串“==”和“equals”的問題是Java學習中的最基礎的一個問題,但是仍然有不少剛剛學習Java的同學搞不清楚裡面的原理,最近和朋友討論到這個問題,所以寫篇文章給大家分享一下我自己的理解。首先讓我們看一個例子:複製代碼 代碼如下: public class TestStringEquals { public static void main(String[] args) { String a = "test";
Time of Update: 2018-12-08
1.垃圾收集演算法的核心思想Java語言建立了垃圾收集機制,用以跟蹤正在使用的對象和發現並回收不再使用(引用)的對象。該機制可以有效防範動態記憶體分配中可能發生的兩個危險:因記憶體垃圾過多而引發的記憶體耗盡,以及不恰當的記憶體釋放所造成的記憶體非法引用。垃圾收集演算法的核心思想是:對虛擬機器可用記憶體空間,即堆空間中的對象進行識別,如果對象正在被引用,那麼稱其為存活對象,反之,如果對象不再被引用,則為垃圾對象,可以回收其佔據的空間,用於再分配。垃圾收集演算法的選擇和垃圾收集系統參數的合理調節直接
Time of Update: 2018-12-08
我們先看下面一個例子:複製代碼 代碼如下: import java.math.BigInteger; public class BigProblem { public static void main(String[ ] args) { BigInteger fiveThousand = new BigInteger("5000"); BigInteger fiftyThousand = new
Time of Update: 2018-12-08
java的比較子有兩類,分別是Comparable介面和Comparator介面。在為對象數組進行排序時,比較子的作用非常明顯,首先來講解Comparable介面。讓需要進行排序的對象實現Comparable介面,重寫其中的compareTo(T o)方法,在其中定義定序,那麼就可以直接調用java.util.Arrays.sort()來排序對象數組,執行個體如下:複製代碼 代碼如下:class Student implements Comparable<Student>{
Time of Update: 2018-12-08
複製代碼 代碼如下:class Parent { // 靜態變數 public static String p_StaticField = "父類--靜態變數"; // 變數(其實這用對象更好能體同這一點,如專門寫一個類的執行個體) //如果這個變數放在初始化塊的後面,是會報錯的,因為你根本沒有被初始化 public String p_Field = "父類--變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
首先看這兩類都實現List介面,而List介面一共有三個實作類別,分別是ArrayList、Vector和LinkedList。List用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。3個具體實作類別的相關區別如下:1.ArrayList是最常用的List實作類別,內部是通過數組實現的,它允許對元素進行快速隨機訪問。數組的缺點是每個元素之間不能有間隔,當數組大小不滿足時需要增加儲存能力,就要講已經有數組的資料複製到新的儲存空間中。當從ArrayList的中間位置插入或者刪除元素時,需要
Time of Update: 2018-12-08
原理是使用LinkedHashMap來實現,當緩衝超過大小時,將會刪除最老的一個元組。實現代碼如下所示複製代碼 代碼如下:import java.util.LinkedHashMap;import java.util.Map;public class LRUCache { public static class CachedData { private Object data = null; private long time = 0; private boolean
Time of Update: 2018-12-08
1、String類、StringBuilder類、StringBuffer類String對象是不可變的,重載了運算子+,於是String
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下:import java.io.IOException;import java.io.InputStream;import java.net.URL;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import