JVM
文章平均质量分 74
肆〇
后端开发工程师,主攻Java、C#等后端语言及其主流技术生态,以及数据库SQL、算法。博客主要围绕后端开发、算法设计与开发、SQL编写与优化,也会穿插一些开发相关的新技术、新思想。为保证博客质量,采用周更的方式,每周二晚8:00进行更新,欢迎一起交流探讨、批评指正。
Let's code the world together!
展开
-
JVM系列——基础知识(学习笔记)
基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。 区别: 基于栈式架构的特点: 跨平台性; 指令集小但是指令多; 设计和实现更简单,适用于资源受限的系统; 避开了寄存器的分配难题;使用零地址指令方式分配; 指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现; 不需要硬件支持,可移植性更好,更好实现跨平台。 执行性能比寄存器要差一些。 基于寄存器架构的特点: 典型的应用是x86 同样执行2+3的操作,其指令分别如下: 寄存器原创 2022-02-10 22:11:55 · 167 阅读 · 0 评论 -
java中类的加载与对象的创建
Java中一个对象的创建分两步: 加载类,创建对象。 java类的加载过程: java中对象的创建过程: 加载类是将所写的程序.java文件编译生成的.class文件加载到内存中,保证了对象创建的预置环境。类加载完毕后才可以创建该类的对象。 第一步:加载类 当开始运行一个类,虚拟机首先试图访问指定启动类的 .main() 方法,加载该类的 .class 文件。 如果该类有父类,那么继续加载其父类,以此类推,直到加载出所有与main入口类相关的类(它的父类,父类的父类等)。 ...原创 2022-01-26 21:50:52 · 837 阅读 · 0 评论 -
JVM系列——运行时数据区学习笔记
class文件——>ClassLoader SubSystem——>running data area ——>GC 本地方法栈、本地方法接口、本地方法库 虚拟机栈:方法1(栈帧1)、方法2(栈帧2) 方法区和堆是进程私有(95%是在堆区,5%是在方法区) 程序技术器,虚拟机栈,本地方法栈是线程私有 一个JVM实例对应一个运行时数据区(一个Runtime对象) 线程: 线程是一个程序的运行单元,一个进程有多个线程, 每一个线程与操作系统的本地线程直接映射,当一个java线程准备原创 2022-01-25 23:17:10 · 3125 阅读 · 0 评论 -
JVM系列——StringTable
1. String的基本特性: String就是字符串类型,定义方式有两种: String s1 = "hello"; String s2 = new String("hello"); String类是final修饰的,不可以被继承。 JDK1.9之后String、StringBuffer、StringBuilder从char[]改成byte[]了。 String代表不可变的字符序列,简称不可变性。 字面量定义的方式,存储在字符串常量池中。字符串常量池是不会存储相同内容的字符串的。Str.原创 2021-11-27 17:14:37 · 2743 阅读 · 0 评论 -
JVM中常见的垃圾回收器
收集算法是内存回收的⽅法论,垃圾收集器就是内存回收的具体实现。 没有万能的垃圾收集器,我们能做的就是根据具体应⽤场景选择适合⾃⼰的垃圾收集器。 收集器名称 简单介绍 线程 回收算法 优点 适用场景 备注 Serial(串行)收集器 最基本、历史最悠久的垃圾收集器。它的 “单线程” 的意义不仅仅意味着它只会使⽤⼀条垃圾收集线程去完成垃圾收集⼯作,更重要的是它在进⾏垃圾收集⼯作的时候必须暂停其他所有的⼯作线程("Stop The World" ),.原创 2022-01-10 09:32:34 · 266 阅读 · 0 评论