JVM故障诊断和处理工具

JVM故障诊断和处理工具 可能我们最常用的就是`java`、`javac`这两个命令,本文主要来一起学习对JVM监控诊断工具虚拟机进程状况工具(jps)该工具的功能比较单一,与linux中的ps功能类似,用来列出正在运行的虚拟机进程,并显示出运行的主类和进程号

从零开始学习Java8 Stream,看这篇就够了

从零开始学习Java8 Stream,如果是数据库的话,我们只需要简单的在where后面加一个条件大于5就可以得到我们想要的结果,其次,如果我们遇到有大集合需要处理,为了提高性能,我们可能需要使用到多线程来处理,但是写并行程序的复杂度有提高了不少。

Java8如何高效的使用并行流

Java8如何高效的使用并行流 Fork/Join框架采用的是思想就是分而治之,把大的任务拆分成小的任务,然后放入到独立的线程中去计算,同时为了最大限度的利用多核CPU,采用了一个种`工作窃取`的算法来运行任务,也就是说当某个线程处理完自己工作队列中的任务后

面试者必看:Java8中的默认方法

面试者必看:Java8中的默认方法 在Java8之前,定义在接口中的所有方法都需要在接口实现类中提供一个实现,如果接口的提供者需要升级接口,添加新的方法,那么所有的实现类都需要把这个新增的方法实现一遍,如果说所有的实现类能够自己控制的话,那么还能接受,但是现实情况是实现类可能不受自己控制。比如说Java中的集合框架中的List接口添加一个方法,那么Apache Commons这种框架就会很难受,必须修改所有实现了List的实现类

CompletableFuture让你的代码免受阻塞之苦

CompletableFuture让你的代码免受阻塞之苦 CompletableFuture 并发 异步 多线程现在大部分的CPU都是多核,我们都知道想要提升我们应用程序的运行效率,就必须得充分利用多核CPU的计算能力;Java早已经为我们提供了多线程的API,但是实现方式略微麻烦,今天我们就来看看Java8在这方面提供的改善。假设场景 现在你需要为在线教育平台提供一个查询用户详情的API,该接口需要返回用户的基本信息,标签信息,这两个信息存放在不同位置,需要远程调用来获取这两个信息;为了模拟远程调用,我们需要在代码里面延迟 1s;

Java中NullPointerException的完美解决方案

Java8 NullPointerException Optional null在Java中带来的麻烦
我相信所有的Java程序猿一定都遇到过`NullPointerException`,空指针在Java程序中是最常见的,也是最烦人的;它让我们很多程序猿产生了根深蒂固的感觉,所有可能产生空指针的地方都的加上`if-else`检查,但是这带给我们很多麻烦

Java8为什么需要引入新的日期和时间库

Java8新特性 新的日期和时间库 Java8为什么需要引入新的日期和时间库 Date日期的解析、格式化通过JDK自带的api实现较为麻烦,Java8中提供了哪些日期和时间类在java.time包中提供了很多新的类,通常主要使用到的是`LocalDate`, `LocalTime`, `LocalDateTime`, `ZoneId`, `ZoneDateTime`; 关系图如下