【今日推荐】十八岁出门远行

柏油马路起伏不止,马路像是贴在海浪上。我走在这条山区公路上,我像一条船。这年我十八岁,我下巴上那几根黄色的胡须迎风飘飘,那是第一批来这里定居的胡须,所以我格外珍重它们。我在这条路上走了整整一天,已经看了很多山和很多云。所有的山所有的云,都让...

JVM

JVM运行时数据区

共2453人围观 0个不明物体

本篇主要介绍一下,JVM运行时数据区的内容。概述首先大概介绍一下下图所示的内容。JVM运行时数据区主要分为了两大部分的内容:线程共有的方法区(Method Area)和堆(Heap)、线程私有的虚拟机...

JVM

ClassLoader类加载器

共2382人围观 0个不明物体

ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的。ClassLoader通过各种方式,将CLass信息的二进制流读入系统,然后交给JVM进行连接、初始...

JVM

Class加载过程

共2105人围观 0个不明物体

Class文件的加载流程如下图所示,其中加载、验证、准备、初始化、和卸载的顺序是固定的,解析有可能会在初始化之后进行。类装载的条件Class只有被使用到的时候才会被装载,一个类或接口在第一次主动使用时...

JVM

Class字节码指令解释执行

共2436人围观 0个不明物体

JVM指令主要包含了一下几种类型:加载和存储指令、运算指令、类型转换指令、对象创建与访问指令、操作数栈管理指令、控制转移指令、方法调用和返回指令、异常处理指令、同步指令等。基于栈的解释器执行过程下面看...

JVM

Class文件结构

共2317人围观 0个不明物体

Class文件是由Java语言或者其他语言编译而得到的,然后再交给JVM去加载和执行。对于Class文件,我们可以通过文本编辑器查看它的16进制编码,然后分析它的组成构造。下面我们看一下Class文件...

Java并发编程

StampedLock的简单用法

共3362人围观 0个不明物体

StampedLock是JDK1.8新引入的锁机制,可以简单的理解为读写锁的改进版本。我们知道读写锁可以让读和读之间完全并发,但是读和写之间是有阻塞的。StampedLock使用了一种乐观锁的读策略,...

Java并发编程

CompletableFuture用法

共4617人围观 0个不明物体

CompletableFuture是JDK1.8新增的工具类。它继承了Future和CompletionStage接口,里面提供了大量的链式调用的API。下面简单的介绍一下其用法:异步执行任务Comp...

Java并发编程

Future模式

共3250人围观 0个不明物体

Future模式是一种让调用线程可以异步处理任务的设计模式,它可以让调用线程利用异步处理的时间去执行其他任务,从而使硬件资源达到一个更好的利用率。参考以下时序图:下面介绍一下各个成员的作用:MainT...

Java并发编程

CPU Cache的优化:解决伪共享问题

共3551人围观 0个不明物体

伪共享问题(false sharing)对于解释伪共享问题,就需要了解一下缓存行的相关概念。缓存行是主存复制到高速缓存的最小单位,一般情况下缓存行的大小为32~128字节(通常为64字节)。在多线程程...