Day13-注解
内置注解
-
@Override
重写的注解
-
@Deprecated
标记已经废弃的方法的注解(意思是这个方法已经不太适用,建议更换更好的方法)
-
@SuppressWarning("all")
镇压全部警告(需要参数)
元注解
元注解的作用就是给注解其他的注解
自定义注解
使用@interface自定义注解,自动继承java.lang.annotation.Annotation接口
反射

public class Test {
public static void main(String[] args) throws Exception{
//通过反射获取Student类的class对象
Class c1 = Class.forName("zhujie.fanshe.Student");
System.out.println(c1);
}
}
class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package zhujie.fanshe;
public class Test {
public static void main(String[] args) throws Exception{
//通过对象获得
Student s1 = new Student();
System.out.println(s1);//zhujie.fanshe.Student@1540e19d
//通过反射获取Student类的class对象
Class c1 = Class.forName("zhujie.fanshe.Student");
System.out.println(c1);
//通过.class获得Student类的class对象
Class c2 = Student.class; //class zhujie.fanshe.Student
//每个内置类型的包装类都有一个type的属性
Class<Integer> t1 = Integer.TYPE;
System.out.println(t1); //int
//获得父类类型
Class s2 = c1.getSuperclass();
System.out.println(s2);//class zhujie.fanshe.Person
}
}
class Person{
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Student extends Person{
private String name;
private int age;
public Student() {
this.name = "学生";
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
类的初始化

类加载器的作用

public class Loader {
public static void main(String[] args) throws ClassNotFoundException{
//获取系统类的加载器
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
System.out.println(systemClassLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2
//获取系统类加载器的父类--->扩展类加载器
ClassLoader parent = systemClassLoader.getParent();
System.out.println(parent);//sun.misc.Launcher$ExtClassLoader@1540e19d
//获取扩展类加载器的父类--->根加载器(C/C++)
ClassLoader parent1 = parent.getParent();
System.out.println(parent1);//null
//测试当前类是那个加载器加载的
ClassLoader aClass = Class.forName("day13.Loader").getClassLoader();
System.out.println(aClass);//sun.misc.Launcher$AppClassLoader@18b4aac2
}
}
浙公网安备 33010602011771号