学习中javawebWord格式.docx

上传人:b****5 文档编号:15690500 上传时间:2022-11-15 格式:DOCX 页数:42 大小:893.63KB
下载 相关 举报
学习中javawebWord格式.docx_第1页
第1页 / 共42页
学习中javawebWord格式.docx_第2页
第2页 / 共42页
学习中javawebWord格式.docx_第3页
第3页 / 共42页
学习中javawebWord格式.docx_第4页
第4页 / 共42页
学习中javawebWord格式.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

学习中javawebWord格式.docx

《学习中javawebWord格式.docx》由会员分享,可在线阅读,更多相关《学习中javawebWord格式.docx(42页珍藏版)》请在冰豆网上搜索。

学习中javawebWord格式.docx

JRESystemLibrary—>

Next—>

AlternateJRE—>

制定JRE路径—>

finish

完成以后,JRESystemLibrary将变为jdk1.6.0_29。

JavaCompiler

此时即可看到java运行环境也是6.0,如下图所示:

最后在运行java程序则正常了。

总结1:

javabuildPath可修改编译器;

Javacompiler可修改运行时环境。

2、以断点的方式查看程序问题DebugAs

如果程序出现问题,最好以断点的方式去运行程序(DebugAs)

双击左边部分,会出现一个小蓝点,这就是断点的标志。

,如下图:

在要设置断点的地方双击行号左边部分,即可增加一个断点,然后右键/Run—>

DebugAs—>

JavaApplication—>

在出现的对话框中选YES即可打开Debug视图(Perspective)

》》清除断点(Debug视图下右上角有一个Breakpoints窗口),点击下图中圆圈的叉便可全部删除断点(removeallbreakpoints)。

快速查找方法:

F5跳入(stepinto),如下图中红圈内的按钮,

F6图中右边一个按钮(表示跳过此步,执行下一步)

F7跳出此方法并返回开始处。

选中变量—>

右键—>

Watch就可以查看变量值

在Debug视图下,在增加断点—>

Resume(下图中绿色三角按钮)—>

即可直接定位到下一个断点处。

最终一定要关闭断点调试。

总结2:

F5:

stepinto

F6:

stepover

F7:

stepreturn

Droptoframe:

跳到当前方法的第一行

Resume:

跳到下一个断点(如果没有下一个断点,则运行完此程序)

Watch:

观察变量或表达式的值。

断点注意的问题:

1.调试完成后,要在breakpoints中清除所有断点

2.一定要结束运行断点的JVM

3、配置MyEclipse的快捷键

Window—>

preferences—>

输入key

✧alt+/:

内容提示

✧快速修复:

ctrl+1

✧格式化代码:

ctrl+shift+F

✧导入包:

ctrl+shift+O

✧向前向后:

Alt+方向键

✧查看方法说明:

F2

✧更为大写:

Ctrl+shift+x

✧更为小写:

Ctrl+shift+y

✧更换两行的位置:

Alt+方向键

✧查看类的继承关系:

ctrl+T

✧重置透视图:

window—>

ResetPerspective

✧列出所有的快捷键:

Ctrl+shift+L

✧粘贴源码AttachSource

若源码以文件夹形式存放时,选ExternalFolder;

若源码以文件形式存放,则选ExternalFile。

✧查看源码:

Ctrl+点击内容或ctrl+shift+T,会出现如下面板,然后在红框里边输入要查看的内容即可。

二、JDK5.0新特性

◆静态导入

importstatic包名.类名.静态属性|静态方法|*

◆自动装箱、拆箱

eg.

Integeri=1;

//装箱(把基本类型自动转为对象装入i变量中)

intj=i;

//拆箱(把对象自动转为基本类型)

◆增强for循环

只能用在数组、或实现Iterator、Iterable接口的集合类上。

for(变量类型变量:

需迭代的数组或集合){

}

因为Map没有实现Iterable接口,则Map不能直接使用for循环增强来遍历,方法:

通过Iterator得到Map的每个key,在通过key,并通用map.get(key)得到key相应的值。

◆可变参数

Class类:

publicConstructor<

T>

getConstructor(Class<

?

>

...parameterTypes)

Arrays类:

publicstatic<

