类加载机制与反射

JVM和类

当调用java命令来运行某个Java程序时,该命令会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都处于该java虚拟机进程里。

正如刚所说,同一个JVM所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。

当出现下面几种情况时,JVM进程将被终止:

  1.程序运行到最后正常结束。

  2.程序运行到使用

时间: 2024-09-28 20:59:57

类加载机制与反射的相关文章

深入理解Java:类加载机制及反射

一.Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能. 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 2.工作机制 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示

类加载机制及反射

http://www.cnblogs.com/ITtangtang/p/3978102.html 一.Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能. 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这

Java类加载机制与反射 jvm学习

同一个JVM的有线程.所有变量都处于同一个进程里,他们都使用JVM进程的内存区.当系统出现以下几种情况时JVM进程将被终止: 1.程序运行到最后正常结束 2.程序运行到使用System.exit()或Runtime.getRuntime().exit)代码处结束程序. 3.程序执行过程中遇到未捕获的异常或错误而结束. 4.程序所在平台强制结束了JVM进程 注意两次运行java程序,处于两个不同的JVM他们不共享内存. 类的加载 1.当程序主动使用某个类时,如果该类还未加载到内存中,则系统会通过加

Java:类加载机制及反射

一.Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能. 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 2.工作机制 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示

Java核心技术梳理-类加载机制与反射

一.引言 反射机制是一个非常好用的机制,C#和Java中都有反射,反射机制简单来说就是在程序运行状态时,对于任意一个类,能够知道这个类的所有属性和方法,对于任意一个对象,能够调用它的任意属性和方法,其实初听就知道反射是一个比较暴力的机制,它可能会破坏封装性. 通过反射的定义我们可以想到反射的好处:可以灵活的编写代码,代码可以在运行时装配,降低代码的耦合度,动态代理的实现也离不开反射. 为了更好的理解反射,我们先了解下JVM中的类加载机制. 二.类加载机制 当程序要使用某个类时,如果这个类还未加载

Java中类加载机制和反射技术

我们知道一个对象在运行时有两种类型,一个是编译类型,一个是运行时类型.在程序运行时,往往是需要发现类和对象的真实的信息的.那么如何获的这种信息呢? 其一,如果我们在编译和运行时都知道类型的具体信息,这时是可以手动将一个对象转换为运行时的类型. 其二,如果我们在编译时无法预知对象和类到底是属于哪些类,那么程序只有依靠运行时的信息来发现对象和类的真实的信息了,这时就必须要用到反射技术. 在谈具体的发射技术之前,我想先回顾下,有关类的加载的一些基本的性质和原理,以方便我们更好地理解,反射的作用和特点.

黑马程序员-类加载机制和反射。

------- android培训.java培训.期待与您交流! ---------- Class类 JAVA程序中的类属于同一个事物,描述这类事物的类就叫Class 一个类被加载到内存当中,占用一片存储空间,这个空间里面的内容就该类字节码,不同的类的字节码是不同的,所以他们在内存中的内容也是不相同的,这一个个空间可以分别咏鹅一个个对象来表示,这些对象. 但是我们可以总结出,这些对象也会有相同的类型,这个类型就是Class类 基本的 Java 类型(boolean.byte.char.short

类加载机制与反射(二)

1.使用反射生成并操作对象 通过反射来生成对象有如下两种方式: 使用Class对象的newInstance()方法来创建该Class对象对应类的实例,这种方式要求改Class对象的对应类有默认构造器,而执行newInstance()方法时实际上是利用默认构造器来创建该类的实例: 先使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建该Class对象对应类的实例.通过这种方式可以选择使用指定的构造器来创建实例. import

类加载机制与反射——2017.08.09

一 程序.进程.线程的区别? 打个比方:你从中国到美国坐飞机,飞机这个静态事物就是程序,从中国到美国做飞机这个过程就是进程,诸如登机.带安全面罩等等就是线程. 进程与程序的区别:进程是处于运行过程中的程序.程序是一个静态的指令集合,进程是一个动态的指令集合 二 类的初始化 程序主动使用某个类时.如果该类没有加载到内存中,系统会通过加载.连接.初始化三个步骤来对该类进行初始化.JVM在一般情况下会一次性完成这三个步骤,统称类加载或类初始化. 类加载指的是讲类的class文件读入内存,并为之创建一个