??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲色成人网站WWW永久,国产精品亚洲一区二区无码,国产亚洲精品高清在线 http://www.tkk7.com/Javawind/category/24929.htmlzh-cn Sat, 09 Feb 2008 12:29:10 GMT Sat, 09 Feb 2008 12:29:10 GMT 60 [Data Structure] Vector ?ArrayList的不?/title> http://www.tkk7.com/Javawind/archive/2008/02/09/179512.htmlkooyee kooyee Sat, 09 Feb 2008 11:23:00 GMT http://www.tkk7.com/Javawind/archive/2008/02/09/179512.html http://www.tkk7.com/Javawind/comments/179512.html http://www.tkk7.com/Javawind/archive/2008/02/09/179512.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/179512.html http://www.tkk7.com/Javawind/services/trackbacks/179512.html Vector ?ArrayList的不?/strong>
有的时?Vector更好一?有的时候ArrayList 更好一?有的时候你一个也不想用。但愿,你不是在期望一个简单明?jin)的{案Q因为答案因你在用他们做什么而定。下面是要考虑的四个方面:(x)
API
同步-Synchronization
数据增长-Data growth
使用Ҏ(gu)-Usage patterns
让我一个一个来解释吧?br />
API
在The Java Programming Language (Addison-Wesley, June 2000) 中Ken Arnold, James Gosling, ?David Holmes 是这hqVector的,它是更ArrayListcM的一个东西,所以从API的观Ҏ(gu)看,它们俩是很相似的。但是,它们之间q是有些微的差别的?br />
Synchronization
Vectors是可同步化的Q意思就是说QQ何操作Vector的内容的Ҏ(gu)都是U程安全的,相反的,另一斚wQArrayList是不可同步化的,所以也不是U程安全的。如果你知道?jin)这些的话,你就会(x)发玎ͼVector的同步会(x)让它在性能发方面有一些小问题。所以,如果你不需要线E安全的话,那么׃用ArrayList吧。ؓ(f)什么要为没有必要的同步付出代h(hun)呢?
Data growth
实际上,不管是ArrayListq是VectorQ在它们内部都是使用一个Array来保存数据的。编E过E中Q在使用它们M一个的时候,你都需要记住这一炏V你在往一个ArrayList或者Vector里插入一个元素的时候,如果内部数组I间不够?jin),q个对象(译者按Q指的是你用的ArrayList或者Vector)p扩展它的大小。Vector在默认情况下是生一个双倍大,而ArrayList增加50%的大。只要你合理的用这些类Q你可以结束你在增加新的元素的时候所付出的性能代h(hun)。把对象(译者按Q指的是你用的ArrayList或者Vector)的初始化定w指定Z~程q程中所能用到的最大的定wL最好的办法。仔l的指定定wQ你可以避免以后改变内部Array定wQ所要付出的代h(hun)。如果你q不知道到底有多个数据Q当是你知道数据的增长率QVector实有一点点优势Q因Z可以指定增加?译者按Q如果没有猜错的话,作者说的方法应该是setSize(int newSize) Sets the size of this vector.)?br />
Usage patterns
ArrayList和Vector在从指定位置取得元素Q从容器的末֢加和删除元素都非常的有效Q所有的q些操作都能在一个常数的时?O(1))内完成。但是从一个其他的位置增加和删除一个元素就昑־颇ؓ(f)Ҏ(gu)Q差不多需要的旉为O(n-i)Q这里的n代表元素个数Qi代表要增加和删除的元素所在的位置。这些操作需p更多的时_(d)因ؓ(f)你需要挨个移动i和更高(sh)|的元素。那么,以上q些到底说明?jin)什么呢Q?br />
q意味着Q如果你取得一个元素,或者从数组末尾增加或删除一个元素的话,随便你用Vector和ArrayList。如果你惌Ҏ(gu)l内容做其他操作的话Q那么就己好另一个容器吧。比喻说QLinkedList可以在常数旉(O(1))内ؓ(f)L一个位|的元素增加和删除。但是,取得一个元素,?x)稍微慢一点,旉要用O(i) Q这个i是元素的位置。通过ArrayList也是很简单的Q因Z可以单用一个烦(ch)引,而不是构造一个iterator 。LinkedList也ؓ(f)每个插入的元素徏立一个内部对象。所以,你也必须知道Q同时生了(jin)垃圾对象?br />
最后,Practical Java (Addison-Wesley, Feb. 2000) Peter Haggar 里的“实践41“你用一个普通的原始的数l来代替Vector和ArrayListeQ特别是Ҏ(gu)率优先的代码来说。通过使用数组(array)Q你可以避免同步Q额外的Ҏ(gu)调用Q非理想化的大小改变。你付出的只是额外的开发时间?
]]> [JAVA] 使用xsl来动态生成java代码 http://www.tkk7.com/Javawind/archive/2007/12/08/166324.htmlkooyee kooyee Sat, 08 Dec 2007 11:54:00 GMT http://www.tkk7.com/Javawind/archive/2007/12/08/166324.html http://www.tkk7.com/Javawind/comments/166324.html http://www.tkk7.com/Javawind/archive/2007/12/08/166324.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/166324.html http://www.tkk7.com/Javawind/services/trackbacks/166324.html 阅读全文 ]]> [Java]代码动态生成利器ASM ?/title> http://www.tkk7.com/Javawind/archive/2007/12/08/166313.htmlkooyee kooyee Sat, 08 Dec 2007 10:54:00 GMT http://www.tkk7.com/Javawind/archive/2007/12/08/166313.html http://www.tkk7.com/Javawind/comments/166313.html http://www.tkk7.com/Javawind/archive/2007/12/08/166313.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/166313.html http://www.tkk7.com/Javawind/services/trackbacks/166313.html 作者简?/h4>
薛谷雨,NORDSAN(北京)信息U技开发有限公叔RUJAVA研发工程师,正致力于企业U异构数据交换的服务器品的研发Q在J2EE和W(xu)EB SERVICE斚w有较Z富的开发经验,(zhn)可以通过rainight@126.com 与他联系?/p>
前言
代码生成器(code generatorQCGQ,思义是生成代码的工兗有?jin)它Q你可以从一l简单的讑֮或者数据库设计中获得几百、几千行代码。如果不采用q项技术的话,开发者就不得不花上几个小时或者几天的旉来手工编写这些代码。另一斚wQ优U的开发工具ؓ(f)?jin)提供其独特的功能或者屏蔽一些容易出错的l节Q也往往采用代码生成技术ؓ(f)使用者提供一个程序的模板框架Q其目的也是Z(jin)提高~程的效率。以上观点仅是对代码生成器的一般理解,换句话说Q这g是一个可有可无的东西Q没有它Q不q是多费一些h工而已。然而,本文要介l的q套名ؓ(f)ASM的JAVA工具cȝ功能非同可Q它可以生成JAVA字节?也就是class文g。你可以在应用程序中Ҏ(gu)情况动态生成各式各L(fng)class,然后p用,辑ֈ一U近乎上帝造物般的奇。心(j)动不如行动,如果你也惛_自己的开发中引入q一前的编E技术,L(fng)此文?/p>
y而神奇的ASM
ASM是一套JAVA字节码生成架构。它可以动态生成二q制格式的stubcL其他代理c,或者在c被JAVA虚拟入内存(sh)前,动态修改类。ASM 提供?jin)?BCELQ?http://jakarta.apache.org/bcel Q和SERP( http://serp.sourceforge.net/ )怼的功能,只有22K的大,比v350K的BCEL?50K的SERP来说Q是相当y的,q且它有更高的执行效率,是BCEL?倍,SERP?1倍以上。ASM一贯的设计思想是其应用于动态生成领域,因此y和快捷一直是q个产品的设计和实现的指导思想?/p>
此品由法国?sh)信公司的研发工E师Eric Bruneton负责。从2002q?月ASM的第一个版本发布至今,此品已l升U了(jin)五次Q日d。到目前为止QASM最新的版本?.3.5Q你可以?http://asm.objectweb.org/ 下蝲?/p>
ASM的最l目标是创徏一个生成工P可以被用来执行对Mcȝ处理操作Q不像一些工P比如Javassit,它只支持预先定义的类操作Q然而在许多场合q一功能是有局限性的Q?/p>
JAVA的CLASS文g格式
要想NASMQ先要了(jin)解一下JAVA的CLASS文g格式。JAVA的CLASS文g通常是树(wi)型结构。根节点包含以下元素Q?/p>
ConstantPoolQ符可Q?
FieldInfoQ类中的成员变量信息Q?
MethodInfoQ类中的Ҏ(gu)描述Q?
AttributeQ可选的附加节点?
FieldInfo节点包含成员变量的名Uͼ诸如public,private,static{的标志。ConstantValue属性用来存储静(rn)态的不变的成员变量的倹{Deprecated和Synthetic被用来标C个成员变量是不被推荐的或q译器生成的?/p>
MethodInfo节点包含Ҏ(gu)的名Uͼ参数的类型和和它的返回|Ҏ(gu)是公有的Q私有的或静(rn)态的{标志。MethodInfo包含可选的附加属性,其中最重要的是Code属性,它包含非抽象的方法的代码。Exceptions属性包含方法将抛出的Exception的名U。Deprecated和Synthetic属性的信息同上面的FieldInfo的定义一栗?/p>
根节点的可选属性有SourceFileQInnerClasses和Deprecated。SourceFile用来存储被编译成字节码的源代码文件的原始名称;InnerClasses存储内部cȝ信息。由于这些属性的存在Qjava 的类格式是可以扩展的Q也是说可以在一个class中附加一些非标准的属? java虚拟Z(x)忽略q些不可识别的属性,正常的加载这个class?/p>
ConstantPool是一个由数字或字W串帔R的烦(ch)引组成的队列Q或由此cȝ?wi)的其他节点引用的,由其他对象创建的被引用常量的索引l成的队列。这个表的目标是Z(jin)减少冗余。例如,FieldInfo节点不包含节点的名称Q只包含它在q一表中的烦(ch)引。同L(fng)QGETFIELD和PUTFIELD不直接包含成员变量的名称Q只包含名称的烦(ch)引?/p>
_NASM
Asm架构整体都围l着两个接口Q即ClassVisitor ?CodeVisitorQ它们能讉K每个cȝҎ(gu)Q成员变量,包含在每个方法中的字节码指o(h)。ClassReader用来dclass文gQClassWritercȝ来写生成的Class文g?/p>
Z(jin)修改已经存在的class,你必M用分析class文g的ClassReaderQ类的修正器和写class文g的ClassWriter。类的修正器是一个ClassVisitor,它可以委z一部分工作到其他的ClassVisitor,但是Z(jin)实现预期的修Ҏ(gu)骤,它将改变?sh)些参数的|或者调用一些其他方法。ؓ(f)?jin)比较容易的实现q种cȝ修正器,ASM提供?jin)一个ClassAdapter和CodeAdapterQ这两个适配器类分别实现?jin)ClassVistor和CodeVistor接口?/p>
HelloWorldQ体验造类的神?/h4>
下面是一个应用ASM动态生成字节码的类Qƈ调用其中Ҏ(gu)的完整的HelloWorld E序Q程序的功能是动态生成一个Example.classc,q实例化一个Example对象,调用对象的main函数Q在屏幕上打印出"Hello world!"
import org.objectweb.asm. * ;
import java.lang.reflect. * ;
import java.io.FileOutputStream;
public class Helloworld extends ClassLoader implements Constants {
public static void main ( final String args[]) throws Exception {
/**/ /*
* 此程序将生成一个class,对应的java源代码是:
*
* public class Example {
* public static void main (String[] args) {
* System.out.println("Hello world!");
* }
* }
*
*/
// 创徏一个ClassWriter
ClassWriter cw = new ClassWriter( false );
cw.visit(ACC_PUBLIC, " Example " , " java/lang/Object " , null , null );
// 创徏一?nbsp;MethodWriter
CodeVisitor mw = cw.visitMethod(ACC_PUBLIC, "" , " ()V " , null );
// 推入 'this' 变量
mw.visitVarInsn(ALOAD, 0 );
// 创徏父类的构造函?/span>
mw.visitMethodInsn(INVOKESPECIAL, " java/lang/Object " , "" , " ()V " );
mw.visitInsn(RETURN);
// q段代码使用最多一个栈元素和一个本地变?/span>
mw.visitMaxs( 1 , 1 );
// 为mainҎ(gu)创徏一个MethodWriter
mw = cw.visitMethod(
ACC_PUBLIC + ACC_STATIC, " main " , " ([Ljava/lang/String;)V " , null );
// 使用Systemcȝout成员c?/span>
mw.visitFieldInsn(
GETSTATIC, " java/lang/System " , " out " , " Ljava/io/PrintStream; " );
// pushes the "Hello World!" String constant
mw.visitLdcInsn( " Hello world! " );
// 调用System.out?println' 函数
mw.visitMethodInsn(
INVOKEVIRTUAL, " java/io/PrintStream " , " println " , " (Ljava/lang/String;)V " );
mw.visitInsn(RETURN);
// q段代码使用最多两个栈元素和两个本地变?/span>
mw.visitMaxs( 2 , 2 );
// 生成字节码Ş式的c?/span>
byte [] code = cw.toByteArray();
FileOutputStream fos = new FileOutputStream( " Example.class " );
// 写文?/span>
fos.write(code);
// 关闭输出?/span>
fos.close();
// 实例化刚刚生成的c?/span>
Helloworld loader = new Helloworld();
Class exampleClass = loader.defineClass( " Example " , code, 0 , code.length);
// 使用动态生成的cL?nbsp;'Helloworld'
Method main = exampleClass.getMethods()[ 0 ];
main.invoke( null , new Object[] { null } );
}
}
]]> [WEB] MetaData Programme http://www.tkk7.com/Javawind/archive/2007/12/01/164538.htmlkooyee kooyee Sat, 01 Dec 2007 12:36:00 GMT http://www.tkk7.com/Javawind/archive/2007/12/01/164538.html http://www.tkk7.com/Javawind/comments/164538.html http://www.tkk7.com/Javawind/archive/2007/12/01/164538.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/164538.html http://www.tkk7.com/Javawind/services/trackbacks/164538.html 阅读全文 ]]> 【Java】properties的?/title> http://www.tkk7.com/Javawind/archive/2007/10/05/150622.htmlkooyee kooyee Fri, 05 Oct 2007 15:15:00 GMT http://www.tkk7.com/Javawind/archive/2007/10/05/150622.html http://www.tkk7.com/Javawind/comments/150622.html http://www.tkk7.com/Javawind/archive/2007/10/05/150622.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/150622.html http://www.tkk7.com/Javawind/services/trackbacks/150622.html 阅读全文 ]]> [Java mail] 如何在javamail中用用户验?/title> http://www.tkk7.com/Javawind/archive/2007/10/05/150609.htmlkooyee kooyee Fri, 05 Oct 2007 13:28:00 GMT http://www.tkk7.com/Javawind/archive/2007/10/05/150609.html http://www.tkk7.com/Javawind/comments/150609.html http://www.tkk7.com/Javawind/archive/2007/10/05/150609.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/150609.html http://www.tkk7.com/Javawind/services/trackbacks/150609.html 先徏立一个承了(jin)javax.mail.Authenticatorq个抽象cȝc?br />
public class Authent extends Authenticator {
private PasswordAuthentication autentic;
public Authent() {
// setup PasswordAuthentication
autentic = new PasswordAuthentication( " username " , " password " )Q?br />
}
public PasswordAuthentication getPasswordAuthentication() {
return autentic;
}
}
然后修改properties和session的代?br />
props.put("mail.Transport.protocol", "smtp");
props.put("mail.smtp.port","25");
props.put( " mail.smtp.auth " , " true " );
Session session = Session.getDefaultInstance(props, new Authent());
如果需要call back机制Q当需要验证时。如下修改session
Session session = Session.getInstance(props, new Authent());
]]>[Java] Eclipse Software Updates http://www.tkk7.com/Javawind/archive/2007/09/29/149667.htmlkooyee kooyee Sat, 29 Sep 2007 11:36:00 GMT http://www.tkk7.com/Javawind/archive/2007/09/29/149667.html http://www.tkk7.com/Javawind/comments/149667.html http://www.tkk7.com/Javawind/archive/2007/09/29/149667.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/149667.html http://www.tkk7.com/Javawind/services/trackbacks/149667.html Welcome to the Eclipse Update Site . This site contains feature and plug-in versions for Eclipse project releases, published in the form expected by the Eclipse Update Manager (R3.0). Use the Update Manager's Feature Updates view to open this site (http://update.eclipse.org/updates) to locate new and updated Eclipse project feature versions to download.
Welcome to the Eclipse Visual Editor Update Site . This site contains feature and plug-in versions for Eclipse Visual Editor project releases, published in the form expected by the Eclipse Update Manager (R3.0). Use Eclipse's Update Manager (Help->Find and Install...->Search for new features to install) view to open this site (http://update.eclipse.org/tools/ve/updates/1.0) to locate new and updated Eclipse Visual Editor project feature versions to download.
Also, you will need to have first installed GEF and EMF before VE can be installed.
or in google search for the "pulg-in name update site". eg Visual Editor update site
]]> [Java优化~程] 1.10 Ҏ(gu)、变量与帔R的命名规?/title> http://www.tkk7.com/Javawind/archive/2007/09/21/147220.htmlkooyee kooyee Fri, 21 Sep 2007 14:40:00 GMT http://www.tkk7.com/Javawind/archive/2007/09/21/147220.html http://www.tkk7.com/Javawind/comments/147220.html http://www.tkk7.com/Javawind/archive/2007/09/21/147220.html#Feedback 1 http://www.tkk7.com/Javawind/comments/commentRss/147220.html http://www.tkk7.com/Javawind/services/trackbacks/147220.html 1.10 Ҏ(gu)、变量与帔R的命名规?/h3>
关于包、类?qing)接口的命名规则Q在上面的章节中已经讲解q,在此׃再赘qC(jin)Q本节讲解在JavaE序设计中,有关Ҏ(gu)、变量与帔R的命名规则相关的知识?/p>
1.10.1 Ҏ(gu)的命名规?/h3>
Ҏ(gu)一般来说都是动词,W一个字母应该小写,在多个单词合的情况下,W一个单词后的所有单词的W一个字母大写,其余字母写Q例如下面的代码Q?/p>
run();
runFast();
getBackground();
在方法的声明部分Q通常要提供对Ҏ(gu)功能的描qͼ以及(qing)Ҏ(gu)中返回g参数的说明,例如下面的代码:(x)
/**
* 昄pȝ信息Ҏ(gu)
* @param message pȝ信息参数
* @return message q回pȝ信息
*/
public String showMessage (String message) {
…
// statements ;
…
return message ;
}
如果该方法在软g产品的不断升U中已经不被使用?jin),可以通过在方法声明注释部分添加关键字@deprecated实现?/p>
1.10.2 变量的命名规?/h3>
变量的命名规则是Q除?jin)变量(variableQ,所有对象的实例QinstanceQ,c(classQ与cȝ帔RQconstantQ的W一个字母应该小写,在多个单词合的情况下第一个单词后的所有单词的W一个字母大写,其余字母写的规则之外。变量的W一个字母即使系l允许,也不要ؓ(f)_或?。变量名字因该紧凑而有意义。变量的名字应该是易记忆、易于理解的Q即佉K隔较长的旉也可以依其名而知其意。另外单字符的变量名应该量避免Q除非(f)时变量,例如Q一些整数单字符临时变量Qi,j,k,m,n{以?qing)单字符变量Qc,d,e{,如下所C的代码Q?/p>
int i;
char c;
float imageWidth;
1.10.3 帔R的命名规?/h3>
Java中的帔R一般采用大写字母单词命名,单词与单词之间用下划U(_Q加以分Ԍq符合ANSI的常量命名规则,如下所C的代码Q?/p>
static final int MIN_WIDTH = 14;
static final int MAX_WIDTH = 1000;
static final int GET_THE_MEMORY = 128;
&注意 关于关键字static与final的用法,我们在下面章节做详l的讨论?/p>
上面讨论?jin)Java语言中的代码~写风格?qing)相x(chng)式与书写规则Q下面做一个简单JavaE序设计的实践,从中掌握所学过的知识?/p>
]]> CLASSPATH详解 http://www.tkk7.com/Javawind/archive/2007/08/30/141463.htmlkooyee kooyee Thu, 30 Aug 2007 09:42:00 GMT http://www.tkk7.com/Javawind/archive/2007/08/30/141463.html http://www.tkk7.com/Javawind/comments/141463.html http://www.tkk7.com/Javawind/archive/2007/08/30/141463.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/141463.html http://www.tkk7.com/Javawind/services/trackbacks/141463.html l构 可通过?JDK 工具使用 -classpath 选项Q首选方法)(j)或设|?CLASSPATH 环境变量来设|类路径? C:> jdkTool -classpath path1;path2... C:> set CLASSPATH=path1;path2... 每个 path 以文件名或目录结,该文件名或目录取决于类路径讄成什么:(x) 对于包含 .class 文g?.zip ?.jar 文gQ\径以 .zip ?.jar 文g名结? 对于未命名包中的 .class 文gQ\径以包含 .class 文g的目录结? 对于已命名包中的 .class 文gQ\径以包含“root”包(完整包名中的W一个包Q的目录l尾? 用分h分隔多个目。?set 命o(h)Ӟ需要省略等号两边的I格Q?Q。其?jdkTool 可以?java、javac、javadocQ等{。有兌l列表,参见 JDK 开发工兗? 说明 c\径告?Java 应用E序d里查扄三方和自定义c?-- 即不?Java 扩展?Java q_一部分的类。在 JDK 1.2 中,JVM 和其?JDK 工具通过依次搜烦(ch)q_库、库扩展和类路径来查扄Q有x(chng)索策略的详细信息Q参见如何查扄Q? 多数应用E序的类库都?x)充分利用扩展机制。因此,只有惌加蝲某个cd (a) 未位于当前目录或其分枝包??(b) 未位于扩展机制所指定的位|时Q才需讄c\径? 如果用户是从旧版?JDK 升而来Q则启动讄可能包括不再需要的 CLASSPATH 讄。这时应该删除Q何非应用E序特定的设|。有些?Java 虚拟机的W三方应用程序可能修?CLASSPATH 环境变量以包括它们用的cd。这U设|可以保留? 可通过在调?JVM 或其?JDK 工具时?Java 工具?-classpath 选项改变c\径(例如Q?java -classpath ...Q。这是改变类路径的首选方法。还可通过使用 CLASSPATH 环境变量改变c\径? 注意QJDK 1.2 ~省c\径是当前目录。设|?CLASSPATH 变量或?-classpath 命o(h)行开兛_覆盖~省|因而如果想要在搜烦(ch)路径中包括当前目录,则必d新设|中包括“.”? cd以存储在目录Q文件夹Q或归档文gQ例?classes.zip ?classes.jarQ中。有兛_档文件的详细信息和类路径的工作原理,参见本文档最后的理解c\径和包名? 重要说明QJDK 旧版本在~省c\径中q包?/classes V该目录仅供 JDK 使用Q且不用于应用程序类。应用程序类应该攄?JDK 外部的目录。这P安装?JDK 时不必需要重新安装应用程序库。ؓ(f)?jin)与旧版本的兼容性,使用 /classes 目录作ؓ(f)cd的应用程序在当前版本中仍能运行,但不能保证在以后的版本中它们q能q行? 使用 Java 工具?-classpath 选项 Java 工具 java、jdb、javac ?javah h -classpath 选项Q在工具q行时它?yu)取代缺省类路径或?CLASSPATH 环境变量所指定的类路径。这是改变类路径讄的推荐方法,因ؓ(f)q样每个应用E序可具有它所需的类路径而又不会(x)q扰其他应用E序? q行时工?java ?jdb q具?-cp 选项。该选项?-classpath 的羃写? 对于非常Ҏ(gu)的情况,java ?javac 都具有开养I使得可改变它们用的路径以查扑֮们自qcd。但是,l大多数用户从来都不?x)用到这些开兟? 使用 CLASSPATH 环境变量 如前一节中所qͼ一般用户将惌使用 -classpath 命o(h)行选项。本节将介绍如何讄 CLASSPATH 环境变量或清除以前安装遗留下的设|? 讄 CLASSPATH ?DOS 提示W下Q可?set 命o(h)修改 CLASSPATH 环境变量。其格式为:(x) set CLASSPATH=path1;path2 ... 路径应该以指定驱动器的字母开_(d)例如 C:\...。这P在偶然切换到不同驱动器时仍可扑ֈc(例如Q如果\径项?\... 开_(d)q且当前位于驱动?D: 上,则所需的类在 D: 而不?C: 驱动器上找)(j)? 清除 CLASSPATH 如果 CLASSPATH 环境变量被设|成不正的|或启动文件或脚本E序讄?jin)不正确路径Q则可通过使用下列命o(h)清除 CLASSPATHQ? C:> set CLASSPATH= 该命令仅清除当前?x)话?CLASSPATH。要保在以后的?x)话中具有正?CLASSPATH 讄Q则应该删除或修改启动设|? 更改启动讄 如果在系l启动时讄 CLASSPATH 变量Q则查找它的位置取决于所使用的操作系l:(x) 操作pȝ Ҏ(gu) Windows 98 ?Windows 95 (g)?autoexec.bat 文g中的 set 命o(h)? Windows NT 启动“控制面板”Q选择“pȝ”Q单?#8220;环境”选项卡,q在“用户变量”部分中,(g)?CLASSPATH 变量? 理解c\径和包名 Java c被l织成包Q而这些包被映到文gpȝ中的目录。但是与文gpȝ不同的是Q无Z时指定包名,都应指定完整包名 -- 永远不要仅指定它的一部分。例如,java.awt.Button 的包名L应指定ؓ(f) java.awt? 例如Q假定想?Java q行环境在包 utility.myapp 中查扑?Cool.class 的类。如果该目录的\径ؓ(f) C:\java\MyClasses\utility\myappQ则应该类路径讄成包?C:\java\MyClasses? 要运行该应用E序Q可使用下述 JVM 命o(h)Q? C:> java -classpath C:\java\MyClasses utility.myapp.Cool 当该应用E序q行ӞJVM 使用c\径设|查扑֜ utility.myapp 包中定义的Q何其他类? 注意Q应在命令中指定完整包名。例如,讄c\径包?C:\java\MyClasses\utility q用命?java myapp.Cool 是不可能的,因ؓ(f)q找不到该类? Q?zhn)可能想知道用什么定义类的包名。答案是Q包名是cȝ一部分Qƈ且不能修改,除非重新~译该类。)(j) 注意Q包规范机制一个有的l果是,属于相同包的多个文g实际上可存在于不同的目录中。对于每个类Q包名都是相同的Q但是每个文件的路径可从c\径中的不同目录开始? 文g夹和归档文g 当类存储在目录(文g夹)(j)中时Q例?c:\java\MyClasses\utility\myappQ则c\径项指向包含包名W一个元素的目录Q在q里?C:\java\MyClassesQ因为包名是 utility.myappQ? 但是当类存储在归档文Ӟ.zip ?.jar 文gQ中Ӟc\径项则是?.zip ?.jar 文g的\径。例如,要用位?.jar 文g中的cdQ则命o(h)应该cM下述形式Q? java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool 多重指定 要在目录 C:\java\MyClasses ?C:\java\OtherClasses 中查扄文gQ则可将c\径设|ؓ(f)Q? java -classpath C:\java\MyClasses;C:\java\OtherClasses ... 注意两个路径之间用分号分隔? 指定ơ序 指定多个c\径项的次序是相当重要的。Java 解释器将按照目录在类路径变量中的ơ序在各个目录中查找cR在上例中,Java 解释器首先在目录 C:\java\MyClasses 中查N要的cR只有当它在该目录中没有扑ֈ该类Ӟ解释器才能到 C:\java\OtherClasses 目录中查?
]]>【J2EE开发日记?MyEclipse快捷键与插g大全 http://www.tkk7.com/Javawind/archive/2007/08/28/140665.htmlkooyee kooyee Tue, 28 Aug 2007 13:22:00 GMT http://www.tkk7.com/Javawind/archive/2007/08/28/140665.html http://www.tkk7.com/Javawind/comments/140665.html http://www.tkk7.com/Javawind/archive/2007/08/28/140665.html#Feedback 0 http://www.tkk7.com/Javawind/comments/commentRss/140665.html http://www.tkk7.com/Javawind/services/trackbacks/140665.html Q?QCtrl+Q Q-跛_最后一ơ的~辑?br>Q?QF2 Q-当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标Ud时Tooltipq(sh)(x)昄即Show Tooltip Description?br> F3 Q-跛_声明或定义的地方?br> F5 Q-单步调试q入函数内部?br> F6 Q-单步调试不进入函数内部,如果装了(jin)金山词霸2006则要?#8220;取词开?#8221;的快捷键Ҏ(gu)其他的?br> F7 Q-由函数内部返回到调用处?br> F8 Q-一直执行到下一个断炏V?br>Q?QCtrl+Pg~ Q-对于XML文g是切换代码和囄H口 Q?QCtrl+Alt+I Q-看Java文g中变量的相关信息 Q?QCtrl+PgUp Q-对于代码H口是打开“Show List”下拉框,在此下拉框里昄有最q曾打开的文?br>Q?QCtrl+/ Q-在代码窗口中是这U?/~注释?br> Ctrl+Shift+/ Q-在代码窗口中是这U?*~*/注释Q在JSP文gH口中是?--~--〉?br>Q?QAlt+Shift+O(或点dh中的Toggle Mark Occurrences按钮) 当点?yn)L个标记时可本页面中其他地方的此标记黄色凸显Qƈ且窗口的双框会(x)出现白色的方块,点击此方块会(x)跛_此标记处?br>Q?Q右ȝ口的左边框即加断点的地方选Show Line Numbers可以加行受?br>Q?0QCtrl+I格式化激zȝ元素Format Active Elements?br> Ctrl+Shift+F格式化文件Format Document?br>Q?1QCtrl+S保存当前文g?br> Ctrl+Shift+S保存所有未保存的文件?br>Q?2QCtrl+Shift+M(先把光标攑֜需导入包的cd? 作用是加I(yng)mport语句?br> Ctrl+Shift+O作用是缺的Import语句被加入,多余的Import语句被删除?br>Q?3QCtrl+Space提示键入内容即Content AssistQ此时要输入法中Chinese(Simplified)IME-Ime/Nonlme Toggle的快捷键Q用于切换英文和其他文字Q改成其他的?br> Ctrl+Shift+Space提示信息即Context Information?br>Q?4Q双ȝ口的左边框可以加断点?br>Q?5QCtrl+D删除当前行?br> Q-Q待l?br> [以下{载] Eclipse快捷键大?br>Ctrl+1 快速修?最l典的快捷键,׃用多说了(jin)) Ctrl+D: 删除当前? Ctrl+Alt+↓ 复制当前行到下一?复制增加) Ctrl+Alt+↑ 复制当前行到上一?复制增加) Alt+↓ 当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了(jin)) Alt+↑ 当前行和上面一行交互位|?同上) Alt+← 前一个编辑的面 Alt+→ 下一个编辑的面(当然是针对上面那条来说了(jin)) Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?br> Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最? Shift+Ctrl+Enter 在当前行插入I(原理同上? Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某?(对于E序过100的h有音? Ctrl+M 最大化当前的Edit或View (再按则反? Ctrl+/ 注释当前?再按则取消注?br>Ctrl+O 快速显C?OutLine Ctrl+T 快速显C当前类的承结?br>Ctrl+W 关闭当前Editer Ctrl+K 参照选中的Word快速定位到下一?br>Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示) Ctrl+/(键? 折叠当前cM的所有代?br> Ctrl+×(键? 展开当前cM的所有代?br> Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代? Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作) Ctrl+J 正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C(jin),查一个单词时,特别实用,q个功能Idea两年前就有了(jin)) Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查) Ctrl+Shift+F4 关闭所有打开的Editer Ctrl+Shift+X 把当前选中的文本全部变呛_?br> Ctrl+Shift+Y 把当前选中的文本全部变?sh)小?br> Ctrl+Shift+F 格式化当前代?br> Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反? 下面的快捷键是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的快捷键都是Alt+Shift开头的? Alt+Shift+R 重命?(是我自己最q的一个了(jin),其是变量和cȝRename,比手工方法能节省很多力_? Alt+Shift+M 抽取Ҏ(gu) (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用) Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了(jin)q个Ҏ(gu),修改一ơ搞? Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时? Alt+Shift+F 把Class中的local变量变(sh)ؓ(f)field变量 (比较实用的功? Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline) Alt+Shift+V Ud函数和变?不怎么常用) Alt+Shift+Z 重构的后(zhn)药(Undo) Eclipse插g介绍与下?br>1.Eclipse下蝲 EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在q里下蝲 http://www.eclipse.org/downloads/index.php 1.lomboz J2EE插g,开发JSP,EJB http://forge.objectweb.org/projects/lomboz 1.MyEclipse J2EE开发插Ӟ支持SERVLET/JSP/EJB/数据库操U늭 http://www.myeclipseide.com 2.Properties Editor ~辑java的属性文Ӟq可以自动存盘(sh)ؓ(f)Unicode格式 http://propedit.sourceforge.jp/index_en.html 3.Colorer Take Z癄cd的文件按语法着? http://colorer.sourceforge.net/ 4.XMLBuddy ~辑xml文g http://www.xmlbuddy.com 5.Code Folding 加入多种代码折叠功能Q比eclipse自带的更多)(j) http://www.coffee-bytes.com/servlet/PlatformSupport 5.jseclipse 支持JRE1.4 http://www.interaktonline.com/Products/Eclipse/JSEclipse/Try-Download/ 6.Easy Explorer 从eclipse中访问选定文g、目录所在的文g? http://easystruts.sourceforge.net/ 7.Fat Jar 打包插gQ可以方便的完成各种打包dQ可以包含外部的包等 http://fjep.sourceforge.net/ 8.RegEx Test 试正则表达? http://brosinski.com/stephan/archives/000028.php 9.JasperAssistant 报表插gQ强Q要qQ? http://www.jasperassistant.com/ 10.Jigloo GUI Builder QAQӞ的GQテ~辑插g http://cloudgarden.com/jigloo/ 11.Profiler 性能跟踪、测量工P能跟t、测量Q程? http://sourceforge.net/projects/eclipsecolorer/ 12.AdvanQas 提供对if/else{条件语句的提示和快捷帮助(自动更改l构{)(j) http://eclipsecolorer.sourceforge.net/advanqas/index.html 13.Log4E Log4j插gQ提供各U和Log4j相关的Q务,如ؓ(f)Ҏ(gu)、类d一个logger{? http://log4e.jayefem.de/index.php/Main_Page 14.VSSPlugin VSS插g http://sourceforge.net/projects/vssplugin 15.Implementors 提供跌{C个方法的实现c,而不是接中的功能Q实?Q? http://eclipse-tools.sourceforge.net/implementors/ 16.Call Hierarchy 昄一个方法的调用层次Q被哪些Ҏ(gu)调,调了(jin)哪些Ҏ(gu)Q? http://eclipse-tools.sourceforge.net/call-hierarchy/index.html 17.EclipseTidy (g)查和格式化HTML/XML文g http://eclipsetidy.sourceforge.net/ 18.Checkclipse (g)查代码的风格、写法是否符合规? http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm 19.Hibernate Synchronizer Hibernate插gQ自动映等 http://www.binamics.com/hibernatesync/ 20.VeloEclipse Velocity插g http://propsorter.sourceforge.net/ 21.EditorList 方便的列出所有打开的Editor http://editorlist.sourceforge.net/ 22.MemoryManager 内存占用率的监视 http://cloudgarden.com/memorymanager/ 23.swt-designer java的GUI插g http://www.swt-designer.com/ 24.TomcatPlugin 支持Tomcat插g http://www.sysdeo.com/eclipse/tomcatPlugin.html 25.XML Viewer http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html 26.quantum 数据库插?br>http://quantum.sourceforge.net/ 27.Dbedit 数据库插?br>http://sourceforge.net/projects/dbedit 28.clay.core 可视化的数据库插? http://www.azzurri.jp/en/software/index.jsp http://www.azzurri.jp/eclipse/plugins 29.hiberclipse hibernate插g http://hiberclipse.sourceforge.net http://www.binamics.com/hibernatesync 30.struts-console Struts插g http://www.jamesholmes.com/struts/console/ 31.easystruts Struts插g http://easystruts.sourceforge.net 32.veloedit Velocity插g http://veloedit.sourceforge.net/ 33.jalopy 代码整理插g http://jalopy.sourceforge.net/ 34.JDepend 包关pd?br>http://andrei.gmxhome.de/jdepend4eclipse/links.html 35.Spring IDE Spring插g http://springide-eclip.sourceforge.net/updatesite/ 36.doclipse 可以产生xdoclet 的代码提C?br>http://beust.com/doclipse/ Eclipse插g大全下蝲 q里有比较全的eclipse插g下蝲QE文不错的可以ȝ看,应该能找C需要的东西?br>http://www.eclipse-plugins.info/eclipse/plugins.jsp; jsessionid=474944821E463102785EFCB59F941256
]]>
վ֩ģ壺
AVרAëƬ |
þҹ³Ƭ |
avרavëƬ |
һëƬѹۿ |
Ƶۿ |
avۺ |
Ļ߹ۿƵ |
AVһ |
avttֻ |
ɫվWWWվ |
һ |
ŷպɫ |
96| |
Ů۳Ƶ߿ |
һëƬѿ˾ |
þ㽶Ƶ |
Ʒѿþþ
|
һ |
91˾Ʒ |
Ʒ˾Ʒ |
Ʒһ
|
AVרӰ߹ۿ |
þþþƷС˵ |
Դ |
һ߹ۿ |
߹ۿ
|
99ɫƷ88 |
һۺר |
˳ɵӰ߹ۿ |
aëƬѹۿ |
ҹѸƵ |
ѹۿaƵ |
Ʒ91רֻ |
avר߲ |
ɫɫwww |
ҹɫ˽ӰԺվ |
ĻֻѿӰ
|
ɫƬվ |
Ʒѿþþ |
ŮëƬѲ |
Ƶ |