1.类加载器 类加载器(ClassLoader) ,顾名思义,即加载类的东西,在我们使用一个类之前,JVM需要先将该类的字节码文件(.class)文件从磁盘/网盘或其他的来源加载到内存中,并对字节码进行解析生成对应的Class对象,这就是类加载器的功能.我们可以利用类加载器,实现类的动态加载. 2. ...
分类:
编程语言 时间:
2018-11-13 02:49:10
阅读次数:
172
沉淀再出发:jvm的本质 一、前言 关于jvm,使用的地方实在是太多了,从字面意思上我们都能明白这也是一个虚拟机,那么其他的虚拟机都会用来运行别的操作系统的,而jvm却是实现了可以在不用的操作系统之上运行同样的字节码文件,以此来实现代码的可移植性,大家可以看一下编译原理,就知道了jvm运行代码的本质 ...
分类:
其他好文 时间:
2018-11-11 15:06:25
阅读次数:
240
javap是jdk自带的一个工具,可以对代码反编译,也可以查看java编译器生成的字节码。 一般情况下,很少有人使用javap对class文件进行反编译,因为有很多成熟的反编译工具可以使用,比如jad。但是,javap还可以查看java编译器为我们生成的字节码。通过它,可以对照源代码和字节码,从而了 ...
分类:
编程语言 时间:
2018-11-10 22:41:08
阅读次数:
245
1.Ideal中显示 2.各个阶段干嘛的? compile,编译命令,会在项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件 package,这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同 ...
分类:
其他好文 时间:
2018-11-10 00:13:03
阅读次数:
383
java字节码本质是java程序的格式化表示,便于机器处理。所以他是java程序的另一种表示,java程序包含的信息他都包含并且更加结构化。 java虚拟机字节码格式: magic 魔数,标识该文件是一个字节码文件。 minor_version major_version 字节码的版本号 const ...
分类:
编程语言 时间:
2018-11-08 16:12:00
阅读次数:
163
下载:https://pan.baidu.com/s/1Iw0pHxKqp2mKC9ksR5wfPQ 更多分享资料:https://www.cnblogs.com/javapythonstudy/ 《数据科学实战手册(R+Python)》中文PDF+英文PDF+源代码中文PDF,带书签目录,354页 ...
分类:
编程语言 时间:
2018-11-07 20:08:11
阅读次数:
427
Android中有哪几种ClassLoader?他们的作用是什么? 与 类似, 中也有相应的类加载机制,只是 加载的是 字节码文件.而Android中记载的是 字节码,继承自 抽象类有以下几种: ,是 的内部类,在系统启动时用来加载一些系统相关的类 ? 官方说明: 提供一个简单的 实现,用来操作文件 ...
分类:
移动开发 时间:
2018-11-07 11:25:30
阅读次数:
188
反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。 反射的好处:大大的增强了程序的扩展性。 反射的基本步骤: 1、获得Class对象,就是获取到指定的名称的字节 ...
分类:
其他好文 时间:
2018-10-29 19:53:02
阅读次数:
182
我们已经知道类体中的方法分为实例方法和类方法两种,用static修饰的是类方法。二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法。 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对 ...
分类:
编程语言 时间:
2018-10-21 16:01:10
阅读次数:
151
所谓的热部署:比如项目的热部署,就是在应用程序在不停止的情况下,实现新的部署 原理: 实用类加载器(classloader重新读取字节码文件到jvm内存) 如何纯手写一个热部署功能: 1、监听 class文件是否发生改变 版本号、修改时间 作对比 2、如果发生改变就用classloader进行重新读 ...
分类:
编程语言 时间:
2018-10-20 17:26:11
阅读次数:
184