随笔分类 -  JAVA / JAVA-JVM

Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图
摘要:类加载机制 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。以下陈述的内容都已HotSpot为基准。 1. 加载 在加载 阅读全文

posted @ 2023-04-21 09:27 gogoy 阅读(155) 评论(0) 推荐(0) 编辑

JVM SandBox 的技术原理与应用分析
摘要:https://www.infoq.cn/article/tsy4lgjvsfweuxebw*gp https://blog.csdn.net/qq_40378034/article/details/116255652 一、前言 在开始之前,我们先来模拟一下以下的场景: 小李:“小明,你的接口没有返 阅读全文

posted @ 2021-07-01 15:11 gogoy 阅读(956) 评论(0) 推荐(0) 编辑

聊聊BIO、NIO与AIO的区别(转)
摘要:转自:https://www.cnblogs.com/blackjoyful/p/11534985.html 题目:说一下BIO/AIO/NIO 有什么区别?及异步模式的用途和意义? BIO:Apache,Tomcat(7及以下默认,8及以上默认NIO)。主要是并发量要求不高的场景NIO:Nginx 阅读全文

posted @ 2021-01-04 15:15 gogoy 阅读(221) 评论(0) 推荐(0) 编辑

JVM-即时编译
摘要:即时编译(JIT just in time,默认是开启的)是一项用来提升应用程序运行效率的技术。通常而言,代码会先被 Java 虚拟机解释执行,之后反复执行的热点代码则会被即时编译成为机器码,直接运行在底层硬件之上。 HotSpot 虚拟机包含多个即时编译器 C1、C2 和 Graal(实验性质)。 阅读全文

posted @ 2020-12-28 15:04 gogoy 阅读(365) 评论(0) 推荐(0) 编辑

JVM-Java语法糖与Java编译器
摘要:基本类型和其包装类型之间的自动转换,也就是自动装箱、自动拆箱,是通过加入[Wrapper].valueOf(如 Integer.valueOf)以及[Wrapper].[primitive]Value(如 Integer.intValue)方法调用来实现的。 Java 程序中的泛型信息会被擦除。具体 阅读全文

posted @ 2020-12-28 11:21 gogoy 阅读(94) 评论(0) 推荐(0) 编辑

JVM-Java虚拟机是怎么实现synchronized的?
摘要:1. JVM的锁优化 今天我介绍了 Java 虚拟机中 synchronized 关键字的实现,按照代价由高至低可分为重量级锁、轻量级锁和偏向锁三种。 重量级锁会阻塞、唤醒请求加锁的线程。它针对的是多个线程同时竞争同一把锁的情况。Java 虚拟机采取了自适应自旋,来避免线程在面对非常小的 synch 阅读全文

posted @ 2020-12-25 10:59 gogoy 阅读(124) 评论(0) 推荐(0) 编辑

JVM-内存模型
摘要:1. 一个反常识的例子 例: 1 int a=0, b=0; 2 3 public void method1() { 4 int r2 = a; 5 b = 1; 6 } 7 8 public void method2() { 9 int r1 = b; 10 a = 2; 11 } 这里我定义了两 阅读全文

posted @ 2020-12-24 16:45 gogoy 阅读(82) 评论(0) 推荐(0) 编辑

Safepoints: Meaning, Side Effects and Overheads(译文)
摘要:Safepoints: Meaning, Side Effects and Overheads (安全点:含义、副作用和开销) 去年,我一直在进行有关profiling以及JVM运行时/执行的一些讨论,在这两者中,我都发现自己遇到了安全点这一话题。 大多数人对安全点的存在一无所知,并且在一个人满为患 阅读全文

posted @ 2020-12-18 11:40 gogoy 阅读(227) 评论(0) 推荐(0) 编辑

JVM-垃圾回收
摘要:jvm大局观之内存管理篇(三):java如何判断哪些对象该被回收 1. JVM中的垃圾回收器-总览 针对新生代的垃圾回收器共有三个:Serial,Parallel Scavenge 和 Parallel New。这三个采用的都是标记 - 复制算法。其中,Serial 是一个单线程的,Parallel 阅读全文

posted @ 2020-12-17 17:28 gogoy 阅读(109) 评论(0) 推荐(0) 编辑

JVM是如何处理反射的
摘要:反射实现1-调用本地方法 例: 1 // v0版本 2 import java.lang.reflect.Method; 3 4 public class Test { 5 public static void target(int i) { 6 new Exception("#" + i).pri 阅读全文

