摘要: java compile handle lambda steps: 1.把lambda body转为的一个实现方法,用methodhandle 表示这个方法 2.知道将要把lambda转成哪种function interface,comsumer 还是predict 3.获取其它元数据,例如序列化信 阅读全文
posted @ 2021-10-15 00:40 lhlcc 阅读(58) 评论(0) 推荐(0)
摘要: 1.interface一直有个缺陷是,一旦设计好了以后,很多类也实现了它。再想加一个方法是很难的,可能每个子类里面都得实现新的抽象方法。default method,可以增加一个方法,并且给出一个默认的实现。 2.增加default method能够扩展interface的能力。例如Comsumer 阅读全文
posted @ 2021-10-10 22:18 lhlcc 阅读(71) 评论(0) 推荐(0)
摘要: 1.Lambda 和 之前的java匿名内部类使用比较 2.jdk8以后编译器类型推断能力更新,对于lambd中变量,能够根据上下文推断类型,丛而省略类型声明,如下图: 3.lambda表达式被用于functional interface中,例如map,filter等函数,functional in 阅读全文
posted @ 2021-10-10 19:55 lhlcc 阅读(57) 评论(0) 推荐(0)
摘要: 对于对共享变量写非常频繁,但是读很少的操作,不需要加锁。LongAdder会给每个线程一个copy,每个线程各自加法,需要读时,把各个线程手头的数据加总就可以了 阅读全文
posted @ 2021-10-10 18:38 lhlcc 阅读(36) 评论(0) 推荐(0)
摘要: 1.在其他编程语言,enum只是一些常量,但是在java,enum可以做一个class所有能做的事 2.用enum可以很简单安全的实现单列模式,传统的单列模式在序列化反序列化是一不小心就会产生多一个对象,破坏单列。用enum不会 3.上图直接Operation.ADD.apply(1,2)返回结果3 阅读全文
posted @ 2021-08-11 00:39 lhlcc 阅读(135) 评论(0) 推荐(0)
摘要: method reference是jvm层级的特性,MethodHandle允许把对方法的引用存在常量池,实现快速调用。当lambda表达式很简单,而且不装载额外的变量时,简化为method reference。避免了一律把lambda转为某个类instance带来的开销大的问题。 阅读全文
posted @ 2021-08-11 00:00 lhlcc 阅读(49) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-08-09 23:30 lhlcc 阅读(14) 评论(1) 推荐(0)