一、debug调试模式(断点调试模式)
- 使用这个模式,调试程序(看到程序内部数据变化)
- 设置断点(双击行号)
- debug as方式来,运行程序
- 可以让程序向下执行
step over 快捷键 F6 (单步执行)
resume 快捷键 F8 (调试结束,直接向下执行。即跳到下一个断点,如果没有断点,直接运行结束)
5.debug其他用途
查看程序源代码
F7 step into:进入方法
step return :返回
二、eclipse快捷键
代码修复ctrl+1
删除行ctrl + d
代码缩进,格式化 Ctrl+shift+F
三、Junit单元测试
四种测试:单元,集成,系统,用户验收
其中,单元测试,如下:
测试对象:一个类中的方法
junit不是Javase的一部分,想要使用,导入jar包。但,myeclipse中自带有junit的jar包
junit版本 3.x 4.x
单元测试时:方法命名规则:
public void 方法名(){}
运行测试方法【注解方式】
方法上面写 @Test
@Ignore:表示这个方法不进行单元测试
断言(了解)
Assert.assertEquals(“测试期望的值”,”方法运行的实际值”);
四、泛型 简介
JDK 1.0 1.1 1.4 5.0
JDK 5.0 新特性
泛型,枚举,静态导入,自动拆箱,增强for,可变参数,反射
为什么使用泛型?
一般使用在集合上,比如,把一个字符串类型的值,放入到集合中,那么这个值在放入到集合之后,容易失去它本身的类型,只能是Object类型。而此时,对类型强制转换的时候,容易出现类型转换错误。
1.使用在集合上
常用集合:list map set
在泛型里面写是一个对象,比如String 不能写就基本数据类型
,,应该写基本数据类型的包装类
byte – Byte
short – Short
int – Integer
long – Long
float – Float
double – Double
char – Character
boolean – Boolean
2.使用在方法上
使用 泛型 来 解决【 逻辑相同,返回值不同的方法】
/*
* 使用泛型方法需要定义一个类型,使用大写字母表示T 这个T表示任意类型
* 写在返回值之前
*
* */
public static <T> void swap1(T[] arr,int i,int j) {
T t =arr[i];
arr[i] = arr[j];
arr[j]=t;
}
3.使用在类上
public class TestDemo4<T> {
//可以在类里面,直接使用T的类型
T aa;
public void test11(T bb) {}
//写一个静态方法,静态方法不能使用类上面定义的泛型
public static <A> void test12( A aa){}
1.泛型擦除
泛型只是出现在源代码阶段,当编译之后,泛型不存在
2.使用泛型来实现一个方法,接受任意类型的数组,颠倒数组中的所有元素
//泛型来 颠倒元素的顺序
private static <T>void reverses(T[] arr2) {
for(int i=0;i<arr2.length/2;i++) {
T t = arr2[i];
arr2[i] = arr2[arr2.length-1-i];
arr2[arr2.length-1-i]=t;
}
}
五、枚举 简介
什么是枚举?
在一定范围内取值,这个值只能是这个范围中的任意一个
比如,现实中的红绿灯,只能亮一个
使用一个关键字enum
enum Color3{
RED,GREEN,YELLOW;
}
枚举的 构造方法也是私有的
特殊枚举的操作:
1.在枚举类里面有构造方法(构造方法里面有参数,需要每个实例上面都写)
2.在枚举里面有抽象方法,需要枚举的每一个实例都来重写这个抽象方法
六、枚举api的操作
name()返回枚举名称
ordinal() 枚举的下标,从0开始
valueOf(Class<T> enumType, String name);得到枚举对象
编译时,生成下面这2个方法,在api里面没有
valueOf(String name)转换枚举对象
value()获得所有枚举对象数组
枚举对象,名称,下标之间的转换
七、静态导入
代码里面,直接使用静态导入方式,导入静态方法或者常量
import static xx.xx.xxx.xx
使用场景比如,实现一个计算器,在Math类里面
八、自动拆装箱
装箱:把基本数据类型转换为包装类
拆箱:把包装类转换为基本的数据类型
//自动装箱
Integer a =10;
//自动拆箱
int m=a;
//在jdk1.4里面 实现拆装箱
public void test1() {
//装箱
Integer m = new Integer(10);
//拆箱
int a = m.intValue();
}
jdk是向下兼容的,比如,在jdk1.4里面写的代码,在5.0里面也可以执行
//jdk1.4不能实现自动拆装箱
public static void main(String[] args) {
doSomething(10);
}
public static void doSomething(double m) {
System.out.println(“doulbe…”);
}
public static void doSomething(Integer a) {
System.out.println(“integer…”);
}