所谓的无关性:
我们一直在强调Java的平台无关性,所谓的一次编写,到处运行。
那么究竟是什么造就了这种平台无关性,那就是Class文件,我们注意到编译完java文件后,会产生一个Class文件,而这些Class文件在各种虚拟机中的有相同的存储格式—–字节码。
除了平台无关性,Java语言还引申出来一个语言无关性。也就是说Java虚拟机是与Class这种特定格式的文件格式关联,所以就说明无论哪...
分类:
其他好文 时间:
2015-08-06 02:05:53
阅读次数:
1193
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。在java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,这会令类加载时稍微增加一些性能开销,但是会为java应用程序提供高度的灵活...
分类:
其他好文 时间:
2015-07-31 14:38:22
阅读次数:
129
一、什么是ClassLoader?
大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在的,则会引发系统异...
分类:
编程语言 时间:
2015-07-29 10:24:38
阅读次数:
253
Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。
在加载阶段,java虚拟机需要完成以下3件事:
a.通过一个类的全限定名来获取定义此类的二进制字节流。
b.将定义类的二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构。
c.在java堆中生成一个代表该类的java.l...
分类:
编程语言 时间:
2015-07-28 10:59:45
阅读次数:
110
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的JAVA类型,这就是虚拟机的类加载机制。类加载的生命周期包括:加载Loading,验证Verification,准备Preparation,解析Resolution,初始化Initial...
分类:
其他好文 时间:
2015-07-26 19:02:03
阅读次数:
100
引言 ? ? 我们知道java代码编译后生成的是字节码,那虚拟机是如何加载这些class字节码文件的呢?加载之后又是如何进行方法调用的呢? 一 类文件结构 ? ? 无关性基石 ? ? java有一个口号叫做一次编写,到处运...
分类:
编程语言 时间:
2015-07-26 12:52:36
阅读次数:
192
作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell在介绍Android的类加载机制之前,我们需要先了解一下Java的类加载机制。【Java 安全技术探索之路系列:J2SE安全架构】之五:类加载器Android的类加载器主要有两个PathClassLo...
分类:
移动开发 时间:
2015-07-14 18:05:32
阅读次数:
244
1.JVM内存模型2.JVM类加载机制 3.HDFS架构图 4.HDFS读写数据 5.Secondary NameNode 的意义所在6.MapReduce架构7.MapReduce过程7...
分类:
编程语言 时间:
2015-07-11 21:19:14
阅读次数:
187
调优工具,参数调优内存布局,内存溢出异常垃圾回收器和算法,内存分配策略类加载机制,类文件结构,运行时栈帧编译器优化,运行期优化线程,Java内存模型线程安全,锁优化
分类:
其他好文 时间:
2015-07-08 20:55:49
阅读次数:
111
在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别? 用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展,可重用等软件思想上解释了。Java中工厂模式经常使用n....