随笔分类 -  Java

Java日常
摘要:以下分析基于jdk11.0.2 先画一张图 1. 创建HashMap时发生了什么? HashMap(),HashMap(int initialCapacity),HashMap(int initialCapacity, float loadFactor)。这三个方法都直接或间接地会初始化loadFa 阅读全文
posted @ 2019-01-18 01:11 傅晓芸 阅读(419) 评论(0) 推荐(0)
摘要:CopyOnWriteArrayList是ArrayList线程安全的变体。使用写时复制策略进行修改操作。 与之前版本较明显的区别是,jdk11中用来保护所有设值方法(mutator)的ReentrantLock改为使用关键字synchronized。 文档中也明确表示相比较于ReentrantLo 阅读全文
posted @ 2018-11-11 19:12 傅晓芸 阅读(880) 评论(0) 推荐(0)
摘要:java版本11.0.1,感觉写得太水了,等心情好的时候再重新编辑一下。 LongAdder中的核心逻辑主要由java.util.concurrent.atomic.Striped64维护,作为Striped64的继承类LongAdder定义了(LongAccumulator、DoubleAdder 阅读全文
posted @ 2018-10-20 17:56 傅晓芸 阅读(464) 评论(0) 推荐(0)
摘要:关于jvm虚拟机的文章网上都讲烂了。尤其是jvm运行时数据区的内容。 抱着眼见为实的想法,自己翻了翻JVM规范,花了点时间稍微梳理了一下。 自己动手画了一下JVM运行时数据区的图。 有别于JVM规范,hotspot中的方法区为metaspace,位于堆外内存(直接内存) 以下是阅读Java虚拟机规范 阅读全文
posted @ 2018-08-26 12:45 傅晓芸 阅读(313) 评论(0) 推荐(0)
摘要:win10下想查看JIT编译的汇编源码 结果提示: Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled 提示需要hsdis 这里给出网上捞到了资源,下载对应版本解压得到dll,保存到jdk目录 阅读全文
posted @ 2018-07-13 21:00 傅晓芸 阅读(5116) 评论(0) 推荐(1)
摘要:这个坑也是踩过好几次了,记录一笔。 当试图使用Collectors.toMap将一个stream收集为Map的时候,若构造map的valueMapper返回null时,则会报NullPointerException。举个栗子: 理由么,因为在Collectors.toMap中调用了map::merg 阅读全文
posted @ 2018-04-18 11:32 傅晓芸 阅读(1950) 评论(0) 推荐(0)
摘要:最近正好使用到了Guava的TypeToken来获取泛型的类型信息 比如,泛型父类需要获取其子类定义的泛型类型时: 而使用反射,就稍微复杂了一点。 而当继承类申明的泛型V也是个泛型类,如 public class SubClazz extends ReflectClazz<Map<Integer, 阅读全文
posted @ 2018-01-15 00:08 傅晓芸 阅读(5795) 评论(1) 推荐(0)
摘要:参数申明: 1 final Date date = new Date(); 2 final Timestamp timestamp = new Timestamp(date.getTime()); 3 final Calendar calendar = Calendar.getInstance(); 阅读全文
posted @ 2017-06-16 14:27 傅晓芸 阅读(5035) 评论(3) 推荐(2)
摘要:勤加载(饿汉模式) 勤加载(static块) 懒加载(double-checked locking using volatile) 懒加载(内部静态类) 懒加载(枚举) 阅读全文
posted @ 2017-05-21 21:10 傅晓芸 阅读(434) 评论(0) 推荐(0)
摘要:先附上十分讨喜的封面。这应该是爱丽丝梦游仙境里的那只兔子吧? 勘误表基于原版勘误表制作 链接 截止日期 2017-02-09 对应《写给大忙人看的Java核心技术》2016年1月第1次印刷 public void add(Object e) { add((String) e); } public b 阅读全文
posted @ 2017-02-09 14:46 傅晓芸 阅读(912) 评论(0) 推荐(0)
摘要:驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写。 每个单词的第一个字母都大写,来得到大驼峰式命名。 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名。 为避免歧义,文中小驼峰法统称为驼峰法,大驼峰/帕斯卡法统称为大驼峰法则。 1. Package 项目包命名规 阅读全文
posted @ 2016-12-16 15:01 傅晓芸 阅读(26990) 评论(1) 推荐(3)
摘要:Spring中的类基本都会标注解,所以使用注解匹配切点可以满足绝大部分需求 主要使用@within()/@target @annotaton() @args()等... 匹配@Service类中的所有方法: 或 匹配标注了@RequestMapping的所有方法 匹配参数中有@RequestBody 阅读全文
posted @ 2016-12-02 18:22 傅晓芸 阅读(4660) 评论(0) 推荐(0)