Java11 新特性概览
Java 11 于 2018 年 9 月 25 日正式发布,这是很重要的一个版本!Java 11 和 2017 年 9 月份发布的 Java 9 以及 2018 年 3 月份发布的 Java 10 相比,其最大的区别就是:在长期支持(Long-Term-Support)方面,Oracle 表示会对 Java 11 提供大力支持,这一支持将会持续至 2026 年 9 月。这是据 Java 8 ...
Java 11 于 2018 年 9 月 25 日正式发布,这是很重要的一个版本!Java 11 和 2017 年 9 月份发布的 Java 9 以及 2018 年 3 月份发布的 Java 10 相比,其最大的区别就是:在长期支持(Long-Term-Support)方面,Oracle 表示会对 Java 11 提供大力支持,这一支持将会持续至 2026 年 9 月。这是据 Java 8 ...
Java 10 发布于 2018 年 3 月 20 日,最知名的特性应该是 var 关键字(局部变量类型推断)的引入了,其他还有垃圾收集器改善、GC 改进、性能提升、线程管控等一批新特性。 概览(精选了一部分) : JEP 286:局部变量类型推断 JEP 304:垃圾回收器接口 JEP 307:G1 并行 Full GC JEP 310:应用程序类数据共享(扩展 CD...
Queue queue容器: 1.ConcurrentLinkedQueue:基础链表同步队列 适用于高并发场景下的队列、无锁,实现高并发状态下的高性能 高性能无阻塞无界队列 先进先出原则。 add()和offer()都是加入元素的方法(在ConcurrentLinkedQueue中,这两个方法没有任何区别) poll()和peek():都是取头部元素节点。区别在于前者会删...
Java SSL实现使用详解 1. Java密码体系简介 Oracle关于Java密码体系结构( JCA, Java Cryptography Architecture)说明的文档如下。 JRE版本 URL 1.5 http://docs.oracle.com/javase/1.5.0/d...
艿艿:虽然 Lock 也翻译成锁,但是和上面的 「Java 锁」 分开,它更多强调的是 synchronized 和 volatile 关键字带来的重量级和轻量级锁。而 Lock 是 Java 锁接口,提供了更多灵活的功能。 Lock Java AQS java.util.concurrent.locks.AbstractQueuedSynchronizer 抽象类,简称 AQS ...
Hibernate 两种配置方式 hibernate有两种配置方式,分别是*.hbm.xml 配置方式 和注解方式。 虽然方式不一样,但是都是用于解决如下问题:1. 当前类是否实体类2. 对应的表名称3. 主键对应哪个属性, 自增长策略是什么,对应字段名称是什么4. 非主键属性对应字段名称是什么 接下来,我会做一套仿hibernate的注解,并且在一个实体类Hero上运用这些注解,并通过...
HashMap的扩容问题分析 jdk7 - HashMap的扩容产生死锁问题分析 基础数据模型:数组 + 链表 扩容阈值 threshold = 16, 影响因子 f = 0.75 -> 扩容临界值:16*0.75 死锁的原因,hashmap在多线程场景下,扩容期间存在节点位置互换指针引用问题 有可能导致 put方法扩容 jdk8 - HashMap的扩容无死锁的过程优化
Table - 双键Map BiMap - 双向Map Multimap - 多值Map RangeMap - 范围Map ClassToInstanceMap - 实例Map 总结 Guava是google公司开发的一款Java类库扩展工具包,内含了丰富的API,涵盖了集合、缓存、并发、I/O等多个方面。使用这些API一方面可以简化我们代码,使代码更为优雅,...
1. 项目相关信息 官方首页:http://code.google.com/p/guava-libraries 官方下载:http://code.google.com/p/guava-libraries/downloads/list 官方文档: http://docs.guava-libraries.googlecode.com/git/javadoc ...
future模式 多线程的设计模式 future模式优点类似于商品订单。 比如:当订单处理完成后,在家等待送货上门即可,或者说我们Ajax请求的时候,页面是异步的进行后台处理,用户无须一直等待请求的结果,可以继续浏览或者操作其他内容。 示例demo: public class FutureClient { /** * 在发送请求时,先返回一个futureData给生产着, * ...