反射
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
单例模式反射、序列化漏洞及解决方案!
使用反射技术来获取不同的实例,以下是一个简单的饿汉式的单例模式的代码实现: 当我们需要获取Singleton对象的时候,直接调用静态方法getInstance就可以了: 但是学过反射的人都知道,通过反射技术也能获取到一个类的实例对象,即使它的构造函数时私有化的,我们也可以通过暴力访问来调用其构造函数,所以以上测试类的运行结果为: 可以看出通过调用getInstance方法获取到的...转载 2020-04-03 18:09:52 · 368 阅读 · 0 评论 -
单例模式反射、序列化漏洞及解决方案!
使用反射技术来获取不同的实例,以下是一个简单的饿汉式的单例模式的代码实现: 当我们需要获取Singleton对象的时候,直接调用静态方法getInstance就可以了: 但是学过反射的人都知道,通过反射技术也能获取到一个类的实例对象,即使它的构造函数时私有化的,我们也可以通过暴力访问来调用其构造函数,所以以上测试类的运行结果为: 可以看出通过调用getInstance方法获...转载 2020-04-02 22:03:06 · 330 阅读 · 1 评论 -
JAVA 注解的基本原理
以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。 于是就有人提出来一种标记式高耦合的配置方式,『注解』。方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注解。 关于『注解』和『XML』两种不同的配置模式,争论了好多年了,各有各的优劣,注解可以提供更大的便...转载 2018-10-21 15:17:15 · 169 阅读 · 0 评论 -
【手写系列】透彻理解MyBatis设计思想之手写实现
前言 MyBatis,曾经给我的感觉是一个很神奇的东西,我们只需要按照规范写好XXXMapper.xml以及XXXMapper.java接口。要知道我们并没有提供XXXMapper.java的实现类,MyBatis到底是怎么做到这一点的呢?有人会说是动态代理,现在我就来通过手写一个迷你版的MyBatis来彻底理解它的设计思想! 如果你不了解JDK动态代理,请参考:《纯手写实现JDK动态代理》 ...转载 2018-11-21 08:46:14 · 713 阅读 · 0 评论 -
假笨说-从一起GC血案谈到反射原理
概述 公司之前有个大内存系统(70G以上)一直使用CMS GC,不过因为该系统对时间很敏感,偶尔会因为gclocker导致remark特别长(虽然加了-XX:+CMSScavReengeBeforeRemark参数,但是gclocker会导致remark前的YGC被delay),无法忍受这么长的暂停就只好迁移到了G1,经过一系列的调优之后算比较稳定了,这套参数便推到了全部机器上 可是就在上周突...转载 2018-11-28 09:48:52 · 420 阅读 · 1 评论