此篇文章记录异常处理 枚举 反射 注解 IO流 泛型的一些体会 内容可能不全,但是欢迎同仁们过来看看,有可能会让你想起一些遗忘的事务
抛出异常
throw用于方法括号里 throws用于方法体或者代码块中
如何处理throw抛出的异常对象
自己捕获异常 即是用try ctch语句处理
将异常抛出后给别人(即是调用者)处理
那个人也有两种方式 一是try' catch语句
二是throws接着将异常上抛(上抛给jvm)
什么时候只能看检查时异常???
检查时异常用throw抛出必须用try catch处理
而运行时异常则不用
throw抛出运行时异常不需要加throws
F5 F6 F7 F8在eclipse调试中
先进入debug模式中
f5是进入当前方法
f6是执行下一行代码
f7退出方法
f8进入下一个断点
log4j
枚举
1.构造方法只能是private
2.枚举中可以定义抽象方法,但是枚举对象必须实现这些抽象方法
Colors [] colors=Colors.values();
for(Colors color:colors) {
System.out.println(color.getName()+color.getId());
this不能用在静态中!!!
jvm在运行中,对于任何一个类,都能知道他的所有属性与方法;
对于任何一个对象,都能调用它的属性与方法,是一个动态调用对象的方法
反射就是把java类中的种种成分映射为一个个java对象 如成员变量 方法 构造方法 包
其中变量用field表示 方法用method 构造函数用constructor
一 。
Class是反射的入口!! 封装了一个个类的信息 调用其对象获取更多
PS:该类不可被继承 因为被final修饰 该类的构造方法是private 不能通过new来创建!
通常用forname获取class
1.Class clazz =forname("abc.Student")
2.Class clazz=Student.class
两种方式获取
如果是基本数据类型 采取Integer Byte Long Short Double Float Boolean Character
如clazz=Integer.Type 即后缀加上type
ps:getName()是表示输出全名
而 getClass()则是在已有对象时候往回调用其内容
数组对用的 通过【】来获取class实例
如String[] name=new String[5]
Class clazz=String [].class
二。
获取构造方法 分为4种
1.Constrctor [] constrctors=clazz.getConstroctors;
2.Constrctor [] constrctors=clazz.getCDeclaredonstroctors;
3.Constructor constructor=clazz.getConstructor();
4.Constructor constructor=clazz.getDeclaredConstructor(String.class)
区分好是返回一个还是所有 是返回public还是所有
ps:for循环的应用
Constructor [] constructors=clazz.getConstructoes();
for(Constructor constructor:constructors)
System.out.println(constructor.getName());
操作构造方法
即创建对象
常常应用 constructor.setAccessible(true)来忽视
用newInstance()来创建一个新对象
如:Object object=constructor.newInstance("xiaowang");
相当于上转型对象
三。
获取属性
getField();getFields();
set设置属性值
get获取属性值
如Field field=clazz.getField(name)
Student student=new Student()
field.set(student,xiaowang)
Object obj=field.get(student)
Java注解
SuppressWaring是无用的
cirl按进去注解查看源码
自定义注解
eclipes自动跟踪 两套代码执行 一套定义反射 一套反射实现追踪功能
default用于为注解属性赋默认值,如果一个注解属性没有默认值,则使用该注解时必须为其赋值
如果属性名为value,则可以直接赋值
内置注解
override不允许用在类上
java注解按照有无参数分为三种@Annotation
分别是不带参数的,带一个参数的,带多个参数的!
自定义注解分为@Override注解 @Deprecated注解 @suppressWaring注解
SuppressWaring注解用于消除警告(比如deprecation标记的,比如unused,比如serial)
泛型用来约束能存放什么类型的数据!
names.add(“2,王五")把他排到第三位!
iterator也是一种遍历方式
Iterator <String> iterator=names.iterator();
while(iterator.hasNext()) {
String name=iterator.next();
System.out.println(name);
}
File有三个构造方法 mkdir只能创建一层没有的文件夹
但是mkdirs却可以创建多个文件夹!
delete只删除最后一级!
File.Seperater表示斜线! 其兼容性好,各个系统都能用
如"D:"+File.separator+"a"+File.separator+"b"
模块化开发!