这是 JEP 解读与尝鲜系列的第 4 篇,之前的文章如下: JEP解读与尝鲜系列 1 - Java Valhalla与Java Inline class JEP解读与尝鲜系列 2 - JEP 142 缓存行填充简化 JEP解读与尝鲜系列 3 - Project Loom 使用虚线程进行同步网络 IO 不阻塞的底层原理 在系列之前的第一篇文章 - JEP 解读与尝鲜系列 1 - Java Valhalla 与 Java Inline class 中,我介绍了 Project Valhalla 项目…
相关 JEP: JEP 353 Reimplement the Legacy Socket API JEP 373 Reimplement the Legacy DatagramSocket API 使用虚线程进行网络 IO Project Loom 主要目标是在 Java 平台上提供一种易于使用.高吞吐量的轻量级并发性和新的编程模型的 JVM 特性和API.这带来了许多有趣和令人兴奋的前景,其中之一是简化网络交互的代码的同时兼顾性能.现在的服务器能够处理打开的套接字连接的数量,远远超过它们能够…
这里先提一个题外话,如果想看 JDK 不同版本之间有何差异,增加或者删除了哪些 API,可以通过下面这个链接查看: https://javaalmanac.io/jdk/17/apidiff/11/ 路径中的两个版本就是要对比的两个版本,其界面如下: 同时,我们也可以通过 JDK 内置 jdeps 工具查找过期以及废弃API以及对应的替换 jdeps --jdk-internals -R --class-path 'libs/*' $project libs是你的所有依赖的目录,$project…
.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置…
点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 程序猿阿朗博客 已经收录,有很多知识点和系列文章. Java 16 在 2021 年 3 月 16 日正式发布,不是长久支持版本,这次更新没有带来很多语法上的改动,但是也带来了不少新的实用功能. OpenJDK Java 16 下载:https://jdk.java.net/archive/ OpenJDK Java 16 文档:https://open…
前言 就在2021/03/16,官方正式发布了Java 16.我们可以下载使用Java 16了. 特性 向量API(孵化) 在运行期,Vector 表示向量计算可以可靠地编译成支持CPU架构上的最佳矢量硬件指令,从而实现优于等效标量计算的性能.提升了Java在CPU向量计算的性能. 启用c++ 14 语言特性 允许在JDK中C++源代码中使用 C ++ 14的新特性,并给出哪些特性可能在热点代码中使用的具体指导. 从Mercurial迁移到Git 将OpenJDK社区的源代码库从Mercuria…
instanceof这个关键词,主要用来判断某个对象是不是某个类的实例. 比如,有时候我们要处理一个类似这样的数据集: Map<String, Object> data = new HashMap<>(); data.put("key1", "aaa"); data.put("key2", 111); 这个Map中的Value值因为可能是不同的对象,所以定义的是Object.这个时候,当我们get出来的时候,就需要去判断和…
还记得Java 16中的instanceof增强 吗? 通过下面这个例子再回忆一下: Map<String, Object> data = new HashMap<>(); data.put("key1", "aaa"); data.put("key2", 111); if (data.get("key1") instanceof String s) { log.info(s); } 上面这个场景里,M…
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过telnet连接模拟客户端,测试了三种客户端缓存的工作模式,这篇文章我们就来点硬核实战,看看客户端缓存在java项目中应该如何落地. 铺垫 首先介绍一下今天要使用到的工具Lettuce,它是一个可伸缩线程安全的redis客户端.多个线程可以共享同一个RedisConnection,利用nio框架Netty…
前提 之前很长一段时间关注JDK协程库的开发进度,但是前一段时间比较忙很少去查看OpenJDK官网的内容.Java协程项目Loom(因为项目还在开发阶段,OpenJDK给出的官网https://openjdk.java.net/projects/loom中只有少量Loom项目相关的信息)已经在2018年之前立项,目前已经发布过基于JDK17编译和JDK18编译等早期版本,笔者在下载Loom早期版本的时候只找到JDK18编译的版本: 下载入口在:https://jdk.java.net/loom…