锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 瑙e喅涓錛?/P>
闄烽槺錛?BR>Calendar涓殑MONTH瀛楁鍜屾暟緇勪笅鏍囦竴鏍鳳紝浠?寮濮嬶紝0浠h〃Calendar.JANUARY錛?浠h〃Calendar.FEBUARY鈥︹?2浠h〃嬈″勾Calendar.JANUARY銆傚洜姝ょ敤鎴瘋緭鍏ョ殑鏈堜喚鍦ㄧ疆鍏alendar瀵硅薄涔嬪墠蹇呴』榪涜澶勭悊錛屽嵆鍑忎竴銆?BR> Joshua Bloch錛堛奅ffective Java銆嬬殑浣滆咃紝J2SE 1.5鐨勪富瑕佸紑鍙戜漢鍛樹箣涓錛夋晥浠縒illiam Blake錛?757-1827錛岃嫳鍥借瘲浜猴級鐨勩?A >Tiger銆嬩竴璇楋紝涓鴻繖浜涚壒鎬ф挵鍐欎簡榪欐牱涓緇勮瘲綃囷細 榪欎竴棣栨槸鎬昏Tiger涓殑鑳戒嬌寮鍙戝彉寰楃畝鍗曠殑鍚勭鏂拌璦鐗規с?/P>
榪欎竴棣栧崟琛‥nhanced for Loop鏈哄埗鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑閬嶅巻鏁扮粍銆丆ollection鍜屽叾瀹冨疄鐜頒簡java.lang.Iterable鎺ュ彛鐨勫璞$殑鏂規硶銆?/P>
榪欎竴棣栧崟琛ˋutoboxing鏈哄埗/Auto-Unboxing鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑鏁村悎涓ゅ涓嶅悓鐨勭被鍨嬬郴緇燂紙鍩烘湰綾誨瀷鍜屽紩鐢ㄧ被鍨嬶級鐨勬満鍒躲?/P>
榪欎竴棣栧崟琛╒arargs鏈哄埗鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑浼犻掍釜鏁板彲鍙樼殑瀹炲弬鐨勬柟娉曘?/P>
榪欎竴棣栧崟琛⊿tatic Import鏈哄埗鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑璁塊棶闈欐佹垚鍛樼殑鏈哄埗銆?/P>
榪欎竴棣栧崟琛‥numeration鏈哄埗鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑瀹氫箟鈥滅被鍨嬪畨鍏ㄧ殑鏋氫婦綾燴濈殑鏂規硶銆?/P>
榪欎竴棣栧崟琛∕etadata鏈哄埗鎻愪緵浜嗕竴縐嶆洿綆鍗曠殑瀹氫箟鈥滄満鍣ㄥ彲璇葷殑璇存槑淇℃伅鈥濈殑鏈哄埗銆?/P>
榪欎竴棣栨槸璇寸敤Generics鏈哄埗錛屽彲浠ュ厤鍘誨緢澶氬己鍒剁被鍨嬭漿鍖栫殑姝ラ鐨勪簨鎯呫侴enerics鏈哄埗榪樻湁浜涘叾瀹冪敤娉曪紝鍦ㄨ繖閲屾病鏈夋彁鍒般?/P> 鍓嶅ぉ鍐欎竴涓被鏃墮亣鍒頒竴涓緢鐪肩敓鐨勭紪璇戦敊璇紙闂綆鍖栧悗錛夛細 緙栬瘧鏃跺嚭閿欙紙絎?琛岋級錛?/P>
illegal forward refrence 浠旂粏涓鎯籌紝鏄洜涓篤AR2寮曠敤鐨刅AR1鍦╒AR2涔嬪悗瀹氫箟錛岀湅鏉ュ湪Java涓畾涔塻tatic鍙橀噺鏃跺簲閬靛驚鈥滃0鏄庡厛浜庝嬌鐢ㄢ濈殑鍘熷垯銆?BR> 榪樻槸涓婁竴涓被錛孷AR1鍜孷AR2瀹氫箟鎴恌inal錛屽煎瓨鍦ㄤ竴涓猵roperties鏂囦歡涓紝鍦ㄤ嬌鐢ㄥ墠蹇呴』灝嗗糽oad榪涙潵錛?/P>
System.getProperties().load(new FileInputStream("constants.properties")); 浜庢槸灝嗕笂闈㈢殑浠g爜鏀懼湪static鍧椾腑錛?BR> 浣嗗湪榪愯鏃禫AR1鍜孷AR2娌℃湁琚祴鍊鹼紝debug鍚庡彂鐜皊tatic鍧楁牴鏈病鏈夋墽琛屻備簬鏄】鎮燂細final鍙橀噺鍦ㄧ紪璇戞椂渚胯緙栬瘧鍣ㄨ綆椼佽祴鍊鹼紝鍥犳鍦ㄨ繍琛屾椂娌℃湁蹇呰鎵цstatic鍧椼?/P>
Java API 鏂囨。涓枃鐗?/SPAN>
Sun 鍏徃鎻愪緵鐨凧ava API Docs鏄涔犲拰浣跨敤Java璇█涓渶緇忓父浣跨敤鐨勫弬鑰冭祫鏂欎箣涓銆備絾鏄暱鏈熶互鏉ユ鏂囨。鍙湁鑻辨枃鐗堬紝瀵逛簬涓浗鍦板尯鐨凧ava寮鍙戣呮潵璇寸浉褰撶殑涓嶄究銆傜洰鍓峉un 鍏徃姝e湪緇勭粐澶氭柟鍔涢噺灝嗘鏂囨。緲昏瘧鎴愪腑鏂囷紝騫朵簬榪戞棩鍦⊿un 涓浗鎶鏈ぞ鍖猴紙http://gceclub.sun.com.cn/錛夋寮忓彂甯僯ava.lang鍜宩ava.util綾誨簱API 鏂囨。鐨勪腑鏂囩増錛屽叾浠栫被搴揂PI鏂囨。鐨勪腑鏂囩増涔熷皢浜庝粖鍚庝竴孌墊椂闂村唴闄嗙畫鍚戜腑鍥藉湴鍖虹殑寮鍙戜漢鍛樻彁渚涖傚湪J2SE API鏂囨。錛?.0鐗堟湰錛夌殑姹夊寲宸ヤ綔瀹屾垚涔嬪悗錛孲un 涓浗鎶鏈ぞ鍖鴻繕灝嗗紑閫欽ava API 鏂囨。涓枃鐗堢殑鎵撳寘涓嬭澆鏈嶅姟銆?BR>
Java API銆鏂囨。涓枃鐗堝彂甯冭鍒?/SPAN>
鍙戝竷鏃墮棿
鐩稿叧綾誨簱
闃呰/涓嬭澆
2005/10/31
java.lang
java.util鍦ㄧ嚎闃呰
2005/12/31
java.awt
java.io
java.text
2006/02/28
java.swing
2006/03/31
java.applet
java.beans
java.maths
java.net
java.nio
java.rmi
java.security
java.sql
javax.accessibility
javax.activity
javax.crypto
2006/04/30
javax.imageio
javax.management
javax.net
javax.naming
javax.print
javax.rmi
javax.security
javax.sound
2006/05/31
javax.sql
javax.transaction
javax.xml
org.ietf
org.xml
org.w3c
org.omg
String latin =
;
String gbk = new String(latin.getBytes("iso-8859-1"),"gbk");
榪欎釜鏂規硶榪囧幓鎴戜篃姣旇緝甯哥敤錛岀殑紜湁鏁堬紝浣嗗緢绱禈鑰訛紝涓濇娌℃湁妯″紡涔嬬編錛屾湁娌℃湁鏇翠紭闆呯殑鏂規硶鍛紵濡傛灉浣犲拰鎴戜竴鏍鋒湁鐤戣檻鐨勮瘽錛屽彲浠ヨ冭檻浣跨敤FilterServlet錛?BR>
import java.io.*;
2import javax.servlet.*;
3import javax.servlet.http.*;
4
5import org.apache.log4j.*;
6
7public class CharsetFilter
8 extends HttpServlet implements Filter
{
9 private static Logger logger = Logger.getLogger("Filter servlet");
10
11 public void init(FilterConfig filterConfig)
12 throws ServletException
{
13 }
14
15 public void doFilter(ServletRequest request,ServletResponse response,
16 FilterChain filterChain)
{
17 if(request != null)
{
18 String charset = request.getCharacterEncoding();
19 if(charset == null || !charset.equalsIgnoreCase("gbk"))
20 try
{
21 request.setCharacterEncoding("GBK");
22 }
23 catch(UnsupportedEncodingException ex)
{
24 logger.warn(ex.getMessage());
25 }
26 }
27 try
{
28 filterChain.doFilter(request,response); // 閫掍氦璐d換閾句笅涓鐜?/SPAN>
29 }
30 catch(Exception ex)
{
31 logger.error(ex.getMessage());
32 }
33 }
34
35 public void destroy()
{
36 }
37}
38
FilterServlet鍐呴儴搴旇浣跨敤璐d換閾撅紙Chain of Responsibility錛夊疄鐜幫紝鍦ㄨ繖閲屾垜浠妸瀵瑰瓧絎︿覆鐨勮漿鐮佸仛涓鴻矗浠婚摼涓殑涓鐜紝浠庝笂涓鐜嬁鍒皉equest錛屽鐞嗗悗浜ょ粰閾劇殑涓嬩竴鐜傚彟澶栭渶瑕佸湪web.xml閲屽仛浜涢厤緗細
<filter>
<filter-name>charsetfilter</filter-name>
<filter-class>pqp.servlet.CharsetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>charsetfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
鍏朵腑鈥淩EQUEST鈥濇寚瀹氫簡filter鎷︽埅鐨勭被鍨嬶紝鏈塕EQUEST銆丗ORWARD銆丒RROR鍜孖NCLUDE錛屽彲緇勫悎閫夋嫨錛屼竴鑸塕EQUEST銆傚叏閮ㄨ緗ソ鍚庨噸鏂版墦鍖呫侀儴緗詫紝榪欐牱Servlet灝卞彲浠ヨ嚜鍔ㄦ妸鎵鏈夌殑request杞崲涓篏BK鐨勫瓧絎﹂泦浜嗭紝鏄笉鏄緢鏂逛究錛?IMG height=19 src="http://m.tkk7.com/Emoticons/teeth_smile.gif" width=19 border=0>浣嗗湪榪欓噷鍔犱簡filter鍚庡鎬ц兘鏂歸潰鐨勫獎鍝嶆湭鐭ワ紝澶у鍙互璁ㄨ涓涓嬨?img src ="http://m.tkk7.com/fidodido/aggbug/18185.html" width = "1" height = "1" />
浠庤緭鍏ユ寰楀埌鐢ㄦ埛鍒嗗紑杈撳叆鐨勫勾銆佹湀銆佹棩錛屽皢淇℃伅鍋氫負Date綾誨瀷鎻掑叆鏁版嵁搴?/P>
InputBean bean = new InputBean(); // 灝佽鐢ㄦ埛杈撳叆
// 鑾峰彇鐢ㄦ埛杈撳叆錛屽皝瑁呬簬bean瀵硅薄涓?/SPAN>
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR,bean.getYear()); // Year
cal.set(cal.MONTH,bean.getMonth()); // Month
cal.set(cal.DAY_OF_MONTH,bean.getDay()); // Day
// 鏁版嵁搴撴搷浣?/SPAN>
瑙e喅浜岋細InputBean bean = new InputBean(); // 灝佽鐢ㄦ埛杈撳叆
// 鑾峰彇鐢ㄦ埛杈撳叆錛屽皝瑁呬簬bean瀵硅薄涓?/SPAN>
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR,bean.getYear()); // Year
cal.set(cal.MONTH,bean.getMonth() - 1); // Month
cal.set(cal.DAY_OF_MONTH,bean.getDay()); // Day
// 鏁版嵁搴撴搷浣?/SPAN>
public static <T> void sort(List<T> list, Comparator<? super T> c)
1銆佹棦鐒惰鏂規硶鏃犺繑鍥炲鹼紙void錛夛紝絎竴涓?lt;T>鈥濇湁浠涔堜綔鐢紵
2銆佲?鈥濅唬琛ㄤ粈涔堝惈涔夛紵
3銆佲渟uper鈥濊搗浠涔堜綔鐢紵
4銆佸熀浜?銆?錛氣?lt;? super T>鈥濆浣曠悊瑙o紵
public static <T extends Comparable<? super T>> void sort(List<T> list)
1銆佲渆xtends鈥濆浣曠悊瑙o紵
2銆佸叾浣欏悓涓?img src ="http://m.tkk7.com/fidodido/aggbug/15971.html" width = "1" height = "1" />
VERSION
CODE NAME
RELEASE DATE
JDK 1.1.4
Sparkler
Sept 12, 1997
JDK 1.1.5
Pumpkin
Dec 3, 1997
JDK 1.1.6
Abigail
April 24, 1998
JDK 1.1.7
Brutus
Sept 28, 1998
JDK 1.1.8
Chelsea
April 8, 1999
J2SE 1.2
Playground
Dec 4, 1998
J2SE 1.2.1
(none)
March 30, 1999
J2SE 1.2.2
Cricket
July 8, 1999
J2SE 1.3
Kestrel
May 8, 2000
J2SE 1.3.1
Ladybird
May 17, 2001
J2SE 1.4.0
Merlin
Feb 13, 2002
J2SE 1.4.1
Hopper
Sept 16, 2002
J2SE 1.4.2
Mantis
June 26, 2003
J2SE 5.0 (1.5.0)
Tiger
Sept 29, 2004
Future Releases
J2SE 6.0 (1.6.0)
Mustang
Not yet released
J2SE 7.0 (1.7.0)
Dolphin
Not yet released package pqp.service;
public enum ServiceExceptionType
{
DB_FAILURE
,USER_EXISTED
,INVALID_USERNAME_OR_PASSWORD
}
鍦ㄦ柊鐢ㄦ埛娉ㄥ唽鐨勯昏緫鏂規硶涓細媯鏌ョ敤鎴峰悕鏄惁宸插瓨鍦紝瀛樺湪鐨勮瘽鎶涘嚭ServiceException錛屽茍灝哠erviceExceptionType灝佽榪涘幓銆俛ction鐨別xcute涓嶅鐞哠erviceException錛屾帴鐫寰澶栨墧錛屾渶鍚庣敱error.jsp澶勭悊錛?BR>
<%@ page contentType="text/html; charset=GBK" %>
<%@ page isErrorPage="true" %>
<%@ page import="pqp.service.*" %>
<%
ServiceException ex=(ServiceException)exception;
switch(ex.getType())
{
case USER_EXISTED:
out.println("鏃犳硶娉ㄥ唽錛氱敤鎴峰悕鈥?/SPAN>"+ex.getMessage()+"鈥濆凡瀛樺湪");
break;
}
%>
緇撴灉緙栬瘧鐨勬椂鍊欐姤閿欙細
闅鵑亾Tomcat 5.5.9涓嶆敮鎸佸enumeration榪涜switch鎿嶄綔錛?img src ="http://m.tkk7.com/fidodido/aggbug/13439.html" width = "1" height = "1" />鍜廡iger
Tiger, Tiger burning bright
Like a geek who works all night
What new-fangled bit or byte
Could ease the hacker"s weary plight?鍜廍nhanced for Loop
While Iterators have their uses
They sometimes strangle us like nooses
With enhanced-for"s deadly ray
Iterator"s kept at bay鍜廇utoboxing/Auto-Unboxing
When from the collections ints are drawn
Wrapper classes make us mourn
When Tiger comes, we"ll shed no tears
We"ll autobox them in the ears鍜廣arargs
O joyless nights, o joyless days
Our programs cluttered with arrays
With varargs here, we needn"t whine;
We"ll simply put the args inline鍜廠tatic Import
And from the constant interface
We shall inherit no disgrace
With static import at our side
Our joy will be unqualified鍜廍numeration
The int-enum will soon be gone
Like a foe we"ve known too long.
With type safe-enum"s mighty power
Our foe will bother us no more鍜廙etadata
As for noble metadata
I"ll have to sing its praises later
Its uses are so numerous
To give their due, I"d miss the bus鍜廏enerics
To the most despised collections" cast
We"ll bid a fond farewell at last
With generics" burning spear
The need for cast will disappear
Map map = new HashMap();
2map.clone();
Map鏄竴涓帴鍙o紝HashMap鏄竴涓被銆俢lone()鏂規硶鍦∣bject綾諱腑瀹氫箟錛屽洜姝ゆ垜涓嬫剰璇嗚涓虹浜岃鍙互榪欎箞鍐欍傜粨鏋滅紪璇戝櫒鎶ラ敊錛歝lone()鏂規硶鏈畾涔夈傝繖涓敊璇鎴戝緢閮侀椃錛岀湅浜嗗崐澶ヾoc鎵嶅彂紲ュ師鏉ap鏄竴涓帴鍙o紝鑰屾帴鍙e拰Object綾繪病鏈変換浣曞叧緋伙紝鎵浠ap涔熷氨娌℃湁緇ф壙clone()銆備簬鏄妸浠g爜鏀規垚涓嬮潰鐨勬牱瀛愶細
HashMap map = new HashMap();
2map.clone();
榪欐牱灝卞彲浠ヤ簡銆?img src ="http://m.tkk7.com/fidodido/aggbug/10506.html" width = "1" height = "1" />punlic final class Constants
{
2 public static int VAR2 = VAR1 + 1;
3 public static int VAR1 = 1;
4}
浜屻乻tatic鍧?/H4>
punlic final class Constants
{
static
{
System.getProperties().load(new FileInputStream("constants.properties"));
}
public static final int VAR2 = System.getProperties().getProperty("var2");
public static final int VAR1 = System.getProperties().getProperty("var1");
}
StringTokenizer st = new StringTokenizer("this is a test"," ");
while (st.hasMoreTokens())
{
System.out.println(st.nextToken());
}
杈撳嚭錛?BR>
this
is
a
test
錛堟瀯閫犲櫒涓浜屼釜瀛楃涓叉槸鍒嗛殧絎︾殑闆嗗悎錛岄粯璁ゆ槸絀烘牸錛?B>
濡傛灉瑕佽鍑烘枃浠剁殑璇濆彧闇璋冪敤BLOB鐨刧etBinaryStream()鐢熸垚涓涓緭鍏ユ祦錛屽啀鍐欏叆涓涓枃浠跺氨琛屼簡銆?/FONT>