Time of Update: 2018-12-05
在本教程的上篇裡,我們講到了使用EJB3 persistence——現在也叫做Java Persistence API(JPA)——保持對象的基礎知識。我們利用Hibernate的EntityManager/Annotations實現讓簡單的Person和Address類保持到嵌入的HSQLDB裡。但是Person和Address這兩個類之間是單向關係:一個Person指向一個Address,所以讓我們來看看如何?雙向映射。在Address裡,我們準備加入一系列住在該地址的Person——居民(
Time of Update: 2018-12-05
一直以來,都很喜歡用Map,在小規模應用中,用用Map也沒什麼,但是應用一大,記憶體應用方面就要注意了。 幾個月前,做項目的時候用到Map,在一篇文章中,我記得說過Map的回收有問題,一試,果然,當設定為null時,還是不能有效進行回收,找了些資料,最後發現了WeakHashMap,當沒有指標指向value時,key會被回收,就用它做了個CacheMap,需要多加一個方法package org.ofbiz.payment.common;import java.util.Iterator;imp
Time of Update: 2018-12-05
下面是DB類,也就是資料庫連接及操作類:package com.ljh.util;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DB
Time of Update: 2018-12-05
Java[thinking java]:一、java 與或非 操作與(&)、非(~)、或(|)、異或(^)1.與運算子與運算子用符號“&”表示,其使用規律如下:兩個運算元中位都為1,結果才為1,否則結果為0,例如下面的程式段。public class data13{public static void main(String[] args){int a=129;int b=128;System.out.println("a 和b
Time of Update: 2018-12-05
問題:多線程方法中使用了共用變數SimpleDateFormat,報如下錯誤: java.lang.NumberFormatException: multiple points at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1084原因:SimpleDateFormat是線程不安全的,切忌切忌! 解決:線上程方法中,new SimpleDateFormat(); 例:
Time of Update: 2018-12-05
一 抽象類別的定義以前有段時間我總認為抽象類別就是沒有實現具體方法的類.現在看來,這種想法有很大的偏差.抽象類別用abstract來定義,同時,具有一個或多個抽象方法的類本身也必須聲明為abstract的,也就是說,抽象類別可以有具體方法,但是有抽象方法的類一定是抽象類別.抽象類別不僅可以有具體的方法,還可以有具體資料.比如在抽象類別Person中,我們可以定義Person的具體資料name,並且使用建構函式來儲存: abstract class Person{ public
Time of Update: 2018-12-05
在“終結條件”一節中,作者想討論的內容是finalize()的用法,為此舉了一段代碼為例。代碼如下(注釋行和測試代碼省略):class Book...{ boolean checkedout = false; public Book(boolean checkout)...{ checkedout = checkout; } public void checkIn()...{ checkedout = false; } public
Time of Update: 2018-12-05
以前用 java 做工程需要調試資訊都是自己 System.out.println,雖然很早就知道 log4j,不過沒認真研究過,一般拿簡單的 .property 檔案來配置,不過最近仔細看了一下 log4j 的源檔案,發現人家 apache 早就不建議使用 .property 了,首選 .xml,於是再研究了一下 .xml 的配置,這裡記一下備忘。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE
Time of Update: 2018-12-05
在JAVA效能最佳化—IBM JDK JVM參數設定和JAVA效能最佳化—Sun’s Hostspot JVM參數設定兩篇文章中我介紹了針對JDK進行最佳化的方法,這些參數上的改變也許會帶來50%甚至100%的效能提升,但是如果從程式入手,可能提升的空間是一個數量級的,而且往往很多時候效能問題光靠調整參數無法解決。接下來分享兩篇文檔,指點你寫出更符合JVM
Time of Update: 2018-12-05
因為項目需要,做了一個通過snmp遠程監控IIS6或者IIS6以上的程式。現在把它的核心類原始碼給大家分享一下。 package com.shine.framework.IIS;import java.util.HashMap;import java.util.List;import java.util.Map;import
Time of Update: 2018-12-05
JMX(Java Management Extensions,即Java管理擴充)是一個為應用程式、裝置、系統等植入管理功能的架構。JMX可以跨越一系列異構作業系統平台、系統體繫結構和網路傳輸協議,靈活的開發無縫整合的系統、網路和服務管理應用。 實際上來說我們可以用jmx來監控一些java應用的運行情況,還有自己寫的一些服務類的應用。 以下是我們用來做監控的jmx原始碼package com.shine.framework.Jmx;import
Time of Update: 2018-12-05
檔案式資料庫是一種很特別的資料庫。因為他們沒有網路介面,通常不可以分布式調用。但是他們有很巨大的優點,如果用於資料的配置和資料的緩衝就可以提高軟體的效率。 這麼多種的檔案資料庫,我比較青睞SQList, 1、是一個穩定的資料庫; 2、不分資料類型,減少開發時候遇到資料類型的轉換; 3、比access等其他文本資料更加穩定; sqlitejdbc-v056.jar:www.sqlite.org 下載 下面是一些JAVA對SQList操作的原始碼:
Time of Update: 2018-12-05
Java程式員基本功---數組與記憶體控制Java數組是一組具有相同類型值的集合,是Java中的一種參考型別,要想使用Java中的數組,該數組必須經過初始化,數組一旦經過初始化,其長度將不可改變,數組中的每個值將被賦予初始值。Java數組初始化分為靜態初始化和動態初始化。靜態初始化:由程式員顯示的指定數組中元素的初始值,由系統決定數組的長度 int[] arr = new int[]{0,1,2};動態初始化:由程式員顯示的指定數組的長度,由系統為數組中各元素賦予初始值
Time of Update: 2018-12-05
使用hibernate-tools時出現java.lang.NoSuchMethodError:net.sf.ehcache.config.CacheConfiguration.isTerracottaClustered()錯誤,具體異常是:java.lang.NoSuchMethodError: net.sf.ehcache.config.CacheConfiguration.isTerracottaClustered()Z at
Time of Update: 2018-12-05
最近在開發過程中發現一個問題:Boolean類型的值無法在flex和java間傳遞,經過一段研究發現,問題出現在Boolean類型的getter和setter方法上。 按照javabean的規範,小布爾類型的getter是以is做首碼的,但是大布爾類型的getter就成了以get為首碼了(大布爾作為參考型別,已經被視為普通的Object了)。例如: 對於欄位private boolean
Time of Update: 2018-12-05
使用Thread.interrupt()中斷線程正如Listing A中所描述的,Thread.interrupt()方法不會中斷一個正在啟動並執行線程。這一方法實際上完成的是,線上程受到阻塞時拋出一個中斷訊號,這樣線程就得以退出阻塞的狀態。更確切的說,如果線程被Object.wait, Thread.join和
Time of Update: 2018-12-05
由於目前java memcached client沒有官方的maven repository可供使用,因此使用時需要手動將其安裝到本地repository。java memcached client的jar包:https://github.com/gwhalin/Memcached-Java-Client/downloads 目前2.6.2版本的java memcached
Time of Update: 2018-12-05
在java多線程程式中,所有線程都不允許拋出未捕獲的checked exception,也就是說各個線程需要自己把自己的checked exception處理掉。這一點是通過java.lang.Runnable.run()方法聲明(因為此方法聲明上沒有throw exception部分)進行了約束。但是線程依然有可能拋出unchecked
Time of Update: 2018-12-05
歐幾裡德距離是一個簡單的相似性評價方法,返回0-1的值代表互相之間的相似性,1為完全相似上代碼:package com.Social.cbra;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.logging.Logger;/** * * @author larry * */public class Similarity {static Logger logger
Time of Update: 2018-12-05
001//1. 字串有整型的相互轉換002String a = String.valueOf(2); //integer to numeric string003int i = Integer.parseInt(a); //numeric string to an int004 005//2. 向檔案末尾新增內容006BufferedWriter out = null;007try {008out = new BufferedWriter(new FileWriter(”filename”,