Java 并发基础之内存模型 发表于 2020-06-28 | 0 | 阅读次数 286 很久没更新文章了,对隔三差五过来刷更新的读者说声抱歉。关于Java并发也算是写了好几篇文章了,本文将介绍一些比较基础的内容,注意,阅读本文需要一定的并发基础。本文的主要目的是让大家对于并发程序中的重排序、内存可见性以及原子性有一定的了解,同时要能准确理解synchronized、volatile、f 阅读全文 »
解读 java 并发队列 BlockingQueue 发表于 2020-06-27 | 0 | 阅读次数 210 最近得空,想写篇文章好好说说java线程池问题,我相信很多人都一知半解的,包括我自己在仔仔细细看源码之前,也有许多的不解,甚至有些地方我一直都没有理解到位。说到线程池实现,那么就不得不涉及到各种BlockingQueue的实现,那么我想就BlockingQueue的问题和大家分享分享我了解的一些知识 阅读全文 »
CompletableFuture 使用介绍 发表于 2020-06-24 | 0 | 阅读次数 192 本文安利一个Java8的工具CompletableFuture,这是Java8带来的一个非常好用的用于异步编程的类。还没使用过的小伙伴,赶紧用起来吧。本文不介绍它的实现源码,仅介绍它的接口使用,本文也不做它和RxJava等其他异步编程框架的对比。实例化首先,不管我们要做什么,我们第一步是需要构造出C 阅读全文 »
阿里 Sentinel 源码解析 发表于 2020-06-24 | 0 | 阅读次数 230 本文介绍阿里开源的Sentinel源码,GitHub:alibaba/Sentinel,基于当前(2019-12)最新的release版本1.7.0。总体来说,Sentinel的源码比较简单,复杂的部分在于它的模型对于初学者来说不好理解。虽然本文不是很长,最后两节还和主流程无关,但是,本文对于源码分 阅读全文 »
RateLimiter 源码分析(Guava 和 Sentinel 实现) 发表于 2020-06-24 | 0 | 阅读次数 205 本文主要介绍关于流控的两部分内容。第一部分介绍Guava中RateLimiter的源码,包括它的两种模式,目前网上大部分文章只分析简单的SmoothBursty模式,而没有分析带有预热的SmoothWarmingUp。第二部分介绍Sentinel中流控的实现,本文不要求读者了解Sentinel,这部 阅读全文 »
Java 8 Lambda 表达式 发表于 2020-06-22 | 0 | 阅读次数 209 什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?比如,我想把右边那块代码,赋给一个叫做aBlockOfCode的Java变量:在Java8之前,这个是做不到的。但是Jav 阅读全文 »
Spring Boot 集成 Liquibase 发表于 2020-06-21 | 0 | 阅读次数 238 Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在changelog文件中,便于版本控制,它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。Liquibase特性Liquibase具备如下特 阅读全文 »
Spring @Transactional 注解的使用 发表于 2020-06-21 | 0 | 阅读次数 185 引言Spring的事务管理分为编程式和声明式两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于AOP,将具体业务逻辑与事务处理解耦。使用Spring的声明式风格事务有两种使用方式,一是通过XML配置文件声明事务规则,二是使用@Transactional注解的方式。目前流行的方式是减少XM 阅读全文 »
类的加载过程 发表于 2020-06-21 | 0 | 阅读次数 363 我们都知道Java源文件通过编译器javac命令能够编译生成相应的class文件,即二进制字节码文件。Java虚拟机将描述类或接口的class文件(准确地说,应该是类的二进制字节流)加载到内存,对数据进行校验、转换解析和初始化,最终形成能够被虚拟机直接使用的Java类型,真正能够执行字节码的操作才刚 阅读全文 »
深入拆解Java虚拟机学习笔记 发表于 2020-06-21 | 0 | 阅读次数 419 1.Java代码是怎么运行的?Java虚拟机具体是怎样运行Java字节码的?从虚拟机以及底层硬件两个角度,给你讲一讲从虚拟机视角来看,执行Java代码首先需要将它编译而成的class文件加载到Java虚拟机中。加载后的Java类会被存放于方法区(MethodArea)中。实际运行时,虚拟机会执行方法 阅读全文 »