三年前写的文章,最近在整理资料时发现这篇没发布过,就顺便分享出来,希望能帮到有需要的人。 一点点历史回顾 ARPAnet Reference Model 1969年11月,美...
三年前写的文章,最近在整理资料时发现这篇没发布过,就顺便分享出来,希望能帮到有需要的人。 一点点历史回顾 ARPAnet Reference Model 1969年11月,美...
第一时间阅读最新文章[https://www.jianshu.com/p/d2c22a50608f] 重要的一个接口和两个抽象类 在NIO中,有一个接口和两个抽象类是我们需要...
1. 前言 任意一个Java对象,都有一组监视器方法(定义在java.lang.Object上),主要包括wait()、wait(long timeout)、notify()...
01 初识线程池 我们知道,线程的创建和销毁都需要映射到操作系统,因此其代价是比较高昂的。出于避免频繁创建、销毁线程以及方便线程管理的需要,线程池应运而生。 1.1 线程池优...
前言 我们知道, 在java开发中, .java文件会被编译超成一个个.class文件, 最终被JVM加载和运行. 大致流程图如下 什么是类的加载 我们写的java文件保存...
1|0前言 现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服务,而且服务间也会产生相互通信调用。那么既然产生了服务调用,就...
实现熔断降级 在分布式系统中,网关作为流量的入口,因此会有大量的请求进入网关,向其他服务发起调用,其他服务不可避免的会出现调用失败(超时、异常),失败时不能让请求堆积在网关上...
前言 执行引擎是 Java 虚拟机最核心的组成部分之一。「虚拟机」是相对于「物理机」的概念,这两种机器都有代码执行的能力,区别是物理机的执行引擎是直接建立在处理器、硬件、指令...
一、synchronized方式 1、添加在静态方法上:则是对该class对象加锁,所以尽量不要在同一个类中添加多个synchronized方法,避免产生锁竞争导致的性能问题...
JMM把happens-before 要求禁止的重排序分为了下面两类。 会改变程序执行结果的重排序。 不会改变程序执行结果的重排序。JMM对这两种不同性质的重排序,采取了不同...
类加载的时机 隐式加载 new 创建类的实例,显式加载:loaderClass,forName等访问类的静态变量,或者为静态变量赋值调用类的静态方法使用反射方式创建某个类或者...
一、什么是分布式事务 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。一个大的操作由 N 多的小的操作共同完成。...
jmc:Java Mission Control 使用 JMC可以监视和管理 Java 应用程序,不会导致相关工具类的大幅度性能开销,它使用为 Java 虚拟机 (JVM) ...
代理模式是在不修改原有代码逻辑的情况下,对原有代码逻辑增强的一种方式,要了解什么是动态代理,首先要知道什么是静态代理。 一、静态代理 假设一种场景,一个汽车类(Car)有一个...
JVM的简化架构 运行时数据区 包括:程序计数器(PC寄存器)、Java虚拟机栈、Java堆、方法区、运行时常量池、本地方法栈等等。 PC 寄存器,也叫程序计数器 1、JVM...
一、并发编程特性 1、原子性:一个操作要么成功要么失败,中间不会中断 2、可见性:多个线程同时访问某个变量,当变量发生修改,其他线程可以立即看到被修改的值 3、有序性:代码按...
java线程的创建非常昂贵,需要JVM和OS(操作系统)互相配合完成大量的工作。而java高并发频繁的创建和销毁线程的操作是非常低效的,如何降低java线程的创建成本,就必须...
一、synchronized锁定的目标 如图所示,非常明了了,归根结底,synchronized锁定的既不是代码块、也不是一个方法,而是一个对象:方法锁锁定的是当前类的实例对...