随笔分类 -  JAVA

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

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

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

posted @ 2020-12-25 10:59 gogoy 阅读(139) 评论(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 阅读(88) 评论(0) 推荐(0)

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

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

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

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

Java Lambda 表达式
摘要:Java Lambda 表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 1 package java8; 2 3 /** 4 * 阅读全文

posted @ 2020-12-17 15:03 gogoy 阅读(153) 评论(0) 推荐(1)

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 阅读(267) 评论(0) 推荐(0)

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

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

JVM是如何处理异常的
摘要:参考: 抛出异常 https://www.liaoxuefeng.com/wiki/1252599548343744/1264738764506656 JVM 字节码指令手册 - 查看 Java 字节码 今天我介绍了 Java 虚拟机的异常处理机制。Java 的异常分为 Exception 和 Er 阅读全文

posted @ 2020-12-08 15:49 gogoy 阅读(199) 评论(0) 推荐(0)

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

posted @ 2020-11-23 17:26 gogoy 阅读(529) 评论(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 阅读(224) 评论(0) 推荐(0)

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

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

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

posted @ 2020-11-17 10:00 gogoy 阅读(231) 评论(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 阅读(162) 评论(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 阅读(89) 评论(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 阅读(230) 评论(0) 推荐(0)

深入理解SPI机制
摘要:一、什么是SPI SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI 阅读全文

posted @ 2020-10-02 11:42 gogoy 阅读(217) 评论(0) 推荐(0)

设计模式-责任链/管道模式
摘要:责任链、Pipeline(管道)、Valve(阀门) 阅读全文

posted @ 2020-10-01 21:32 gogoy 阅读(692) 评论(0) 推荐(0)

理解maven命令package、install、deploy的联系与区别(转)
摘要:Maven 阅读全文

posted @ 2020-09-30 11:03 gogoy 阅读(248) 评论(0) 推荐(0)

深入理解maven构建生命周期和各种plugin插件(转)
摘要:Maven 阅读全文

posted @ 2020-09-30 11:01 gogoy 阅读(223) 评论(0) 推荐(0)

导航