MyEclipse使用
常用快捷键:
- 内容提示:ALT_/
- 快速修复:CTRL+1
- 导包:CTRL+SHIFT+O
- 格式化代码块:CTRL+SHIFT+F
- 大小写转换:变大写:CTRL+SHIFT+X 变小写:CTRL+SHIFT+Y
- 去除注释:CTRL+SHIFT+\
- 添加注释:CTRL+SHIFT+/
debug使用
1.跟踪程序的运行状态
2.方便查看程序源代码
设置断点
step over :跳过F6
Resume:跳到下一个断点,如果没有程序执行结束F8
Drop to Frame:回到方法的顶端
step Return:跳出方法 F7
去除断点
在debug试图右上角breakpoints
junit的使用
必须是public void不能传任何参数public void demo1(){}
- @Test:标识这个方法需要进行测试
- @lgnore:忽略这个方法不参与测试
- @Before:标记在这个方法之前都会执行
- @After:标记在这个方法之后都会执行
- @BeforeClass标记会在这个方法之前执行一次,这个方法必须是静态
- @AfterClass标记会在测试方法之后执行一次,这个方法必须是静态
泛型的使用
jdk5之后的泛型允许程序员使用泛型技术限制集合的处理类型
List<String>list = new ArrayList<String>();
泛型的应用
- List
- Set
- Map
java中程序的普通方法,构造方法和静态方法都可以使用泛型。方法在使用泛型前,必须对泛型声明,语法,T可以是任何大写字母。需要放在方法的返回值声明之前。
public static <T> void dott<T t>;
如果一个类多处都要用到泛型,这时可以把它定义到类上,即类级别的泛型。语法如下
public class GeneryDao(){
private T field1;
private void save(T obj){}
private T getId(){}
}
注意:静态方法不能使用类定义的泛型,而是单独定义泛型。
枚举类
为什么使用枚举类型?
在一些方法运行时,他需要的数据是不能任意的,而是必须是一定范围内的值。
创建枚举类型格式:
enum 枚举类型名称{
枚举对象1,
枚举对象2,
枚举对象n,
}
枚举类有如下特性:
- 枚举类也是一种特殊的java类
- 枚举类声明的每一个枚举值代表枚举类的一个实例对象
- 与Java普通类一样,枚举类声明时,也可以声明属性,方法,构造函数,但枚举类的构造方法必须是私有的。
- 枚举类也可以实现接口,继承,抽象
- 枚举类可以接受int,byte,char,short外,还可以接受一个枚举类型
- 若枚举类型只有一个值,则当作单态设计模式
常用方法:
- name();返回枚举对象名称
- ordinal()返回枚举对象下标
- valueof(class enumClass,String name)转换枚举对象
- valueof(string name)转换枚举对象
- values();获得所有枚举对象数组
静态导包:import static 包名.类名.静态属性.静态方法
eg:import static java.lang.System.out
自动装箱/拆箱
Java语法允许开发人员把一个基本数据类型直接赋值给包装类变量,或者赋值给object类型的变量,这个过程称为自动装箱。
自动拆箱与装箱相反,即把包装类对象直接赋值给一个对应的基本类型变量。
for/in 语句
引入增强for的原因:抛弃Iteraor
for/in使用范围:遍历数组,遍历实现Iteraor接口的集合类
语法格式:for(变量类型 变量 :需要迭代的数组或集合)
可变参数
- 可变参数位于参数列表的最后
- 是以数组的形式传递可变参数
- 一个方法最多一个可变参数
- 只能出现在形参中,局部变量不能使用。
反射
什么是反射?
- 剖析java类中的各个组成部分映射成一个个java对象
- 构造方法
- 成员变量
- 方法
- 类
反射多用在框架和组件,写出复用性高的程序里。
class类
java中java.lang.calss类用于表示一个类的字节码(.class)文件
如何得到某个class文件对应的class对象
- 已知类和对象的情况下
类名.class
对象名.getClass()—object类提供 - 未知类和对象的情况下
Class.forName(“包名.类名”);
class类代表某个类的字节码,并提供了加载字节码的方法:forName(“包名.类名”);
forName()方法用于加载类字节码到内存中,并封装成一个class对象
Constructor类
constructor类的实例对象代表类的一个构造方法
得到某个类的构造方法
Constructor [] constructor = class.forName(“java.lang.String”).getConStructor();得到指定的构造方法并调用
Constructor constructor = class.forName(“java.lang.string”).getConstructor(string.class);
string str = (String)constructor.newInstance(“abc”);class类的newInstance()方法用来调用默认构造方法
String obj = (String)class.forName(“java.lang.string”).newInstance();
Filed类
- filed类代表某个类的一个成员变量,并提供动态的访问权限
- filed对象的获得
- 得到所有的成员变量
- Filed filed = c.getFileds();//取得所有public属性
- Filed filed = c.getDeclaredFileds();//取得所有声明的属性
- 得到指定的成员变量
- Filed name = c.getFiled(“name”);
- Filed name = c.getDeclaredFiled(“name”);
- 设置filed变量是否可以访问
- filed.setAccessible(boolean);
- Filed变量值的读取,设置
- filed.get(obj);
- filed.set(obj);
Method类
- method代表某个类的成员方法
method对象的获得
- 获得所有方法
- getDeclaredMethod();
- getMethods();
- 获得所有方法
获得指定的方法
- getDeclaredMethod(string name,class