Jbuilder2005开发小技巧

JBuilder2005使用指南
本文介绍了JBuilder2005的安装目录结构及其重要组成部分,包括各种目录的功能介绍,如bin、doc、extras等,并提供了解决光标错位问题的方法。此外,还详细列举了Java 5.0的一些新特性,例如泛型、自动装/拆箱、增强型for循环等。

1) 安装好jbuilder2005后,可以看下它的安装目录,对以后很有帮助。它主要的目录有:(1)bin目录。这里存放各种可执行的二进制文件。(2doc目录。这里存放各种.jar格式的javadoc帮助文档,jbuilder2005会调用这个目录下的帮助文件来显示帮助信息。(3extras目录:这里有一些著名的第三方开源项目 (4jdk1.4目录:自带的一个jdk 。(5lib目录。存放jbuilder2005的各种类库 (6patch目录:存放补丁的地方。(7samples目录:这是我们最应该学习的地方了,很多示例程序 (8src目录:jbuilder2005开发的组件和类库的源代码。(9templates目录:jbuilder2005各种技术的模板。(10thirdparty目录:放置第三方开源项目的文档。

2) 当你需要查找一个类的信息时,可以Search->Find classes,就会载入类的代码,切换到doc就可以查看文挡。或者你可以将光标定位到要查看的类上,Ctrl+Q就可以调出帮助信息。此外,你也可以按F1,就可以调出帮助信息。

3) Jbuilder2005安装好后,不要立即启动,因为还存在着几个问题。1)光标错位。解决办法:在〈Jbuilder2005安装目录〉/bin目录下找到jbuilder.config文件,加入这样的:

20 vmmemmin <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="32" unitname="m">32m</chmetcnv>

21 vmmemmax 75%

22 vmparam –Dprimetime.editor.useVariableWidthFont=true<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

加入黑体的这一行再启动jbuilder,就可以解决掉问题。


4) jdk5.0新特性:

a)监视和管理,新加javax.managementjava.lang.management


None.gifpackagecom.vitamin.Console;
None.gif
importjava.lang.management.*;
None.gif
importjava.util.*;
None.gif
importjavax.management.*;
None.gif
None.gif
ExpandedBlockStart.gifContractedBlock.gif
publicclassMemoTestdot.gif{
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/***//**
InBlock.gif*
@paramargs
ExpandedSubBlockEnd.gif
*/

InBlock.gif
publicstaticvoidmain(String[]args)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//TODO自动生成方法存根
InBlock.gif
Listpools=ManagementFactory.getMemoryPoolMXBeans();
InBlock.gif
for(ListIteratori=pools.listIterator();i.hasNext();)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifMemoryPoolMXBeanp
=(MemoryPoolMXBean)i.next();
InBlock.gifSystem.out.println(
"内存类型:"+p.getType());
InBlock.gifSystem.out.println(
"内存使用情况:"+p.getUsage());
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedBlockEnd.gif}

None.gif


b).泛型


未使用泛型的代码:

None.gifpackagecom.vitamin.Console;
None.gif
importjava.util.ArrayList;
None.gif
importjava.lang.*;
None.gif
None.gif
ExpandedBlockStart.gifContractedBlock.gif
publicclassMemoTestdot.gif{
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/***//**
InBlock.gif*
@paramargs
ExpandedSubBlockEnd.gif
*/

InBlock.gif
publicstaticvoidmain(String[]args)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//TODO自动生成方法存根
InBlock.gif

InBlock.gifArrayListal
=newArrayList();
InBlock.gifal.add(
0,newInteger(44));
InBlock.gif
inttol=((Integer)al.get(0)).intValue();
InBlock.gifSystem.out.println(tol);
InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedBlockEnd.gif}

None.gif

使用泛型的代码:


None.gifpackagecom.vitamin.Console;
None.gif
importjava.util.ArrayList;
None.gif
importjava.lang.*;
None.gif
None.gif
ExpandedBlockStart.gifContractedBlock.gif
publicclassMemoTestdot.gif{
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
/***//**
InBlock.gif*
@paramargs
ExpandedSubBlockEnd.gif
*/
InBlock.gif
publicstaticvoidmain(String[]args)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
//TODO自动生成方法存根
InBlock.gif

InBlock.gifArrayList
<Integer>al=newArrayList<Integer>();
InBlock.gifal.add(
0,newInteger(44));
InBlock.gif
inttol=al.get(0).intValue();
InBlock.gifSystem.out.println(tol);
InBlock.gif
ExpandedSubBlockEnd.gif}

InBlock.gif
ExpandedBlockEnd.gif}

None.gif

使用泛型可以不需要再进行类型转换了,而且如果往里面添加类型不符合的数据的话,在编译时就会报错。

c)自动装/拆箱

未使用:

None.gifArrayList<Integer>al=newArrayList<Integer>();
None.gifal.add(
0,newInteger(44));
None.gif
inttol=al.get(0).intValue();
None.gif


使用:


None.gifArrayList<Integer>al=newArrayList<Integer>();
None.gifal.add(
0,44);
None.gif
inttol=al.get(0);
None.gif


d)增强型for循环

未使用:


None.gifArrayList<Integer>list=newArrayList<Integer>();
None.gifFor(IteratorI
=list.iterator();i.hasNext();)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifIntegervalue
=(Integer)i.next();
ExpandedBlockEnd.gif}

None.gif

使用:

None.gifArrayList<Integer>list=newArrayList<Integer>();
None.gifFor(Integeri:list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifIntegervalue
=i;
ExpandedBlockEnd.gif}

None.gif

甚至可以:

None.gifArrayList<Integer>list=newArrayList<Integer>();
None.gifFor(
inti:list)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif
intvalue=i;
ExpandedBlockEnd.gif}

None.gif

e)引入了新关键字enum

None.gifpublicenumStopLight
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifReg,Green,Yellow
ExpandedBlockEnd.gif}

None.gif



f)
静态引入

使用前:

None.gifImportjava.awt.BorderLayout.*;
None.gifgetContentPane().add(
newJPanel(),BorderLayout.CENTER);
None.gif


使用后:

None.gifImportstaticjava.awt.BorderLayout.*;
None.gifgetContentPane().add(
newJPanel(),CENTER);
None.gif

g)格式化输出/输入

None.gifSystem.out.printf(“hello,World/n”);
None.gifSystem.out.printf(“
%s%5d”,user,total);
None.gif
None.gifScanners
=Scanner.create(System.in);
None.gifStringparam
=s.next();
None.gifIntvalue
=s.nextInt();
None.gifs.close();
None.gif


h)不定参数

它允许在一个方法中传入多个不定数量的参数,

None.gifVoidmyFunc(Object...args)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifFor(
intI=0;I<args.length;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gifmyFunc(“tt”,”dafa”);
None.gif
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值