咨询电话:18136067349   0512-67159035

课程新闻

当前位置:主页 > 课程中心 > 课程新闻 >

苏州JAVA培训_Java基础知识点总结(第三篇)

来源:未知 作者:admin 日期:2020-06-08    浏览次数:


苏州JAVA培训_Java基础知识点总结(第三篇)

苏州星海国际广场2002

吕老师18136067349(微信同号)

Class类和Object类

1. Java反射的基础是Class类,该类封装所有其他类的类型信息,并且在每个类加载后在堆区生成每个类的一个Class<类名>实例,用于该类的实例化。

2. Java中可以通过多种方式获取Class类型,比如A.class,new A().getClass()方法以及Class.forName("com.?.?.A")方法。

3. Object是所有类的父类,有着自己的一些私有方法,以及被所有类继承的9大方法。

知乎上有人讨论Object和Class类型谁先加载谁后加载,因为每个类都要继承Object,但是又得先被加载到堆区,事实上,这个问题在JVM初始化时就解决了,没必要多想。

javac和java

1. javac 是编译一个java文件的基本命令,通过不同参数可以完成各种配置,比如导入其他类,指定编译路径等。

2. java是执行一个java文件的基本命令,通过参数配置可以以不同方式执行一个java程序或者是一个jar包。

3. javap是一个class文件的反编译程序,可以获取class文件的反编译结果,甚至是jvm执行程序的每一步代码实现。

反射

1. Java反射包reflection提供对Class,Method,field,constructor1 等信息的封装类型。

2. 通过这些api可以轻易获得一个类的各种信息并且可以进行实例化,方法调用等。

类中的private参数可以通过setaccessible方法强制获取。

3. 反射的作用可谓是博大精深,JDK动态代理生成代理类的字节码后,首先把这个类通过defineclass定义成一个类,然后用class.for(name)会把该类加载到jvm,之后我们就可以通过,A.class.GetMethod()获取其方法,然后通过invoke调用其方法,在调用这个方法时,实际上会通过被代理类的引用再去调用原方法。

枚举类

1. 枚举类继承Enum并且每个枚举类的实例都是唯一的。

2. 枚举类可以用于封装一组常量,取值从这组常量中取,比如一周的七天,一年的十二个月。

3. 枚举类的底层实现其实是语法糖,每个实例可以被转化成内部类。并且使用静态代码块进行初始化,同时保证内部成员变量不可变。

序列化

1. 序列化的类要实现serializable接口

transient修饰符可以保证某个成员变量不被序列化

readObject和writeOject来实现实例的写入和读取。

2. 事实上,一些拥有数组变量的类都会把数组设为transient修饰,这样的话不会对整个数组进行序列化,而是利用专门的方法将有数据的数组范围进行序列化,以便节省空间。

动态代理

1. jdk自带的动态代理可以代理一个已经实现接口的类。

2. cglib代理可以代理一个普通的类。

3. 动态代理的基本实现原理都是通过字节码框架动态生成字节码,并且在用defineclass加载类后,获取代理类的实例。

一般需要实现一个代理处理器,用来处理被代理类的前置操作和后置操作。在JDK动态代理中,这个类叫做invocationHandler。

4. JDK动态代理首先获取被代理类的方法,并且只获取在接口中声明的方法,生成代理类的字节码后,首先把这个类通过defineclass定义成一个类,然后把该类加载到jvm,之后我们就可以通过,A.class.GetMethod()获取其方法,然后通过invoke调用其方法,在调用这个方法时,实际上会通过被代理类的引用再去调用原方法。

5. 而对于cglib动态代理,一般会把被代理类设为代理类的父类,然后获取被代理类中所有非final的方法,通过asm字节码框架生成代理类的字节码,这个代理类很神奇,他会保留原来的方法以及代理后的方法,通过方法数组的形式保存。

cglib的动态代理需要实现一个enhancer和一个interceptor,在interceptor中配置我们需要的代理内容。如果没有配置interceptor,那么代理类会调用被代理类自己的方法,如果配置了interceptor,则会使用代理类修饰过的方法。

苏州星海国际广场2002

吕老师18136067349(微信同号)

苏州JAVA培训_Java基础知识点总结(第三篇)

苏州JAVA培训_Java基础知识点总结(第三篇)

相关内容