Spring Framework对Java API的实践
本篇我们来继续讨论Spring Framework对JDK API的一个实践情况。这里会分布从Java1.0到Java 8这个版本的API的实践。JDK标准API实现首先我们看
万字长文详解Java lambda表达式
接着再来说说Lambda 的历史,虽然它在 JDK8 发布之后才正式出现,但是在编程语言界,它是一个具有悠久历史的东西,最早在 1958 年在Lisp 语言中首先采用,而且虽然Java脱胎于C++,但是C++在2011年已经发布了Lambda 了,但是 JDK8 的 LTS 在2014年才发布,所以 Java 被人叫做老土不是没有原因的,现代编程语言则是全部一出生就自带 Lambda 支持,所以Lambda 其实是越来越火的一个节奏~
「是时候升级Java11了」 JDK11优势和JDK选择
Java11的性能提升仅通过切换到 Java 11 就有 16% 的改进,这种改进可能是因为 Java 10 中引入了 JEP 307: Parallel Full GC for G1。
Java 17内存屏障:为什么需要,怎么用
年轻时,看《Thinking In Java》这本书时,总是会被里面简短的代码所吸引,代码虽然短,但是都能明确的引出一个问题,从而触发思考。思考后,问题就好理解了。今天我们也一样,用一段简单的代码,引出问题,目的也是希望可以帮助你理解Java内存屏障这个概念。
别再只会写 T:Kotlin 泛型的实战用法
上一篇介绍了 Kotlin 泛型的基础。这一篇,我们先看类型参数之间的关系与约束,再把它们用于数据容器、结果包装、对象构建和数据转换,最后讨论运行时类型检查与反射的边界。我想借这篇文章,把自己了解的一些泛型用法尽量整理出来,因此例子会多一些,读起来可能稍显啰嗦。
Java 8 LambdaMetafactory深度剖析 把反射按在地上摩擦的底层黑科技
前阵子在做一个低代码平台的动态规则引擎,需要根据用户配置的类名和方法名在运行时调用任意方法。第一版用了 Method.invoke(),上线后压测发现这块成了瓶颈——单次调用 90 纳秒,日积月累下来不是个小数目。
详解Native Memory Tracking 追踪区域分析
当然以前 PermGen 还有 Interned strings 或者说 StringTable,但是 MetaSpace 并不包含 StringTable,在 JDK8 之后 StringTable 就被移入 Heap,并且在 NMT 中 StringTable 所使用的内存被单独统计到了 Symbol 中。
VarHandle和引用的关系是什么,它如何让普通属性具备原子性?
本文重点本文将学习varHandle,一般我们在写代码的时候,不会经常使用它,但是在很多源码中是可以见到它的,本文对其进行详细的介绍一下。