JVM
修行者 坚守者
Stay hungry Stay foolish
展开
-
Java字节码指令集的使用详细
转:http://www.jb51.net/article/36407.htm Java虚拟机指令由一个字节长度的、代表某种特定含义的操作码(Opcode)以及其后的零个至多个代表此操作参数的操作数构成。虚拟机中许多指令并不包含操作数,只有一个操作码。若忽略异常,JVM解释器使用一下为代码即可有效工作。复制代码代码如下:do{ 自动计算PC寄转载 2016-11-04 09:44:34 · 472 阅读 · 0 评论 -
Java字节码浅析(—)
转:http://www.cnblogs.com/heart-king/p/5386167.html英文原文链接,译文链接,原文作者:James Bloom,译者:有孚明白Java代码是如何编译成字节码并在JVM上运行的非常重要,这有助于理解程序运行的时候究竟发生了些什么。理解这点不仅能搞清语言特性是如何实现的,并且在做方案讨论的时候能清楚相应的副作用及权衡利弊。本转载 2016-11-28 21:49:23 · 198 阅读 · 0 评论 -
实例分析Java Class的文件结构
转:http://www.jb51.net/article/35187.htm今天把之前在Evernote中的笔记重新整理了一下,发上来供对java class 文件结构的有兴趣的同学参考一下学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一个无关 性那就是语言无关性,要实现转载 2016-11-28 21:50:13 · 266 阅读 · 0 评论 -
Java Class文件详解
转:http://www.importnew.com/15161.htmlJava Class文件中包含以下信息:1234567891011121314151617181920转载 2016-11-28 21:51:46 · 282 阅读 · 0 评论 -
Java字节码运行浅析(二)
转:http://blog.csdn.net/afei198409/article/details/22930875转载于:http://it.deepinmind.com/jvm/2014/04/04/Java-code-to-byte-code-2.html条件语句像if-else, switch这样的流程控制的条件语句,是通过用一个指令进行两个值的比较转载 2016-11-14 09:47:32 · 192 阅读 · 0 评论 -
【深入Java虚拟机】之七:Javac编译与JIT编译
转:http://blog.csdn.net/ns_code/article/details/18009455版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]编译过程Javac编译 词法语法分析 填充符号表 语义分析 字节码生成JIT编译转载请注明出处:http://blog.csd转载 2016-11-14 10:51:16 · 293 阅读 · 0 评论 -
JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
转:http://www.cnblogs.com/lyhero11/p/5080306.html Java JIT(just in time)即时编译器是sun公司采用了hotspot虚拟机取代其开发的classic vm之后引入的一项技术,目的在于提高java程序的性能,改变人们“java比C/C++慢很多”这一尴尬印象。说起来是编译器,但此编译器与通常说的javac那个转载 2016-11-14 11:07:57 · 799 阅读 · 0 评论 -
关于不再使用的Java对象手工指null是否有意义
转:http://blog.csdn.net/lance_wyvern/article/details/50435539版权声明:本文为博主原创文章,未经博主允许不得转载。在《Practical Java》中,有这样一条实践:“一旦不再需要object references,就将它设为null”我开始职业生涯今年已经是第7年了。在6年中,网上也好,同事之间也转载 2016-11-14 11:51:08 · 244 阅读 · 0 评论 -
java中 obj=null对垃圾回收有用吗
转:http://chenjingbo.iteye.com/blog/1980908前言 之前看书的时候,看到了方法执行的内容,忽然就想到了这么一个有趣的东西.然后就特意开一个贴,把一些前人,大大的知识做一个汇总,做一下记录吧. 正文 相信,网上很多java性能优化的帖子里都会有这么一条 写道尽量把不使用的对转载 2016-11-14 12:00:17 · 467 阅读 · 0 评论 -
Java栈和局部变量操作(一)
转:http://www.cnblogs.com/chenqiangjsj/archive/2011/04/02/2003892.htmlJava栈和局部变量操作Java虚拟机是基于栈的机器,几乎所有Java虚拟机的指令都与操作数栈相关。栈操作包括把常量压入操作数栈、执行通用的栈操作、在操作数栈和局部变量之间往返传输值。1常量入栈操作:操作码在执行常量入栈操作之前,使用三种转载 2016-11-15 11:31:18 · 261 阅读 · 0 评论 -
java 字节码指令
转:http://blog.csdn.net/coslay/article/details/43131645字节码格式字节码是JVM的机器语言。JVM加载类文件时,对类中的每个方法,它都会得到一个字节码流。这些字节码流保存在JVM的方法区中。在程序运行过程中,当一个方法被调用时,它的字节码流就会被执行。根据特定JVM设计者的选择,它们可以通过解释的方式,即时编译(Jus转载 2016-11-15 11:32:04 · 746 阅读 · 0 评论 -
如何保护Java程序 防止Java反编译
转:http://blog.csdn.net/dracotianlong/article/details/7915259版权声明:本文为博主原创文章,未经博主允许不得转载。常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难转载 2016-11-21 14:45:45 · 343 阅读 · 0 评论 -
ClassLoader加载Class的过程 解析
转:http://blog.csdn.net/zhk0377/article/details/8306244版权声明:本文为博主原创文章,未经博主允许不得转载。ClassLoader即类加载器,负责将 .class 文件(可能在磁盘上, 也可能在网络上) 加载到内存中, 并为之生成对应的 Java.lang.Class 对象,当 JVM 启动时,会形成由三个类加转载 2016-12-08 18:51:03 · 217 阅读 · 0 评论 -
深入类加载器----线程上下文类加载器
转:http://blog.csdn.net/li12412414/article/details/52196643版权声明:本文为博主原创文章,未经博主允许不得转载。 深入类加载器(四)----线程上下文切换类加载器 线程上下文类加载器 我们知道在Java中的加载器的加载模式是双亲委托模式转载 2016-12-08 18:55:24 · 369 阅读 · 0 评论 -
Java语法糖的味道:泛型与类型擦除
转:http://icyfenix.iteye.com/blog/1021949Java语法糖的味道:泛型与类型擦除 泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。 泛型思想早在C++语言的模板(T转载 2016-12-19 10:03:15 · 313 阅读 · 0 评论 -
JVM底层又是如何实现synchronized的
转:http://www.open-open.com/lib/view/open1352431526366.html目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同转载 2016-11-10 17:20:54 · 174 阅读 · 0 评论 -
java成员变量在什么时候赋值的?
转:https://www.zhihu.com/question/36643366题主问题说:构造器的目的是分配实例对象的内存空间这是错误的。Java语言里,new表达式总体负责两个动作:分配对象空间并对其做默认初始化。默认初始化会将对象的所有成员字段设到其类型对应的默认值(零值)。初始化对象其中构造器只负责第2点,第1点是包含在new表达式里的语义。转载 2016-11-09 15:40:16 · 2832 阅读 · 0 评论 -
Java中类的基本成员的默认值问题
转:http://faquir.blog.sohu.com/7141401.html在java中,若类的某个成员是基本的数据类型,即使没有进行初始化,java也会确保它获得一个默认值,如下所示:boolean 为false; char为 '\u0000'(null); byte 为(byte)0;short 为(short)0;int 为0; long 为0L;float为0.0f;转载 2016-11-09 15:39:24 · 1469 阅读 · 0 评论 -
JVM虚拟机结构
转:http://www.cnblogs.com/angeldevil/p/3801189.htmlJVM的主要结构如下图所示,图片引用自舒の随想日记。方法区和堆由所有线程共享,其他区域都是线程私有的程序计数器(Program Counter Register)类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节转载 2016-11-07 14:51:21 · 226 阅读 · 0 评论 -
浅析Java虚拟机结构与机制
转:http://blog.hesey.net/2011/04/introduction-to-java-virtual-machine.html本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,转载 2016-11-07 14:53:46 · 184 阅读 · 0 评论 -
java之jvm学习笔记十三(jvm基本结构)
转:http://blog.csdn.net/yfqnihao/article/details/8289363版权声明:本文为博主原创文章,未经博主允许不得转载。 欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概转载 2016-11-07 15:00:57 · 220 阅读 · 0 评论 -
在Eclipse里查看Java字节码
转:http://blog.csdn.net/neal_ke/article/details/48525723要理解 Java 字节码,比较推荐的方法是自己尝试编写源码对照字节码学习。其中阅读 Java 字节码的工具必不可少。虽然javap可以以可读的形式展示出.class 文件中字节码,但每次改动源码都需调用命令行并不方便。这里介绍一个可以辅助阅读 Java 字节码的 Ecl转载 2016-11-07 23:05:59 · 829 阅读 · 0 评论 -
用java字节码解释i++和++i
转:http://blog.csdn.net/icearmour/article/details/6749183原址:http://blog.csdn.NET/tutuhatec/article/details/6747774先看4个题目:①int i = 0; i = i++; ②int i = 0; i = ++i转载 2016-11-07 23:25:28 · 263 阅读 · 0 评论 -
java i++ 和 ++i 深度解析
转:http://blog.csdn.net/never_cxb/article/details/47359761版权声明:转载请注明出处 博客地址 http://blog.csdn.net/never_cxb目录(?)[+]i 和 i 都能实现1 顺序不同i利用了中间缓存变量总结i++ 和 ++i 都能实现+1, 顺序不同pub转载 2016-11-07 23:32:51 · 642 阅读 · 0 评论 -
java中i++和++i
转:http://blog.csdn.net/damoyan/article/details/7384602版权声明:本文为博主原创文章,未经博主允许不得转载。这几天抽着一些时间,把Java的class文件结构研究了一下,再后来就想起了这个令人厌烦的问题,想从字节码指令的角度看看,java到底是怎么处理这个的先看一段java代码[java]转载 2016-11-07 23:34:11 · 293 阅读 · 0 评论 -
Java:如何用Eclipse查看Class字节码指令集代码
转:https://zhidao.baidu.com/question/368994445436401884.html在遇到一些小问题的时候我们经常会使用Javap反编译取得字节码来分析,虽然Javap能完成这个工作,但是有两个缺点,一方面操作麻烦,需要很多步骤,一方面没有文档注释,对新手来说看起字节码来比较麻烦。 这里推荐一个工具,Bytecode Outline .它是Ecli转载 2016-11-08 09:25:22 · 4604 阅读 · 0 评论 -
可以查看java字节码的eclipse插件
转:http://blog.csdn.net/wen525765/article/details/9978121版权声明:本文为博主原创文章,未经博主允许不得转载。 Bytecode Outline :它是Eclipse的插件,可以把当前的正在编辑Java的文件或者class文件直接显示出其相应的字节码出来,而且可以进行两个Java文件的字节码比较或者两个class转载 2016-11-08 09:57:31 · 757 阅读 · 0 评论 -
浮点数与IEEE 754
转:http://www.cnblogs.com/kingwolfofsky/archive/2011/07/21/2112299.html浮点数1. 什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(Fixed Point Number)。在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置。货币的表达就可以使用这种方式转载 2016-11-08 10:20:58 · 1000 阅读 · 0 评论 -
对象和数组:JVM中,处理对象和数组的字节码介绍
转:http://letscoding.iteye.com/blog/2073759?utm_source=tuicool&utm_medium=referral译:http://www.javaworld.com/article/2077305/learn-java/objects-and-arrays.html欢迎来到“Under The Hood”第五期。本期我们来看转载 2016-11-08 22:08:34 · 918 阅读 · 0 评论 -
java指令集
转:http://blog.csdn.net/shi1122/article/details/8053605有时候为了能理解JVM对程序所做的优化等,需要查看程序的字节码,因此知道了解一些常见的指令集很重要!指令码助记符说明0x00nop什么都不做转载 2016-11-08 22:56:12 · 274 阅读 · 0 评论 -
深度思考Java成员变量的初始化
转:http://blog.csdn.net/luohuacanyue/article/details/13169173版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]代码一代码二代码三代码四代码五代码六代码七总结 写Java代码的时候很少去关注成员变量的声明和初始化顺序,今天借此机会抛出一些问题:语言转载 2016-11-09 11:52:23 · 234 阅读 · 0 评论 -
Java类成员变量、普通成员变量、初始化块、构造方法的初始化和执行顺序
转:http://blog.csdn.net/z69183787/article/details/25366627序言 关于类的static成员变量初始化、static初始化块、实例的普通成员变量初始化、实例的普通初始化块以及构造函数的执行顺序,我一直不是十分明确地知道,今天专门花了几个小时的时间参考网上资料设计出了比较明了的测试代码,有代码有结果有真相。总体而言,stati转载 2016-11-09 11:55:02 · 305 阅读 · 0 评论 -
深入介绍Java对象初始化
转:http://www.jb51.net/article/89198.htm本文对Java如何执行对象的初始化做一个详细深入地介绍。有需要的小伙伴们可以参考。前言在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。自动初始化(默认值)一个类的所有基本数据成员都会得到初始化,运行下面的例子可以查转载 2016-11-09 12:22:10 · 220 阅读 · 0 评论 -
使用String的intern方法节省内存
转:http://www.importnew.com/21836.html本文由 ImportNew - chowchowT^T 翻译自 Fabian Lange。欢迎加入翻译小组。转载请见文末要求。Attila Szegedis 在他讲述 JVM 知识的文档中一直强调,清楚知道内存中存储的数据量是非常重要的。我一开始感到十分惊讶,因为一般情况下,在企业开发转载 2017-04-27 14:42:58 · 531 阅读 · 0 评论