java高级之反射
一 反射(类的加载概述和加载时机)
A:类的加载概述
当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。...
分类:
编程语言 时间:
2016-08-25 21:34:07
阅读次数:
255
一、JVM的启动和终止 当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动的所有线程,所有变量都处于该Java虚拟机进程里,它们都使用该JVM进程的内存区。当系统出现以下几种情况时,JVM进程将被终止。 二、类的加载、连接和初 ...
分类:
其他好文 时间:
2016-08-22 23:06:57
阅读次数:
117
转载:http://blog.csdn.net/iloveyin/article/details/7965183 1、类的加载方式不同 在执行Class.forName("a.class.Name")时,JVM会在classapth中去找对应的类并加载,这时JVM会执行该类的静态代码段。在使用new ...
app登陆验证不能使用session来判断了。然后查资料都说用令牌,没找到合适的方法,我的眼界太小。另外,越来越感觉基础的重要,比如,session是什么,我竟无言以对。不知道session是什么,怎么来做验证呢。然后就关于类的加载和销毁,等。我需要重新看下java基础了。 这里,我定义了一个tok ...
分类:
移动开发 时间:
2016-08-14 15:56:37
阅读次数:
266
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中验证、准备、解析3个部分统称为连接。类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。 加载、验证、准备、初始化和卸载这5个阶段的顺序时确定的,类的加载过程必须按照这 ...
分类:
编程语言 时间:
2016-08-14 07:41:17
阅读次数:
277
类的加载是由类加载器完成的,类加载器包括: 根加载器( BootStrap )、扩展加载器( Extension )、系统加载器( System )和用户自定义类加载器( java.lang.ClassLoader 的子类)。 从 Java 2 ( JDK 1.2 )开始,类加载过程采取了父亲委托机 ...
分类:
编程语言 时间:
2016-08-08 19:07:12
阅读次数:
128
(1)在静态方法中是没有this关键字的 静态是随着类的加载而加载,this是随着对象的创建而存在。 静态比对象先存在。 (2)静态方法只能访问静态的成员变量和静态的成员方法 静态方法: 成员变量:只能访问静态变量 成员方法:只能访问静态成员方法 非静态方法: 成员变量:可以是静态的,也可以是非静态 ...
分类:
其他好文 时间:
2016-07-08 21:44:55
阅读次数:
126
前言
在许多传统语言中,程序是作为启动过程的一部分立刻被加载的。然后是初始化,紧接着程序开始运行。这些语言的初始化过程必须小心控制,以确保定义为static的东西,其初始化顺序不会造成麻烦。例如C++中,如果某个static期望另一个static在被初始化之前就能有效地使用它,那么就会出现问题。
Java就不会出现这个问题,因为它采用了一种不同的加载方式。加...
分类:
其他好文 时间:
2016-07-06 15:06:25
阅读次数:
102
前言
在许多传统语言中,程序是作为启动过程的一部分立刻被加载的。然后是初始化,紧接着程序开始运行。这些语言的初始化过程必须小心控制,以确保定义为static的东西,其初始化顺序不会造成麻烦。例如C++中,如果某个static期望另一个static在被初始化之前就能有效地使用它,那么就会出现问题。
Java就不会出现这个问题,因为它采用了一种不同的加载方式。加...
分类:
其他好文 时间:
2016-07-06 15:03:10
阅读次数:
153
Launcher也是一个普通的应用程序,只不过在主入口中加入>属性,这样在开机启动后,就会首先找到这个应用,第一个加载。
那分析Launcher的加载流程时,也可以按照一般的应用来分析就行了。
一、Application类的加载
如果应用继承了Application类,那么该应用启动时就会首先执行继承了Application的类的onCreate()...
分类:
其他好文 时间:
2016-07-01 16:25:18
阅读次数:
168