想必大家在安装javaSE或其它版本时会注意到,在配置环境变量path之后,还需要新建一个名为CLASSPATH,变量值设为 它有什么用呢? 原来CLASSPATH的目的是定义类的加载路径,通知JVM去哪里可以找到将要执行的Java程序对应的class文件以及程序中引用的其它class文件。 再看看 ...
分类:
编程语言 时间:
2017-07-29 12:57:18
阅读次数:
181
1、触发类加载的原因(主动调用与被动调用): 六种主动调用: 1)、创建类的实例(new操作、反射、cloning、反序列化) 2)、调用类的静态方法 3)、使用或对类/接口的static属性赋值(不包括static final的与在编译期确定的常量表达式(包括常量、字符串常量)) 4)、调用API ...
分类:
编程语言 时间:
2017-07-29 01:00:09
阅读次数:
202
一、类加载器1、什么是类加载器类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。完成类加载的家伙就是类加载器。2、都有哪些类加载器ClassLoaderloader=..
分类:
其他好文 时间:
2017-07-25 15:46:09
阅读次数:
136
Java中的class.forName和classLoader都可以用来对类的加载。 class.forName除了把类加载到JVM中,还会对类进行解释,执行类的static代码块; classLoader只是把类加载到JVM中,只有在调用newInstance的时候才会去执行static代码块; ...
分类:
编程语言 时间:
2017-07-24 13:03:25
阅读次数:
146
前些天线上除出了个OOM问题,今天闲下来记录下: OOM的提示信息是-PermGen space,说明问题出在方法区,方法区存的是什么东西?:类的加载信息、常量、静态变量。 按照方法区的定义:类加载的多了?常量、静态变量定义的多了? 我们项目中使用了Dubbo,大家知道因为Dubbo是通过动态代理的 ...
分类:
其他好文 时间:
2017-07-23 19:48:25
阅读次数:
207
在类的加载过程中的解析阶段,Java虚拟机会把类的二进制数据中的符号引用 替换为 直接引用,如Worker类中一个方法: 在Worker类的二进制数据中,包含了一个对Car类的run()方法的符号引用,它由run()方法的全名 和 相关描述符组成。在解析阶段,Java虚拟机会把这个符号引用替换为一个 ...
分类:
编程语言 时间:
2017-07-23 10:00:55
阅读次数:
215
类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化。 加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。 链接指的是将Java类的二进制代码合并到JVM的运行状 ...
分类:
编程语言 时间:
2017-07-21 10:18:52
阅读次数:
177
额,马上就要面试了,Java的底层肯定是需要了解的。网上找了找java的底层文章,做个记号。java底层主要是类的加载、连接和初始化。 本文主要分为四个方面: (1)java底层概述 (2)new和newInstance()方法的区别 (3)深入探讨java的加载机制 (4)一个完整java程序冲J ...
分类:
编程语言 时间:
2017-07-19 23:33:10
阅读次数:
270
Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载 器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类 加载器加载的类。 ...
分类:
编程语言 时间:
2017-07-19 23:28:42
阅读次数:
262
■ static修饰符与final修饰符: ★ static修饰符: 1. 修饰的对象: 类中的成员(属性[静态变量或类变量]和方法[静态方法或类方法]) 2. 静态属性的特点: 1. 静态变量被所有对象共享 2. 随着类的加载而加载,随着类的消失而消失,和对象的创建无关 3. 可以直接被类名调用 ...
分类:
其他好文 时间:
2017-07-16 21:25:21
阅读次数:
189