javap使用 一、javap javap是JDK自带的反汇编器,可以查看java编译器生成的字节码。 二、语法 javap [ 命令选项 ] [class] 三、命令项 help help ? 输出此用法消息 version 版本信息 v verbose 输出附加信息 l 输出行号和本地变量表 p ...
分类:
编程语言 时间:
2018-06-18 01:12:51
阅读次数:
254
背景知识 Class类(反射机制实现的基础) Java中的Class的类是一个特殊的类,JVM加载字节码文件的时候,在方法区中为每一个类创建一个对应的Class类对象,这个对象中包含类的信息:方法,字段,注解等。 是什么 可以在运行时动态的获取类的信息。(比如:类里面定义的方法,字段,注解等信息) ...
分类:
编程语言 时间:
2018-06-17 13:39:58
阅读次数:
159
4、谈谈你对JVM的理解? 答: Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。Java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。 JVM执 ...
分类:
编程语言 时间:
2018-06-16 23:38:44
阅读次数:
350
回答: Java虚拟机就是一个可以执行Java字节码的虚拟机进程。Java源文件通过javac编译器编译生成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意平台,而不需要程序员为每一个平台单独重写或者重新编译。而所谓跨平台就是在不同的平台上安装了不同的JVM,而在不同 ...
分类:
编程语言 时间:
2018-06-16 12:07:42
阅读次数:
199
java.io.File类 凡是与输入、输出相关的类、接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt .avi .doc .ppt .mp3 .jpg)或文件目录 File类对象是与平台无关的 File中的方法,仅涉及到如何创建、删除、重命 ...
分类:
编程语言 时间:
2018-06-15 01:06:46
阅读次数:
212
一般来说: jdk每一个版本都是向后兼容的,说以低版本的代码是可以运行在高版本的虚拟机上的。而反过来则不可以,用1.6的编译器编辑的字节码文件是不可以运行在1.5版本的虚拟机上的。 但是今天我用Sun JDK1.6.0_13(这个是myeclipse自带的编译jdk版本)编写一个Tomcat的测试, ...
分类:
编程语言 时间:
2018-06-10 17:21:11
阅读次数:
241
一、概念 二、案例 源代码 源代码 javap -verbose Test.class 解析如下,当程序运行到if语句时,执行if_icmple指令,判断(age>10)是否成立,如果成立则继续执行,如果不成立则跳转到20行继续执行,即跳转到getstatic指令。 ...
分类:
其他好文 时间:
2018-06-09 21:14:56
阅读次数:
168
在讨论JVM内存区域分析之前,先来看一下Java程序具体执行的过程: Java 程序的执行过程:Java 源代码文件(.Java文件)-> Java Compiler(Java编译器)->Java 字节码文件(.class文件)->类加载器(Class Loader)->Runtime Data A ...
分类:
编程语言 时间:
2018-06-09 11:38:03
阅读次数:
177
面试题:如何获取class字节码文件对象/Class的类对象三种方式来获取这个class字节码文件对象:1)Object中的getClass()2)任何数据类型的静态属性class3)Class类中的方法:forName(StringclassName)forName("类路径")如果你自己玩,任意:第一种和第二种都可以但是,开发中使用第三种方式,forName方法中的参数是一个String类型,
分类:
编程语言 时间:
2018-06-07 17:44:39
阅读次数:
173
JRE : Java 运行环境 JDK : Java 开发工具包,其中包括 JRE (javac、java、javap、jar、javadoc 、javah 等命令) JVM : Java 虚拟机 PATH : Windows 环境变量 CLASSPTH :Java 程序运行时类加载路径 ( 非 j ...
分类:
编程语言 时间:
2018-06-06 23:40:10
阅读次数:
172