Java基础加强 (一)

2014-11-24 09:56:18 · 作者: · 浏览: 0

1、Eclipse的使用 (myeclipse 10)

(1)工作空间(workspace)、工程(project)

(2)在eclipse下Java程序的编写和运行,及java运行环境的配置。

(3)快捷键的配置,常用快捷键:

内容提示:Alt + /

快速修复:Ctrl + 1

导包:Ctrl + shift + O

格式化代码块:ctrl + shift + F

向前向后:Alt + 方向键

添加注释 Ctrl+Shift+/

除去注释 Ctrl+Shift+\

(4)程序的调试和运行

F5(跳入) F6(跳过) F7(跳出)

Junit

(5)查看方法说明:F2

重置透视图

更改为大写 Ctrl+Shift+X

更改为小写 Ctrl+Shift+Y

复制行 Ctrl+Alt+向下键(有些不能用) -------------- > win7 下更改 快捷键 (屏幕分辨率---> 高级设置---> ...)

查看源代码

1、ctrl+T

2、ctrl+shift+T

测试用例

assert 类 api

2、JDK 5.0 新特性 1.0

JDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效、清晰,安全的代码。

(1)静态导入

(2)自动装箱/拆箱

(3)增强for循环

(4)可变参数

(5)枚举

(6)泛型

(7)元数据

3、静态导入

(1)JDK 1.5 增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。

(2)语法:

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

(3)例如:

import static java.lang.System.out

import static java.lang.Math.*

4、自动装箱/拆箱

(1)JDK5.0的语法允许开发人员把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 类型的变量,这个过程称之为自动装箱。

(2)自动拆箱与自动装箱与之相反,即把包装类对象直接赋给一个对应的基本类型变量。

(3)典型应用:

List list = new ArrayList();

list.add(1);

int j = (Integer)list.get(0);


5、增强for循环

(1)引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!

(2)因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterator接口的集合类上

(3)语法格式:

for(变量类型 变量 :需迭代的数组或集合){

}

例子:

int arr[] = new int[5];

for(int num : arr){

num = 1;

}

System.out.println(arr[0]);

6、可变参数

(1)测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组,传数组又传参的情况。

注意:传入基本数据类型数组的问题。

(2)从JDK 5开始, Java 允许为方法定义长度可变的参数。语法:

public void foo(int … args){

}

(3)注意事项:

调用可变参数的方法时, 编译器将自动创建一个数组保存传递给方法的可变参数,因此,程序员可以在方法体中以数组的形式访问可变参数

可变参数只能处于参数列表的最后, 所以一个方法最多只能有一个长度可变的参数

7、枚举类

(1)为什么需要枚举?

一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。

(2)JDK 5新增的 enum 关键字用于定义一个枚举类。

(3)枚举类具有如下特性:

1、枚举类也是一种特殊形式的Java类。

2、枚举类中声明的每一个枚举值代表枚举类的一个实例对象。

3、与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。

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

5、JDK5中扩展了swith语句,它除了可以接收int, byte, char, short外,还可以接收一个枚举类型。

若枚举类只有一个枚举值,则可以当作单态设计模式使用。

练习:请编写一个关于星期几的枚举WeekDay,要求:

枚举值:Mon,Tue,Wed,Thu,Fri,Sat,Sun

该枚举要有一个方法,调用该方法返回中文格式的星期。

(3)Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:

name()

ordinal()

valueof(Class enumClass, String name)

values() 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。


8、反射

(1)什么是反射?

反射就是把Java类中的各种成分映射成一个个的java对象(加载类,解剖出类的各个组成部分)。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。

(2)反射用在哪里?

(3)学习反射应该掌握些什么?

9、Class类

(1)Class类用于表示.class文件,画图演示一个对象的创建过程。

(2)如何得到某个class文件对应的class对象。

类名.class,

对象.getClass()

Class.forName(“类名”)

(3)数组类型的Class实例对象

Class.isArray()

(4)总之,只要是在源程序中出现的类型,都有各自的Class实例对象,例如,int,void…


10、Constructor类

(1)Constructor类的实例对象代表类的一个构造方法。

(2)得到某个类所有的构造方法,例:

Constructor [] constructors= Class.forName("java.lang.String").getConstructors();

(3)得到某一个构造方法,例:

Constructor constructor = Class.forName(“java.lang.String”).getConstructor(StringBuffer.class);

(4)利用构造方法创建实例对象:

String str = (String)constructor.newInstance(“abc”);

(5)Class类的newInstance()方法也可创建类的实例,其内部工作原理是先得无参的构造方法,再用构造方法创建实例对象。

String obj =(String)Class.forName("java.lang.String").newInstance();

(6)String obj =(String)Class.forName(“java.lang.String”).newInstance(); 这个也是 为什么 大家在学 基