一。python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 二。python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释成字节码文件. 可以直接去运行. 三。第一个python程序 print(任何内容) 四。变 ...
分类:
编程语言 时间:
2018-08-02 22:47:30
阅读次数:
167
每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器AppClassLoader,它只加载Java API等可信类,通常只是在本地磁盘中 ...
分类:
编程语言 时间:
2018-08-01 12:09:58
阅读次数:
180
为什么要有包 将字节码文件进行分类存放 包其实就是文件夹 包的概述 定义包的格式: package 包名; 多级包用 . 分开即可。 定义宝的注意事项: package语句必须是程序的第一条可执行的代码 package语句在一个java文件夹中只能有一个 如果没有package,默认表示无包名 ...
分类:
编程语言 时间:
2018-07-31 11:07:47
阅读次数:
121
一.python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 二.python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释成字节码文件. 可以直接去运行. 三.第一个python程序 print(任何内容) 四.变 ...
分类:
编程语言 时间:
2018-07-30 23:02:55
阅读次数:
248
上面是带范型的,下面是正常常规的 //上面同name的trait解析 看编译后的文件 那就是被编译成了三个class Pet.class源码,Pet是一个接口,有俩个方法,由下可见trait里面并没有name这个字段. Dog.class源码 那么可以知道.下面这个语法是一个糖衣. ...
分类:
其他好文 时间:
2018-07-30 01:09:06
阅读次数:
179
一、JVM原理 java编译器只要面向JVM,生成JVM能理解的字节码文件,Java源文件经过编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。 二、JVM运行时数据区 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程私有的 虚拟机 ...
分类:
其他好文 时间:
2018-07-29 00:12:38
阅读次数:
119
(初学者自学总结) 学习理由: 框架底层重要的实现原理之一(反射) 反射就是在"java运行系统"时期 到"类加载器验证字节码的正确性" 即运行期间动态的操作类加载器的字节码文件从而获得整个类文件。 1.获取一个类的class对象的方式 eg:获取Person实体类 ①:通过.class获取:Sys ...
分类:
其他好文 时间:
2018-07-28 15:17:38
阅读次数:
155
一:类的生命周期 类的生命周期从类被加载,连接和初始化开始! 到类的卸载结束! 01.类的生命周期中,类的2进制数据位于方法区; 02.在堆中会有一个描述这个类的Class对象; 2.1 加载: 需要类加载器 将class字节码文件内容加载到内存中,并将这些静态数据转化成 方法区中运行时数据结构!在 ...
分类:
编程语言 时间:
2018-07-27 23:16:15
阅读次数:
297
在运行时数据区 哪些是线程和线程私有的 01 线程共享 堆 方法区 02 线程私有 虚拟机栈 本地方法栈 程序计数器 下面我来具体的介绍一下这几个名词 程序计数器 : 当前线程执行字节码文件的行号指示器能够在线程切换后找到自己正确的位置 唯一一个不会导致内存溢出 outofmeorm 虚拟机栈: 基 ...
分类:
其他好文 时间:
2018-07-27 23:15:06
阅读次数:
209
jvm字节码指令我们都知道,Java源代码不会像C/C++那样直接被编译为机器码,而是被编译成字节码,这造就了Java可以跨平台的特性。JVM实际执行的也是编译后的字节码,所以想要在Java代码层进行调优,就得对字节码有一定的了解。.class文件是无法直接使用文本编辑器查看的,至于字节码的查看,我们可以使用javap这个jdk自带的工具。javap是Javaclass文件分解器,可以反编译(即对
分类:
编程语言 时间:
2018-07-27 21:01:47
阅读次数:
149