
JVM从基础到面试
文章平均质量分 92
落鱼科技
原ID:(小新爱学习.)没有太晚的开始,只有过早的放弃!
展开
-
什么是缓存击穿?如何避免之布隆过滤器
缓存击穿是指当大量的客户端请求访问一个不存在的缓存数据时,这些请求会绕过缓存直接击穿到数据库,给数据库带来巨大压力,甚至可能导致服务瘫痪。请求的键不存在于缓存中:比如用户在查询一个不存在的商品 ID、文章 ID 等。缓存未命中:由于查询到的结果不存在,直接请求数据库,这种请求行为在高并发场景下,会对数据库产生非常大的压力。快速判断无效键:布隆过滤器可以高效地判断某个键是否存在。如果布隆过滤器判定某个键一定不存在,那么请求不会再访问缓存和数据库,从而减少无效请求对系统的压力。减少数据库压力。原创 2024-11-27 22:48:51 · 774 阅读 · 0 评论 -
【实战JVM】Java虚拟机栈
Java虚拟机栈Java虚拟机栈(Java Virtual Machine Stack)采用栈的数据结构来管理方法调用中的基本数据,先进后出(First In Last Out),每一个方法的调用使用一个栈帧(Stack Frame)来保存。public class MethodDemo { public static void main(String[] args) { study(); } public static vo原创 2024-04-29 00:04:01 · 1172 阅读 · 55 评论 -
【实战JVM】运行时数据区之程序计数器
1. 程序计数器程序计数器(Program Counter Register)也叫PC寄存器,每个线程会通过程序计数器记录当前要执行的的字节码指令的地址。在这里插入图片描述一个程序计数器的具体案例:在加载阶段,虚拟机将字节码文件中的指令读取到内存之后,会将原文件中的偏移量转换成内存地址。每一条字节码指令都会拥有一个内存地址。原创 2024-04-28 23:52:42 · 878 阅读 · 6 评论 -
【实战JVM】打破双亲委派机制之线程上下文类加载器
线程上下文类加载器利用上下文类加载器加载类,比如JDBC和JNDI等。我们来看下JDBC的案例:1、JDBC中使用了DriverManager来管理项目中引入的不同数据库的驱动,比如mysql驱动、oracle驱动。原创 2024-04-12 11:44:57 · 2405 阅读 · 28 评论 -
【实战JVM】打破双亲委派机制之自定义类加载器
一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。如果不打破双亲委派机制,当应用类加载器加载Web应用1中的MyServlet之后,Web应用2中相同限定名的MyServlet类就无法被加载了。Tomcat使用了自定义类加载器来实现应用之间类的隔离。每一个应用会有一个独立的类加载器加载对应的类。那么自定义加载器是如何能做到的呢?原创 2024-04-12 11:39:35 · 1844 阅读 · 0 评论 -
【实战JVM】双亲委派机制
双亲委派机制双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过,再由顶向下进行加载。原创 2024-04-11 12:34:48 · 2499 阅读 · 10 评论 -
【实战JVM】类的加载器
类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。类加载器会通过二进制流的方式获取到字节码文件的内容,接下来将获取到的数据交给Java虚拟机,虚拟机会在方法区和堆上生成对应的对象保存字节码信息。原创 2024-04-11 12:30:31 · 2280 阅读 · 0 评论 -
【实战JVM】类的生命周期
类的生命周期类的生命周期描述了一个类加载、使用、卸载的整个过程。整体可以分为:加载连接,其中又分为验证、准备、解析三个子阶段初始化使用卸载原创 2024-04-11 12:24:04 · 2356 阅读 · 1 评论 -
【实战JVM】字节码常用工具分享
玩转字节码常用工具javapjavap是JDK自带的反编译工具,可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。直接输入javap查看所有参数。输入javap -v 字节码文件名称 查看具体的字节码信息。如果jar包需要先使用 jar –xvf 命令解压。原创 2024-04-10 00:12:15 · 2625 阅读 · 12 评论 -
【实战JVM】字节码文件详讲之方法
🐻❄️。原创 2024-04-08 20:37:56 · 2984 阅读 · 30 评论 -
【实战JVM】字节码中的常量池
常量池字节码文件中常量池的作用:避免相同的内容重复定义,节省空间。如下图,常量池中定义了一个字符串,字符串的字面量值为123。原创 2024-04-08 20:23:44 · 2030 阅读 · 0 评论 -
【实战JVM】字节码文件详解
字节码文件详解1.1 Java虚拟机的组成Java虚拟机主要分为以下几个组成部分:类加载子系统:核心组件类加载器,负责将字节码文件中的内容加载到内存中。运行时数据区:JVM管理的内存,创建出来的对象、类的信息等等内容都会放在这块区域中。执行引擎:包含了即时编译器、解释器、垃圾回收器,执行引擎使用解释器将字节码指令解释成机器码,使用即时编译器优化性能,使用垃圾回收器回收不再使用的对象。本地接口:调用本地使用C/C++编译好的方法,本地方法在Java中声明时,都会带上nati原创 2024-04-07 23:14:52 · 3242 阅读 · 23 评论 -
【JVM基础】JVM入门,详讲JVM
JVM 全称是 Java Virtual Machine,中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。Java源代码执行流程如下:分为三个步骤:1、编写Java源代码文件。2、使用Java编译器(javac命令)将源代码编译成Java字节码文件。3、使用Java虚拟机加载并运行Java字节码文件,此时会启动一个新的进程。原创 2024-04-03 21:17:20 · 3302 阅读 · 24 评论