摘要:前言 因为平时的开发工具是使用IntelliJ IDEA,所以热部署项目代码的时候,使用的Jrebel。因为Jrebel是收费的,所以以前用的时候都是在网上找破解方法(国人通用做法),在网上找到的办法是输入一个在线激活服务,来进行激活。由于简单方便就一直这样用的,今天早上打开IDEA后发现,Jreb 阅读全文
posted @ 2019-07-10 01:11 纪莫 阅读(5872) 评论(3) 推荐(5) 编辑
摘要:前言 这次想介绍一下Java Stream的API使用,最近在做一个新的项目,然后终于可以从老项目的祖传代码坑里跳出来了。项目用公司自己的框架搭建完成后,我就想着把JDK版本也升级一下吧(之前的项目,最高就能用JDK7),但是后来发现公司的项目部署打包平台最高只支持到JDK8。那好吧,既然就支持到J 阅读全文
posted @ 2019-06-17 00:41 纪莫 阅读(8231) 评论(4) 推荐(8) 编辑
摘要:这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍。 JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用它都可以实现热部署。收费的,破解比较麻烦。不过功能确实很强大。算是开发必备神器了。热部署快捷键是control+F9/command+F9。 .igno 阅读全文
posted @ 2018-04-11 23:39 纪莫 阅读(164943) 评论(14) 推荐(41) 编辑
摘要:前言 从JDK5到JDK6HotSpot虚拟机开发团队花费了大量的资源实现了各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁膨胀(Lock Coarsening)、轻量级锁(LightEight Locking)、偏向锁(Biased 阅读全文
posted @ 2020-07-26 08:58 纪莫 阅读(110) 评论(1) 推荐(1) 编辑
摘要:前言 我们在编写程序的时候,一般是有个顺序的,就是先实现再优化,并不是所有的牛P程序都是一次就写出来的,肯定都是不断的优化完善来持续实现的。因此我们在考虑实现高并发程序的时候,要先保证并发的正确性,然后在此基础上来实现高效。所以线程安全是高并发程序首先需要保证的。 线程安全定义 对于线程安全的定义可 阅读全文
posted @ 2020-07-15 23:48 纪莫 阅读(107) 评论(0) 推荐(0) 编辑
摘要:前言 我们都知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源调度(内存地址、文件I/O等),又可以独立调度。 线程的实现 主流的操作系统都提供了线程实现,Jav语言则是提供了在不同硬件和操作系统平台下对线程操作的统一处理,每个已 阅读全文
posted @ 2020-07-11 13:59 纪莫 阅读(147) 评论(0) 推荐(0) 编辑
摘要:前言 Java内存模型(Java Memory Model)用来屏蔽各种硬件和操作系统的内存访问差异,这使得Java能够变得非常灵活而不用考虑各系统间的兼容性等问题。定义Java内存模型并非一件容易的事情,从Java出生开始经过长时间的验证和修补,直至JDK5发布后Java内存模型才终于成熟、完善起 阅读全文
posted @ 2020-07-09 08:13 纪莫 阅读(167) 评论(0) 推荐(1) 编辑
摘要:前言 JDK9引入的Java模块化系统(Java Platform Module System ,JPMS)是 对Java技术的一次重要升级,除了像之前JAR包那样充当代码的容器之外,还包括: 依赖其他模块的列表。 导出的包列表,即其他模块可以使用的列表。 开放的包列表,即其他模块可反射访问模块的列 阅读全文
posted @ 2020-07-01 08:20 纪莫 阅读(190) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇我们介绍到一个类的生命周期大概分7个阶段:加载、验证、准备、解析、初始化、使用、卸载。并且也介绍了类的加载时机,下面我们将介绍一下虚拟机中类的加载的全过程。主要是类生命周期的,加载、验证、准备、解析和初始化这五个阶段所执行的具体动作。 加载 类加载过程的第一个阶段就是加载,在加载阶段,J 阅读全文
posted @ 2020-06-27 15:13 纪莫 阅读(118) 评论(0) 推荐(0) 编辑
摘要:前言 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。 类加载的时机 一个类型从被加载到虚拟机内存中开始,到卸载除内存为止,它的生命周期将会经历加载(Loading)、验证(Ve 阅读全文
posted @ 2020-06-24 18:11 纪莫 阅读(108) 评论(0) 推荐(1) 编辑
摘要:#前言 JDK的bin目录中有一系列的小工具,除了java.exe、javac.exe这两个编译和运行Java程序外,还有打包、部署、签名、调试、监控、运维等各种场景都会用到这些小工具。 这些工具根据软件可用性和授权的不同,可以把它们划分为三类: 商业授权工具: 主要是JMC(Java Missio 阅读全文
posted @ 2020-06-22 23:01 纪莫 阅读(172) 评论(0) 推荐(0) 编辑
摘要:前言 ZGC是一款在JDK11中新加入的具有实验性质的低延迟垃圾收集器,目前仅支持Linux/x86-64。ZGC收集器是一款基于Region内存布局的,(暂时)不设分代的,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。 ZGC布局 与 阅读全文
posted @ 2020-06-20 20:30 纪莫 阅读(194) 评论(0) 推荐(0) 编辑
摘要:前言 Shenandoah作为第一款不由Oracle(包括一起的Sun)公司的虚拟机团队所领导开发的HotSpot垃圾收集器。是只存在于OpenJDK当中的,最初由RedHat公司创建的,在2014年的时候贡献给了OpenJDK。 与G1相比的优点 从代码的历史渊源上来看,Shenandoah收集器 阅读全文
posted @ 2020-06-17 22:23 纪莫 阅读(197) 评论(0) 推荐(1) 编辑