Time of Update: 2018-12-08
在安裝好Java SDK後,還需要設定一些系統變數,系統變數的設定可以在系統屬性-進階-環境變數中進行 JAVA_HOME=JAVA安裝目錄CLASSPATH=… 庫路徑,可以是目錄或jar檔案,如C:\j2sdk1.4.0_01\lib\dt.jar;d:\java,注意兩個路徑間用分號隔開 如果要使用tomcat,則應該設定CATALINA_HOME=TOMCAT安裝目錄
Time of Update: 2018-12-08
java虛擬機器只有所有啟動並執行線程為後台線程時退出。這就是說我們建立一個線程,如果將它設定成daemon的,那麼即使它還在執行,虛擬機器在完成其他任務後也會退出。測試代碼: 1 package org.foo.go; 2 class Go { 3 public static void main(String[] args) 4 { 5 Thread myThread = new Thread (){ 6 public
Time of Update: 2018-12-08
@鄭昀匯總使用 TDA 工具,看到大量 Java Thread State 的第一反應是:1,線程狀態為“waiting for monitor entry”:意味著它 在等待進入一個臨界區 ,所以它在”Entry Set“隊列中等待。此時線程狀態一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object monitor) 2,線程狀態為“waiting on
Time of Update: 2018-12-08
jstack Dump 記錄檔中的線程狀態dump 檔案裡,值得關注的線程狀態有:死結,Deadlock(重點關注) 執行中,Runnable 等待資源,Waiting on condition(重點關注) 等待擷取監視器,Waiting on monitor entry(重點關注)暫停,Suspended對象等待中,Object.wait() 或
Time of Update: 2018-12-08
經常我們要刪除集合中的某些元素。有些可能會這麼寫。複製代碼 代碼如下: public void operate(List list){ for (Iterator it = list.iterator(); it.hasNext();) { String str = (String)it.next(); if (str.equals("chengang")){ list.remove(str); } } } 這種寫法一運行就會報如下異常: Exception in
Time of Update: 2018-12-08
快速排序作為一種高效的排序演算法被廣泛應用,SUN的JDK中的Arrays.sort 方法用的就是快排。快排採用了經典的分治思想(divide and conquer):Divide:選取一個基元X(一般選取數組第一個元素),通過某種分區操作(partitioning)將數組劃分為兩個部分:左半部分小於等於X,右半部分大於等於X。Conquer: 左右兩個子數組遞迴地調用Divide過程。Combine:快排作為就地排序演算法(in place
Time of Update: 2018-12-08
一、JDBC串連DB2複製代碼 代碼如下:Class.forName("Com.ibm.db2.jdbc.net.DB2Driver"); String url="jdbc:db2://dburl:port/DBname" cn = DriverManager.getConnection( url, sUsr, sPwd ); Class.forName("Com.ibm.db2.jdbc.net.DB2Driver"); String
Time of Update: 2018-12-08
第一,談談final, finally, finalize的區別。 final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載 finally?再異常處理時提供 finally
Time of Update: 2018-12-08
newInstance()使用類載入機制,new是建立一個新類。從JVM角度看,使用new建立一個類的時候,這個類可以沒有被載入。但是使用newInstance()方法的時候,就必須保證這個類已載入且類已經串連了。複製代碼 代碼如下:String className="test";Class c=Class.forName(className); factory=(ExampleInterface)c.newInstance();newInstance():若類型。低效率,只能調用無參構造方法,
Time of Update: 2018-12-08
Java圖片壓縮代碼 複製代碼 代碼如下:package com.img; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import
Time of Update: 2018-12-08
覺得作者寫得太好了,不得不收藏一下。對這個例子的理解://型別參數不能用基本類型,T和U其實是同一類型。//每次放新資料都成為新的top,把原來的top往下壓一級,通過指標建立連結。//末端哨兵既是預設構造器建立出的符合end()返回true的節點。複製代碼 代碼如下://: generics/LinkedStack.java// A stack implemented with an internal linked structure.package generics;public
Time of Update: 2018-12-08
JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾、中間 複製代碼 代碼如下:String str = " hell o "; String str2 = str.replaceAll(" ", ""); System.out.println(str2); 3.或者replaceAll(" +",""); 去掉所有空格 4.str = .replaceAll("\\s*"
Time of Update: 2018-12-08
Timer有兩種執行任務的模式,最常用的是schedule,它可以以兩種方式執行任務:1:在某個時間(Data),2:在某個固定的時間之後(int delay).這兩種方式都可以指定任務執行的頻率.看個簡單的例子:複製代碼 代碼如下:import java.io.IOException;import java.util.Timer;public class TimerTest { public static void main(String[] args){
Time of Update: 2018-12-08
一.利用二進位狀態法求排列組合,此種方法比較容易懂,但是運行效率不高,小資料排列組合可以使用複製代碼 代碼如下:import java.util.Arrays;//利用二進位演算法進行全排列//count1:170187//count2:291656public class test { public static void main(String[] args) { long start=System.currentTimeMillis(); count2()
Time of Update: 2018-12-08
複製代碼 代碼如下:package test001;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JToolBar;public class TestJOptionPane implements
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.