1¡¢ÀûÓÃSystem.getProperty()º¯Êý»ñÈ¡µ±Ç°Â·¾¶£º
System.out.println(System.getProperty("user.dir"));//user.dirÖ¸¶¨Á˵±Ç°µÄ·¾¶
2¡¢Ê¹ÓÃFileÌṩµÄº¯Êý»ñÈ¡µ±Ç°Â·¾¶£º
File directory = new File("");//É趨Ϊµ±Ç°Îļþ¼Ð
try{
System.out.println(directory.getCanonicalPath());//»ñÈ¡±ê×¼µÄ·¾¶
System.out.println(directory.getAbsolutePath());//»ñÈ¡¾ø¶Ô·¾¶
}catch(Exceptin e){}
File.getCanonicalPath()ºÍFile.getAbsolutePath()´óÔ¼Ö»ÊǶÔÓÚnew File(".")ºÍnew File("..")Á½ÖÖ·¾¶ÓÐËùÇø±ð¡£
# ¶ÔÓÚgetCanonicalPath()º¯Êý£¬“."¾Í±íʾµ±Ç°µÄÎļþ¼Ð£¬¶ø”..“Ôò±íʾµ±Ç°Îļþ¼ÐµÄÉÏÒ»¼¶Îļþ¼Ð
# ¶ÔÓÚgetAbsolutePath()º¯Êý£¬Ôò²»¹Ü”.”¡¢“..”£¬·µ»Øµ±Ç°µÄ·¾¶¼ÓÉÏÄãÔÚnew File()ʱÉ趨µÄ·¾¶
# ÖÁÓÚgetPath()º¯Êý£¬µÃµ½µÄÖ»ÊÇÄãÔÚnew File()ʱÉ趨µÄ·¾¶
±ÈÈ統ǰµÄ·¾¶Îª C:\test £º
File directory = new File("abc");
directory.getCanonicalPath(); //µÃµ½µÄÊÇC:\test\ab ......
package com;
import java.util.*;
public class WhatDay {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.setTime(new Date(System.currentTimeMillis()));
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
switch (dayOfWeek) {
case 1:
System.out.println("ÐÇÆÚÈÕ");
break;
case 2:
System.out.println("ÐÇÆÚÒ»");
break;
case 3:
System.out.println("ÐÇÆÚ¶þ");
break;
case 4:
System.out.println("ÐÇÆÚÈý");
break;
case 5:
System.out.println("ÐÇÆÚËÄ");
break;
case 6:
System.out.println("ÐÇÆÚÎå");
break;
case 7:
System.out.println("ÐÇÆÚÁù");
break;
}
}
} ......
ÕâÒ»ÓÐ¹Ø Java ±à³Ì¶¯Ì¬·½ÃæµÄеÄϵÁÐÎÄÕÂÑо¿ÁËÖ´ÐÐ Java Ó¦ÓóÌÐòʱĻºóËù·¢ÉúµÄÊÂÇé¡£ÆóÒµ Javaר¼Ò
Dennis Sosnoski ÌṩÁË Java ¶þ½øÖÆÀà¸ñʽÒÔ¼°ÔÚ JVM
ÄÚ²¿ÀàËù·¢ÉúµÄÇé¿öµÄÄÚÄ»¡£½Ó×Å£¬Ëû½«ÌÖÂÛÀà×°ÈëÎÊÌ⣬Æä·¶Î§Éæ¼°´ÓÔËÐмòµ¥µÄ Java Ó¦ÓóÌÐòËùÐèµÄÀàµÄÊýÁ¿µ½¿ÉÄÜÔì³É J2EE
¼°ÀàËÆµÄ¸´ÔÓÌåϵ½á¹¹³öÏÖÎÊÌâµÄÀà×°ÈëÆ÷³åÍ»¡£
±¾ÎÄÊÇÕâ¸öÐÂϵÁÐÎÄÕµĵÚһƪ£¬¸ÃϵÁÐÎÄÕ½«ÌÖÂÛÎÒ³ÆÖ®Îª
Java ±à³ÌµÄ¶¯Ì¬ÐÔ
µÄ
һϵÁÐÖ÷Ìâ¡£ÕâЩÖ÷ÌâµÄ·¶Î§´Ó Java
¶þ½øÖÆÀàÎļþ¸ñʽµÄ»ù±¾½á¹¹£¬ÒÔ¼°Ê¹Ó÷´Éä½øÐÐÔËÐÐʱԪÊý¾Ý·ÃÎÊ£¬Ò»Ö±µ½ÔÚÔËÐÐʱÐ޸ĺ͹¹ÔìÐÂÀà¡£¹á´©ÕûƪÎÄÕµĹ«¹²ÏßË÷ÊÇÕâÑùÒ»ÖÖ˼Ï룺ÔÚ Java
ƽ̨Éϱà³ÌÒª±ÈʹÓÃÖ±½Ó±àÒë³É±¾»ú´úÂëµÄÓïÑÔ¸ü¾ß¶¯Ì¬ÐÔ¡£Èç¹ûÄúÀí½âÁËÕâЩ¶¯Ì¬·½Ã棬¾Í¿ÉÒÔʹÓà Java
±à³ÌÍê³ÉÄÇЩÔÚÈÎºÎÆäËüÖ÷Á÷±à³ÌÓïÑÔÖв»ÄÜÍê³ÉµÄÊÂÇé¡£
±¾ÎÄÖУ¬ÎÒ½«ÌÖÂÛһЩ»ù±¾¸ÅÄËüÃÇÊÇÕâЩ Java ƽ̨¶¯Ì¬ÌØÐԵĻù´¡¡£ÕâЩ¸ÅÄîµÄºËÐÄÊÇÓÃÓÚ±íʾ
Java ÀàµÄ¶þ½øÖƸñʽ£¬°üÀ¨ÕâЩÀà×°Èëµ½ JVM ʱËù·¢ÉúµÄÇé¿ö¡£±¾ÎIJ»½öÊDZ¾ÏµÁÐÆäÓ༸ƪÎÄÕµĻù´¡£¬¶øÇÒ»¹ÑÝʾÁË¿ª·¢ÈËÔ±ÔÚʹÓà Java
ƽ̨ʱÅöµ½µÄһЩ·Ç³£Êµ¼ÊµÄÎÊÌâ¡£
Óöþ½øÖƱíʾµÄÀà
......
´Ó±¾ÏµÁÐÇ°ÃæµÄÎÄÕÂÖУ¬ÄúÁ˽⵽·´ÉäµÄÐÔÄܱÈÖ±½Ó·ÃÎÊÒªÂýÐí¶à±¶£¬²¢Á˽âÁËÓà Javassist ºÍ Apache
Byte Code Engineering Library £¨BCEL£©½øÐÐclassworking¡£Java ¹ËÎÊ Dennis
Sosnoski ͨ¹ýÑÝʾÈçºÎʹÓÃÔËÐÐʱ classworking£¬À´ÓÃÈ«ËÙǰ½øµÄÉú³É´úÂëÈ¡´ú·´Éä´úÂ룬´Ó¶ø½áÊøËûµÄ Java ±à³ÌµÄ¶¯Ì¬ÐÔ
ϵÁС£
¼ÈÈ»ÄúÒѾ¿´µ½ÁËÈçºÎʹÓà Javassist ºÍ BCEL ¿ò¼ÜÀ´½øÐÐ classworking £¨Çë²ÎÔÄ
±¾ÏµÁÐÒÔǰµÄÒ»×éÎÄÕÂ
£©£¬
ÎÒ½«Õ¹Ê¾Ò»¸öʵ¼ÊµÄ classworking Ó¦ÓóÌÐò¡£Õâ¸öÓ¦ÓóÌÐòÓÃÔËÐÐʱÉú³ÉµÄ¡¢²¢Á¢¼´×°Ôص½ JVM µÄÀàÀ´È¡´ú·´Éä¡£ÔÚ×ÛºÏÌÖÂ۵Ĺý³ÌÖУ¬ÎÒ½«ÒýÓñ¾ÏµÁеÄǰÁ½ÆªÎÄÕ£¬ÒÔ¼°¶Ô
Javassist ºÍ BCEL µÄÌÖÂÛ£¬ÕâÑù±¾ÎľͳÉΪÁ˶ÔÕâ¸öºÜ³¤µÄϵÁÐÎÄÕµÄÒ»¸öºÜºÃµÄ×ܽᡣ
·´ÉäµÄÐÔÄÜ
ÔÚ
µÚ
2 ²¿·Ö
£¬
ÎÒչʾÁËÎÞÂÛÊǶÔÓÚ×ֶηÃÎÊ»¹ÊÇ·½·¨µ÷Ó㬷´Éä¶¼±ÈÖ±½Ó´úÂëÂýºÜ¶à±¶¡£ÕâÖÖÑÓ»º¶ÔÓÚÐí¶àÓ¦ÓóÌÐòÀ´Ëµ²»ËãÊÇÎÊÌ⣬µ«ÊÇ×ÜÊÇ»áÓöµ½ÐÔÄܷdz£¹Ø¼üµÄÇé¿ö¡£ÔÚÕâ
ÖÖÇé¿öÏ£¬·´Éä¿ÉÄܳÉÎªÕæÕýµÄÆ¿¾±¡£µ«ÊÇ£¬Óþ²Ì¬±àÒëµÄ´úÂëÈ¡´ú·´Éä¿ÉÄÜ»á·Ç³£»ìÂÒ£¬²¢ÇÒÔÚÓÐЩÇé¿öÏ£¨ÈçÔÚÕâÖÖ¿ò¼ÜÖУº·´Éä·ÃÎʵÄÀà»òÕßÏîÄ¿ÊÇÔÚÔËÐÐʱ
ÌṩµÄ£¬¶ø²»ÊÇ× ......
Apache Byte Code Engineering Library (BCEL)¿ÉÒÔÉîÈë Java
ÀàµÄ×Ö½ÚÂë¡£¿ÉÒÔÓÃËüת»»ÏÖÓеÄÀà±íʾ»òÕß¹¹½¨ÐµÄÀ࣬ÒòΪ BCEL ÔÚµ¥¶ÀµÄ JVM
Ö¸Áî¼¶±ðÉϽøÐвÙ×÷£¬ËùÒÔ¿ÉÒÔÈÃÄú¶Ô´úÂëÓÐ×îÇ¿´óµÄ¿ØÖÆ¡£²»¹ý£¬ÕâÖÖÄÜÁ¦µÄ´ú¼ÛÊǸ´ÔÓÐÔ¡£ÔÚ±¾ÎÄÖУ¬Java ¹ËÎÊ Dennis Sosnoski
½éÉÜÁË BCEL µÄ»ù±¾ÄÚÈÝ£¬²¢Òýµ¼¶ÁÕßÍê³ÉÒ»¸öʾÀý BCEL Ó¦ÓóÌÐò£¬ÕâÑùÄú¾Í¿ÉÒÔ×Ô¼º¾ö¶¨ÊÇ·ñÖµµÃÒÔÕâÖÖ¸´ÔÓÐÔÀ´»»È¡ÕâÖÖÄÜÁ¦¡£
ÔÚ±¾ÏµÁеÄ×îºóÈýƪÎÄÕÂÖÐ,ÎÒչʾÁËÈçºÎÓà Javassist ¿ò¼Ü²Ù×÷Àà¡£Õâ´ÎÎÒ½«ÓÃÒ»Öֺܲ»Í¬µÄ·½·¨²Ù×Ý×Ö½ÚÂ뗗ʹÓà Apache Byte
Code Engineering Library (BCEL)¡£Óë Javassist ËùÖ§³ÖµÄÔ´´úÂë½Ó¿Ú²»Í¬£¬BCEL ÔÚʵ¼ÊµÄ JVM
Ö¸Áî²ã´ÎÉϽøÐвÙ×÷¡£ÔÚÏ£Íû¶Ô³ÌÐòÖ´ÐеÄÿһ²½½øÐпØÖÆÊ±£¬µ×²ã·½·¨Ê¹ BCEL ºÜÓÐÓ㬵«Êǵ±Á½Õß¶¼¿ÉÒÔʤÈÎʱ£¬ËüҲʹ BCEL µÄʹÓñÈ
Javassist Òª¸´Ôӵöࡣ
ÎÒ½«Ê×ÏÈÌÖÂÛ BCEL »ù±¾Ìåϵ½á¹¹£¬È»ºó±¾ÎĵĴ󲿷ÖÄÚÈݽ«ÌÖÂÛÓà BCEL ÖØÐ¹¹½¨ÎҵĵÚÒ»¸ö Javassist Àà²Ù×÷µÄÀý×Ó¡£×îºó¼òÒª½éÉÜ
BCEL °üÖÐÌṩµÄһЩ¹¤¾ßºÍ¿ª·¢ÈËÔ±Óà BCEL ¹¹½¨µÄһЩӦÓóÌÐò¡£
BCEL Àà·ÃÎÊ
BCEL ʹÄúÄܹ»Í¬Ñù¾ß±¸ Javassist ÌṩµÄ·ÖÎö¡¢±à¼ºÍ´´½¨ Ja ......
ÔÚ¾¹ýÒ»¶Îʱ¼äµÄÐÝÏ¢Ö®ºó£¬Dennis Sosnoski ÓÖ»ØÀ´ÍƳöÁËËûµÄ
Java ±à³ÌµÄ¶¯Ì¬ÐÔ
ϵ
ÁÐµÄµÚ 5 ²¿·Ö¡£ÄúÒÑÔÚÇ°ÃæµÄÎÄÕÂÖп´µ½ÁËÈçºÎ±àдÓÃÓÚת»» Java ÀàÎļþÒԸıä´úÂëÐÐΪµÄ³ÌÐò¡£ÔÚ±¾ÆÚÖУ¬Dennis½«Õ¹Ê¾ÈçºÎʹÓÃ
Javassist
¿ò¼Ü£¬°Ñת»»Óëʵ¼ÊµÄÀà¼ÓÔØ¹ý³Ì½áºÏÆðÀ´£¬ÓÃÒÔ½øÐÐÁé»îµÄ“¼´Ê±”ÃæÏò·½ÃæµÄÌØÐÔ´¦Àí¡£ÕâÖÖ·½·¨ÔÊÐíÄú¾ö¶¨ÏëÒªÔÚÔËÐÐʱ¸Ä±äµÄÄÚÈÝ£¬²¢Ç±µØÔÚÿ´ÎÔËÐгÌÐò
ʱ×ö³ö²»Í¬µÄÐ޸ġ£ÔÚÕû¸ö¹ý³ÌÖУ¬Äú»¹½«¸üÉîÈëµØÁ˽âÏòJVM ÖмÓÔØÀàµÄÒ»°ãÎÊÌâ¡£
ÔÚµÚ 4 ²¿·Ö“
Óà Javassist ½øÐÐÀàת»»
”ÖУ¬ÄúѧϰÁËÈçºÎʹÓà Javassist ¿ò¼ÜÀ´×ª»»±àÒëÆ÷Éú³ÉµÄ
Java ÀàÎļþ£¬Í¬Ê±Ð´»ØÐ޸ĹýµÄÀàÎļþ¡£ÕâÖÖÀàÎļþת»»²½Öè¶ÔÓÚ×ö³ö³Ö¾Ã±ä¸üÊǺÜÀíÏëµÄ£¬µ«ÊÇÈç¹ûÏëÒªÔÚÿ´ÎÖ´ÐÐÓ¦ÓóÌÐòʱ×ö³ö²»Í¬µÄ±ä¸ü£¬ÕâÖÖ·½·¨¾Í²»Ò»¶¨ºÜ·½±ã¡£¶ÔÓÚÕâÖÖÔÝʱµÄ±ä¸ü£¬²ÉÓÃÔÚÄúʵ¼ÊÆô¶¯Ó¦ÓóÌÐòʱÆð×÷Óõķ½·¨ÒªºÃµÃ¶à¡£
JVM
Ìåϵ½á¹¹ÎªÎÒÃÇÌṩÁËÕâÑù×öµÄ±ãÀû;¾¶¨D¨Dͨ¹ýʹÓà classloader ʵÏÖ¡£Í¨¹ýʹÓà classloader
¹Ò¹³£¨hook£©£¬Äú¿ÉÒÔÀ¹½Ø½«Àà¼ÓÔØµ½ JVM
ÖеĹý³Ì£¬²¢ÔÚʵ¼Ê¼ÓÔØÕâЩÀà֮ǰת»»ËüÃÇ¡£ÎªÁË˵Ã÷Õâ¸ö¹ý³ÌÊÇÈç ......