JDK动态代理和CGLIB代理的区别
当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁–代理对象。
按照代理对象的创建时期不同,可以分为两种:
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁–代理对象。
按照代理对象的创建时期不同,可以分为两种:
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
新建的项目结构应该是这样
1 | bin:项目的启动文件,也可以放其他脚本。 |
当java代码中执行native的代码时候,首先是通过一定的方法来找到这些native方法。而注册native函数的具体方法的不同,会导致系统在运行时采用不同的方式来寻找这些native方法。JNI有如下两种注册native方法的途径:静态和动态。其中:
静态:先由Java得到本地方法的声明,然后再通过JNI实现该声明方法。
说是Java web,Spring已经成为了事实标准,Spring原理的深入学习,无论是在工作中,还是在面试中,都尤为重要。
Spring的两个核心概念是IOC(控制反转)和AOP(面向切面编程)。想了解Spring的工作原理,毫无疑问,首先要从这两个概念的Spring实现入手。但是Spring源码浩如烟海,里面掺杂了太多的实现细节,入门可谓极其困难。当我正苦于难以入门时,好友介绍了tiny-spring这个开源项目,这个项目用了不到千行的代码,就将Spring的IOC、AOP的核心流程实现完毕,真是居家旅行、吹逼面试之必备呀!