异常包含 Error, Exception, 而 Exception 包含 运行时异常RuntimeException和非运行时异常CheckedExceptions; 通用异常又可以分为JVM级异常和程序级异常
在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法; 并且对于任意一个对象,都能够调用它的任意一个方法;
Person p=new Student(); 其中编译时类型为 Person,运行时类型为 Student
Class,Field,Method,Constructor 分别代表类的信息, 成员变量, 类的方法,类的构造器
// Java 反射创建 Object 例子如下:
// 获取 Person 类的 Class 对象
Class clazz=Class.forName("reflection.Person");
//使用.newInstane 方法创建对象
Person p=(Person) clazz.newInstance();
//获取构造方法并创建对象
Constructor c=clazz.getDeclaredConstructor(String.class,String.class,int.class);
//创建对象并设置属性
Person p1=(Person) c.newInstance("李四","男",20);
自定义Annotation 例子, 继承 AbstractProcessor
静态内部类可以用外部类的所有static变量和方法, 包括 private的
non-static的,因此只能定义non-static的方法和变量在这个内部类中
在一个method 里面的 class
调用的时候直接 new 一个对象并写好内容后调用
<?extends T> 代表 T类型的子类; <?super T> 代表 T类型的父类
一个 class 如果实现了 Serializiable, 那这个class就可以被序列化
ObjectOutputStream 和 ObjectInputStream 可以实现序列化和反序列化
writeObject 和 readObject 可以实现自定义序列化
序列化ID 即UID 决定了 JVM是否允许反序列化
序列化不保存 static variables
如果 子类实现了serializable, 父类没有实现 serializable, 那么父类不能被序列化
Transient 可以阻止变量被序列化到文件中
Apple apple1 = apple2
复制Object,不复制引用的Object
深复制
复制 Object 和 引用的Object
将 Object 序列化之后写进Stream中, 再从Stream中读出来, 然后转换成完整的对象
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。