List<

asList(T...a)T是对象类型

就是传入数组的时候应传入对象数组

eg:

intnum[];

不行,而Integernum[];

就可以,因为Integer修饰的为对象类型的数组,即每一个数组元素都是对象类型。

◆枚举和定义枚举

enum一个枚举也可有构造函数、字段和方法

带抽象方法的枚举:

在创建枚举的每个对象的时候,要实现枚举中的抽象方法。

枚举值相当于类的对象

枚举类的特性:

1.枚举类是一种特殊形式的java类;

2.其中声明的每一个枚举值代表枚举类的一个实例对象;

3.枚举的构造函数必须是私有的.

4.枚举类也可实现接口或继承抽象类。

5.JDK5.0扩展了switch语句,它除了可接收int,byte,short,char外,还可接收枚举类型。

6.若枚举类只有一个枚举值,则可当做单例模式使用。

//相当于用单例模式定义了一类

enumOnly{//class

Only;

//Object

java.lang

类Enum<

EextendsEnum<

E>

常用方法:

name()名称,ordinal()序号(从0开始),

valueOf(Class<

enumType,Stringname),

values()此方法在JDK中没有,但每个枚举类都有该方法,它用于遍历所有枚举值。

◆反射技术

反射用在框架中。

框架是基于配置文件的

一个类有多个组成成分,如:

成员变量,方法,构造方法等。

反射就是加载类,并解剖出类的各个组成成分。

1.加载类:

//1.forName(className)-参数必须为完整类路径,但不包括后缀名.java。

Classc1=Class.forName("

javaSE.Person"

);

//2.getClass()

Classc2=newPerson().getClass();

//3.XXX.clsss

Classc3=Person.class;

2.剖析类:

Class类中:

---得到public方法

getConstructor(Class<

getField(Stringname)

getMethod(Stringname,Class<

---得到所有方法,包括private方法

getDeclaredConstructor(Class<

getDeclaredField(Stringname)

getDeclaredMethod(Stringname,Class<

剖析出这些方法以后,有什么用?

构造函数--初始化,创建对象

字段--封装数据

方法--执行某个功能

反射类的构造函数

利用构造函数创建对象:

Constructor类中:

newInstance(Object...initargs)

eg1.对于public方法

//参数可控制你想反射的构造函数是哪个

//此处得到的构造函数是publicPerson(Stringname)--参数传入.class对象

Constructorcon1=c1.getConstructor(String.class);

//创建Person的实例

Personp1=(Person)con1.newInstance("

xxx"

eg2:

对于private方法

通过暴力反射可以使外界访问类中的私有方法。

Classc4=Class.forName("

Constructorcon4=c4.getDeclaredConstructor(List.class);

con4.setAccessible(true);

//暴力反射,打开private访问权限,使该私有方法可以被外界访问

Personp4=(Person)con4.newInstance(newArrayList());

反射类的方法

通过Class类中的方法getMethod(Stringname(方法名称),Class<

...parameterTypes)得到该类中方法。

然后通过

java.lang.reflect

类Method中的方法:

Objectinvoke(Objectobj,Object...args)

调用。

eg1:

注意传入的参数

Personp=newPerson();

Classc=Class.forName("

//getMethod(Stringname(方法名称),Class<

Methodm2=c.getMethod("

aa2"

String.class,int.class);

m2.invoke(p,"

Lily"

34);

//注意第一个参数是对象,后边为可变参数,此处传入一个字符串和一个整数

反射类的main方法

@Test

publicvoidtest5()throwsException{

Personp=newPerson();

Classc=Class.forName("

Methodm5=c.getMethod("

main"

String[].class);

/**

*m5.invoke(p,newString[]{"

a"

});

*若传入参数为String[]数组,则会抛出异常:

*java.lang.IllegalArgumentException:

argumenttypemismatch

*因为main方法里的参数只有一个(为String[]类型的参数)

*/

m5.invoke(p,(Object)newString[]{"

1"

//当传入的参数为Object时,将数组转为Object,就称为了一个参数,就不会报错了}

反射类的字段

字段--用来封装数据

Fieldf1=c.getField("

name"

//其中name是Person类中的一个字段名称

O

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1