自定义注解中常用的注解: java中元注解有四个: @Retention @Target @Document @Inherited; @Retention:注解的保留位置 @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @ ...
分类:
其他好文 时间:
2019-11-12 16:02:04
阅读次数:
96
Java实现跨平台主要是通过JVM JVM在不同的平台有不同的版本,在不同的平台要安装不同的JVM版本,我们编写JAVA源码后,经过编译会生成字节码文件.class文件。 Java虚拟机JVM将.class文件翻译成不同平台对应的机器码,从而在不同的平台下运行 注意:编译的结果不是生成机器码,而是生 ...
分类:
编程语言 时间:
2019-11-11 23:07:52
阅读次数:
136
一、命令生成 pyc 文件 *.py:源码文件,由 Python 程序解释。 *.pyc:源码经编译后生成的二进制字节码(Bytecode)文件。 *.pyo:优化编译后的程序,也是二进制字节码文件。 Python 在解释源程序时分为两步: 第一步:将源码转为字节码 第二步:将字节码转换为机器码 p ...
分类:
编程语言 时间:
2019-11-11 18:47:25
阅读次数:
91
.java 源文件要先编译成与操作系统无关的 .class 字节码文件,然后字节码文件再通过 Java 虚拟机解释成机器码运行。 .class 字节码文件面向虚拟机,不面向任何具体操作系统。 不同平台的虚拟机是不同的,但它们给 JDK 提供了相同的接口。 Java 的跨平台依赖于不同系统的 Java ...
分类:
编程语言 时间:
2019-11-11 09:45:00
阅读次数:
104
一、javac 1. 编译.java文件,生成字节码文件 2. 例子:javac a.java,在当前路径下生成a.class文件 3. 可以用-d参数指定生成文件的路径 二、java 1. 执行.class的字节码文件 2. 命令:java a.class 三、javap 1. jdk自带的反编译 ...
分类:
编程语言 时间:
2019-11-03 18:16:48
阅读次数:
125
一:解释性和编译型 梳理 编译型:源代码经过编译直接变为二进制的机器语言,每次都可以直接重新运行不需要翻译。典型的就是c语言。 解释性:java和python都是解释型,源代码经过编译变为字节码文件,然后将字节码放在VM上运行,达到跨平台的目的。 java和python都是边解释边执行,但是解释之前 ...
分类:
编程语言 时间:
2019-11-02 11:53:19
阅读次数:
104
1、jmap -histo:live <pid> 用于查看虚拟机中所有对象实例 2、jmap -heap <pid> 查看虚拟机堆参数设置大小 3、jinfo -flags <pid> 查看jvm启动的设置参数 -XX:-BytecodeVerificationLocal -XX:-Bytecode ...
分类:
其他好文 时间:
2019-11-01 13:03:08
阅读次数:
125
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。 Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。 Jav ...
分类:
编程语言 时间:
2019-10-28 14:35:57
阅读次数:
89
JVM(Java Virtual Machine,Java虚拟机)是一个虚构出来的计算机,通过在真实的计算机上模拟各种计算机功能。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java编译器生成的字节码文件,可以在多种平台上不加修改地运行。 Java代码编译运行过程:Java源码文件(.ja ...
分类:
其他好文 时间:
2019-10-23 15:22:48
阅读次数:
79
通过Jdk的命令javap可以反编译查看字节码,但是在使用idea的时候一直用命令行去操作不太好操作,而且因为idea会把class码 放在target里面,经常会忘记切换目录。这个时候idea的External Tools就派上用场了。 具体操作如下,先到idea的设置界面 进入Tools > E ...
分类:
编程语言 时间:
2019-10-23 00:19:59
阅读次数:
318