Java
litesky
这个作者很懒,什么都没留下…
展开
-
玩转Java8Stream(IDEA StreamTrace调试神器)
java的stream编程给调试带来了极大的不便,idea 推出了streamtrace功能,可以详细看到每一步操作的关系、结果,非常方便进行调试。 初遇StreamTrace 这里简单将字符串转成它的字符数,并设置断点开启debug模式。 如上图所示,可以看到每一步操作的元素个数、操作的结果、元素转换前后的对应关,非常清晰明了;还可以查看具体的对象内容。 使用StreamTrace Strea...原创 2020-03-27 17:37:10 · 2451 阅读 · 2 评论 -
单例模式安全之序列化攻击
源码 什么是序列化攻击呢? 简单说,一个单例对象经过序列化再反序列化后,内存中会存在两个对象,这样单例模式就被破坏。 序列化攻击复现 序列化攻击复过程 获取到单例对象 对象序列化持久到磁盘 反序列化成对象 这里采用JDK的自带的序列化方式 单例实现Serializable接口 package com.fine.serialize; import java.io.Serializable;...原创 2019-05-05 16:43:35 · 425 阅读 · 0 评论 -
玩转Java8Stream(三、Collectors收集器)
文章目录API 使用数据收集聚合归约前后处理总结 简书 之前的文章中也提到了,Stream 的核心在于Collectors,即对处理后的数据进行收集。Collectors 提供了非常多且强大的API,可以将最终的数据收集成List、Set、Map,甚至是更复杂的结构(这三者的嵌套组合)。 Collectors 提供了很多API,很多都是一些函数的重载,这里我个人将其分为三大类,如下: 数据收...原创 2019-05-30 00:33:47 · 1436 阅读 · 0 评论 -
单例模式安全之反射攻击
源码 单例模式这里就不谈了,什么是单例模式可参考七种Java单例模式详解,这里是关于单例模式安全方面的,当然了这里说的安全不是线程安全。 什么是反射攻击呢 在Java中,由于反射的功能实在是太强了,通过动态访问类并设置AccessAllow 使得可以访问对象的私有属性方法等。 在单例模式中,我们使用private 修饰构造方法对外隐藏,防止外部new 对象,但是在反射的存在下,private的存...原创 2019-07-25 14:50:27 · 403 阅读 · 0 评论