java
枍汐
有所为,有所不为
展开
-
cglib动态代理
jdk动态代理要求委托类需要实现接口,对于一些不实现任何接口的类可以使用cglib动态代理。 使用cglib动态代理需要导入需要的jar包,Spring Core包中已经集成了cglib所需要的jar包。 1、在项目目录下新建一个文件夹,取名lib 2、向lib中添加jar包 3、右击jar包->Build Path->Add to Build Path //Human类,不实现任何...原创 2020-02-02 15:41:50 · 205 阅读 · 0 评论 -
jdk动态代理
动态代理中代理类不需要实现委托类的接口,相比于静态代理,动态代理更加灵活,可以通过一个代理类为多个委托类完成代理。 //IHuamn接口 interface IHuman{ public void eat(); public void sleep(); } //Human类 class Human implements IHuman{ @Override public void eat...原创 2020-02-02 14:20:38 · 68 阅读 · 0 评论 -
静态代理
作为一个大学生,很多课结束时,老师会要求我写一篇论文或者文章。我不想写这个论文,就让室友帮我写。结果就是:我并没有写一个字,但是我的论文完成了。在这里,我的室友就相当于我的代理,他代表我写了论文。 所谓代理,就是自己的事情让别人做,当然,别人可以在完成这件事的基础上多做一些别的,这就叫增强。 下面是静态代理的一个简单实现: /* * IHuman接口,定义“吃”和“睡”方法 */ interf...原创 2020-02-01 16:42:07 · 104 阅读 · 0 评论 -
对象的创建、布局、定位
一、对象的创建 1、检查类 检查对应的类是否已被加载、解析、初始化,如果没有,那么先加载类 2、分配内存,即从堆上面划分一块内存 根据堆内存是否规整,有2种分配方法,堆内存是否规整取决于GC ①、指针碰撞,所有用过的内存在一边,空闲内存在另一边,中间通过指针作为分界点。分配内存时,将指针向空闲区域移动对象大小的距离即可 ②、空闲列表,用过的内存与空闲的内存交错,通过列表记录可用内存块。分配内存时,在列表中找到足够大的内存块分配给对象,并更新列表 在分配内存时,另一个需要考虑的是并发冲突,解决方法 ①、进行同原创 2020-07-11 18:38:31 · 207 阅读 · 0 评论 -
java运行时数据区域
原创 2020-07-11 10:48:36 · 113 阅读 · 0 评论