JVM-基础-Java内存模型

JMM引入JMM与硬件内存结构关系硬件内存结构简介JMM与硬件内存连接 - 引入 JMM与硬件内存连接 - 对象共享后的可见性 JMM与硬件内存连接 - 竞态条件如果两个或多个线程共享一个对象,并且多个线程更新该共享对象中的变量,则可能会出现竞态。

阅读全文

JVM-基础-JVM内存结构

https://www.pdai.tech/md/java/jvm/java-jvm-struct.html 运行时数据区域总览内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM 内存布局规定了 Java 在运行过程中内存申请、分配、管理的策略,保证了 JVM 的高效稳定运行。不同的 JVM 对于内存的...

阅读全文

JVM-知识体系

知识体系 学习要点不同的虚拟机实现方式上也有差别,如果没有特别指出,这里的JVM指的是sun的HotSpot不同的JDK版本略有差别,这里主要以1.8为主。

阅读全文

JVM-基础-类字节码详解

Java源代码通过编译器编译为字节码,再通过类加载子系统进行加载到JVM中运行。 多语言编译为字节码在JVM运行计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码。这个编译后的java代码,就是本文要介绍的java字节码。 为什么jvm不能直接运行java代码呢,这是因为在cpu层面看来计算机中所有的操...

阅读全文

JVM-基础-Java类加载机制

类的生命周期其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地...

阅读全文

Java基础-泛型

Java泛型这个特性是从JDK 1.5才开始加入的,因此为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”(Type Erasure),将所有的泛型表示(尖括号中的内容)都替换为具体的类型(其对应的原生态类型),就像完全没有泛型一样。 为什么会引入泛型泛型的本质是为了参数化类型(在...

阅读全文

Java基础-反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制在框架设计中极为广泛,需要深入理解。 反射基础RTTI(Run-Time Type Identification)运行时类型识别。在《...

阅读全文

Java 集合 - 类汇总

JDK中Collection和Map相关知识体系概览。 集合框架体系结构 CollectionList ArrayList Vector LinkedList Set TreeSet HashSet LinkedHashSet Queue LinkedList PriorityQueue DequeMapTreeMapHashMapHashTableL...

阅读全文

微服务架构-Kubernetes

服务注册发现与负载均衡 - Service如果使用 Deployment 来运行应用服务,Deployment 可以动态的创建和销毁 Pod。每个 Pod 获取其自己的 IP 地址(K8S期待网络插件确保IP地址分配)。对于集群中给定的 Deployment,这一刻运行的这组 Pod 可能不同于下一刻运行应用程序的另一组 Pod。由此引出的的问题是: 如果...

阅读全文

微服务

概念单体应用单体应用是所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源。 单台服务器的压力扛不住的时候,就要用到负载均衡技术,增加多台服务器来抗压,后端的数据库也可以用主从的方式来增加并发量。 微服务微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用。 微服务的技术选型Dubbo (...

阅读全文