jvm
Nostalgia_forever
目前就职于阿里巴巴
展开
-
JVM中方法调用的实现
我们写代码时方法调用是最常见的场景,但是这种最常见的场景在JVM中是如何实现的呢,下面就一起来探索一番。该博客主要分为两块:一是jvm如何找到要调用的是哪个方法,此处涉及到方法的重载重写等特性,也就是多态的实现原理,包括jvm的静态解析,分派等特性。二是找到了要调用的方法,jvm具体是怎么执行的,这部分内容前面的一些博客零散的涉及到了,包括线程栈中的操作数栈入栈出栈,局部变量表,动态链原创 2015-03-07 19:00:12 · 1456 阅读 · 0 评论 -
关于GC
在介绍GC之前有必要先了解一下JVM的内存划分,这样在后面介绍GC和各种不同的GC collector的时候更容易理解。下面这张图是“偷”的别人的,很经典的描述了jvm的体系结构,我们只需要关注最大的那一块——运行时数据区域。1.方法区方法区为各个线程共享的一块内存区域,当虚拟机装载一个class文件时,它会从二进制数据中解析类型的信息,包括类的静态变量也会存储到该区域。虚拟机原创 2015-03-07 00:57:36 · 1406 阅读 · 0 评论 -
JDK工具介绍
jdk为我们提供了一些非常实用的小工具来帮助我们定位一些简单的JVM问题,这些小工具就在jdk/bin下面。不妨来分别看一下,本篇文章的工具都是使用的windows版本。1.jps从名字中可以大概看的出是做什么用的,了解liunx的都知道非常重要的一个命令ps——列出当前系统中的进程。同样jps是java版本的ps,列出当前系统中的java进程,下面是在我本机执行jps的结果:C:\U原创 2015-03-08 22:49:22 · 2587 阅读 · 0 评论 -
cglib的简单案例
本文的例子全部来自github上cglib的官方文档,有关cglib的教程少之又少,如果想学习觉得还是看看诸如Hibernate和Spring的源码来的实在。package com.tang;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertNotSame;import j原创 2015-04-05 15:29:28 · 2726 阅读 · 1 评论 -
win10-x64系统下编译OpenJDK
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-12-11 22:13:36 · 10526 阅读 · 10 评论