posted @ 2020-12-16 11:17 gogoy 阅读(233) 评论(0) 推荐(0) 编辑

JVM 字节码指令手册 - 查看 Java 字节码
摘要:JVM 字节码指令手册 - 查看 Java 字节码 JVM 字节码指令手册 - 查看 Java 字节码 jdk 进行的编译生成的 .class 是 16 进制数据文件,不利于学习分析。通过下命令 javap -c Demo.class > Demo.txt 或者其他方式可反汇编,得到字节码文件 一、 阅读全文

posted @ 2020-12-15 10:41 gogoy 阅读(145) 评论(0) 推荐(0) 编辑

1. JVM内存区块
摘要:本篇文章主要讲解Java(JVM)在运行期间,其运行时数据区域的作用、职责与划分。包括堆内存、栈内存——虚拟机栈、本地方法栈、方法区、常量池、程序计数器等概念。 采集可以使用JavaMXBean(采集文档参考 -- JMX获取jvm参数,cpu使用率,内存,线程,类等信息,实现一个简单的web版jv 阅读全文

posted @ 2020-11-23 17:26 gogoy 阅读(475) 评论(0) 推荐(0) 编辑

JVM-JVM是如何执行方法调用的
摘要:重载、重写 void invoke(Object obj, Object... args) { ... } void invoke(String s, Object obj, Object... args) { ... } invoke(null, 1); // 调用第二个invoke方法 invo 阅读全文

posted @ 2020-11-23 10:49 gogoy 阅读(205) 评论(0) 推荐(0) 编辑

JVM-内部类分析
摘要:一、内部类和外部类调用及字节码解释 外部类使用 内部类: 非静态内部类: JVM字节码 非静态内部类类 多了一个外部类对象的属性:final synthetic Field this$0:"Ljavap/loader/OuterClass;"; // 非静态内部类,合成的属性:外部类对象 JVM生成 阅读全文

posted @ 2020-11-18 10:54 gogoy 阅读(178) 评论(0) 推荐(0) 编辑

JVM-JVM如何加载类
摘要:一、Java 语言的类型可以分为两大类: 基本类型(primitive types) 引用类型(reference types):类、接口、数组类和泛型参数(泛型参数会在编译中被擦除),因此Java虚拟机里的引用类型实际上只有前三种 数组类:是由 Java 虚拟机直接生成的(Java中数组的特性) 阅读全文

posted @ 2020-11-17 10:00 gogoy 阅读(212) 评论(0) 推荐(0) 编辑

JVM-JAVA基本类型
摘要:1 package javap.fload; 2 3 import static jdk.nashorn.internal.objects.Global.Infinity; 4 5 public class FloatTest { 6 public static void main(String[] 阅读全文

posted @ 2020-11-16 15:59 gogoy 阅读(153) 评论(0) 推荐(0) 编辑

JVM指令分析
摘要:代码: 1 public class AppGo{ 2 public static void test() { 3 boolean flag = true; 4 if (flag) System.out.println("Hello, Java!"); 5 if (flag == true) Sys 阅读全文

posted @ 2020-11-16 15:13 gogoy 阅读(83) 评论(0) 推荐(0) 编辑

OpenJDK里的AsmTools简介
摘要:前言 转自:http://hengyunabc.github.io/openjdk-asmtools/ https://wiki.openjdk.java.net/display/CodeTools/asmtools 在OpenJDK里有一个AsmTools项目,用来生成正确的或者不正确的java  阅读全文

posted @ 2020-11-12 00:22 gogoy 阅读(220) 评论(0) 推荐(0) 编辑

JVM1
摘要:1 java是如何调用main函数的 我们知道JVM是由C/C++语言实现的,那么JVM跟CLASS打交道则需要JNI(Java Native Interface)(JNI 使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用)这座桥梁,当我们在命令行执行java时,由C/ 阅读全文

posted @ 2019-06-12 20:39 gogoy 阅读(153) 评论(0) 推荐(0) 编辑

JVM
摘要:1 java是如何调用main函数的 我们知道JVM是由C/C++语言实现的,那么JVM跟CLASS打交道则需要JNI(Java Native Interface)(JNI 使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用)这座桥梁,当我们在命令行执行java时,由C/ 阅读全文

posted @ 2019-06-12 18:09 gogoy 阅读(208) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示