Time of Update: 2018-12-04
一、利用介面實現多種形狀面積累加public interface Shape {//protected double area;public abstract double computeArea();}public class Rectangle implements Shape {protected double width,height;public Rectangle(double _width,double _height) {// TODO Auto-generated
Time of Update: 2018-12-04
import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class Du {public static void main(String[] args) {Map map = new HashMap();visitMapByKey(map);//通過key遍曆visitMapByEntry(map);//通過entry遍曆}private
Time of Update: 2018-12-04
Andoird 中使用了一種不同傳統JavaJNI的方式來定義其native的函數。其中很重要的區別是Andorid使用了一種Java 和 C函數的映射表數組,並在其中描述了函數的參數和傳回值。這個數組的類型是JNINativeMethod,定義如下: typedef struct {const char* name;const char* signature;void* fnPtr;}
Time of Update: 2018-12-04
註:此程式是根據網上的一位網友的程式最佳化改編而來。因為該網友的網址記不清了,所以未註明原來的出處。見諒!package com.work.util;/** * @author wangmj * 編寫時間:2005-8-2 <br /> * 最佳化:2008-07-03 * 類的名稱為:RMB.java <br /> * 比較完善的解決方案。 測試通過。 <br /> *
Time of Update: 2018-12-04
package com.work.util;/** * @author wangmj * 編寫時間:2005-8-2 <br /> * 所在的project名稱:00newframe <br /> * 類的名稱為:Lunar.java <br /> */import java.util.Calendar;import java.util.Date;import
Time of Update: 2018-12-04
package com.work.pattern;public class Singleton2 {private static Singleton2 instance = new Singleton2();private Singleton2(){}public static Singleton2 getInstance(){return instance;}}================單例模式二====================================package
Time of Update: 2018-12-04
Dalvik虛擬機器和一般JAVA虛擬機器(Java VM)不同,它執行的不是JAVA標準的位元組碼(bytecode)而是Dalvik可執行格式(.dex)中執行檔案。在執行的過程中,每一個應用程式即一個進程(Linux的一個Process)。二者最大的區別在於:Java VM是以基於棧的虛擬機器(Stack-based),Dalvik是基於寄存器的虛擬機器(Register-based)。 應用程式架構(Application Framework)
Time of Update: 2018-12-04
概要:介紹泛型的幾種使用方法。簡單類和介面的定義:public class Pair<T> {private T first;public Pair(T first) {this.first = first;}public T getFirst() {return first;}}public interface ICache<K, V> {public V put(K key, V value);public V get(K
Time of Update: 2018-12-04
每當啟動一個新線程時,Java虛擬機器都會為它分配一個Java棧。Java棧以幀為單位儲存線程的運行狀態。虛擬機器只會直接對Java棧執行兩個操作:以幀為單位的壓棧或出棧。當線程調用一個Java方法時,虛擬機器都會在該線程的Java棧中壓入一個新棧。棧幀:棧幀由三部分組成:局部變數,運算元棧和棧資料區。當虛擬機器調用一個Java方法時,它從對應類的資訊中得到此方法的局部變數和操作資料棧的大小,並據此分配棧幀記憶體,然後壓入Java棧中。1)局部變數:Java棧幀的局部變數區被組織為一個以位元組為
Time of Update: 2018-12-04
ReentrantLock 在多線程情況下要遠勝synchronize,這點沒有疑問。最近要寫個程式,有個變數是有多數情況下是一個線程讀寫,有少數情況下是多個線程並發讀寫。所以要測試下ReentrantLock 在單線程下和synchronize的效率對比。在測試的過程中發現一個有意思的現象。測試代碼見後面。測試代碼1結果:noLockTime: 0:00:00.004noLockTime: 0:00:00.006noLockTime: 0:00:00.000syncTime: 0:00:02.
Time of Update: 2018-12-04
今天在用VisualVM查看進程的堆dump時,發現一些有意思的地方,見:在“OQL控制台”頁面中可以看到“資源過度分派的字串”,“布爾值太多”。從這裡,可以看到一些有意思的地方。有記憶體回收機制的語言通常有很多最佳化1..String是不能改變的,所以subString通常是和原來的String使用的是同一份記憶體,不會有記憶體拷貝。所以有可能會出現有一個小字串佔用了大記憶體的情況。2.Boolean通常只有兩個執行個體,一個是Boolean.TRUE,一個是Boolean.False。3.I
Time of Update: 2018-12-04
幫別人的代碼改bug,發現有一大堆bug是由get或者remove傳遞進去的參數類型不符而造成的。比如:Map<Short, String> m = new HashMap();m.put(new Short((short) 2),
Time of Update: 2018-12-04
一、HashMap,即java.util.HashMap標準鏈地址法實現。這個不用多解析,十分明了。(圖片來自網路)二、Collections.synchronizedMap() 函數返回的安全執行緒的HashMap這個的實現比較簡單。代碼中有: private final Map<K,V> m; // Backing Map final Object mutex;// Object on which to
Time of Update: 2018-12-04
import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.Vector;import javax.xml.namespace.QName;import org.apache.axis.client.Call;import org.apache.axis.client.Service;public class PutWeather { private String url=
Time of Update: 2018-12-04
JAVA判斷32位還是64位,調用不同的DLL通過擷取sun.arch.data.model可判斷是32還是64的JAVA將32或者64位的DLL放不同的目錄,實現自適應調用DLL Properties props = System.getProperties(); String bits=String.valueOf(props.get("sun.arch.data.model")); String path =
Time of Update: 2018-12-04
對於Set要實現排序功能,一般有兩種途徑,這裡對基本類型不適用,基本類型一般有Arrays中的靜態方法.1.對象本身實現Comparable介面,那麼該類的執行個體就是可以排序的.有關Comparable:
Time of Update: 2018-12-04
import java.io.File;import java.io.FileOutputStream;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import com.sun.image.codec.jpeg.JPEGCodec;import
Time of Update: 2018-12-04
public class SortAll { /** * 冒泡排序,選擇排序,插入排序,希爾(Shell)排序 Java的實現 * 2008.11.09 * @author YangL. (http://www.idcn.org) */public static void main(String[] args) { int[] i = { 1, 5, 6, 12, 4, 9, 3, 23, 39, 403, 596, 87 };
Time of Update: 2018-12-04
第一個類SmtpAuth: import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;public class SmtpAuth extends Authenticator {private String username, password;public SmtpAuth(String username, String password) {this.username =
Time of Update: 2018-12-04
1 - java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2 - java.lang.ClassNotFoundException: javax.transaction.Synchronization 添加包jta.jar(hiberante)3 - java.lang.ClassNotFoundException: