java 运行时识别 RTTI

简介:
       运行时类型识别(run-time type identification ,RTTI)的概念上看非常简单:当只有一个指向对象基类的引用时RTTI机制可以让你找到这个对象的确切概念。
       Class是RTTI的核心。类是程序的一部分,每个类都有一个Class对象,每当编写并且编译一个新类,就会产生一个Class对象(被保存在一个同名的.class文件中)。为了生成Class对象,运行这个程序的JVM,"类加载器"的子系统。
      类加载器子系统实际上可以包含一条类加载器链,但是只有一个原生类加载器。(why)。原生类加载器加载饿时所谓的可信类,包括JAVA API类,他们通常是从本地磁盘加载的。
     所有的类,都是在第一次使用时,第一次加载到JVM中的。当程序创建第一个对类的静态成员的引用时,就会加载类,(构造方法也是累的静态方法)。因此,new 一个对象,也会被当做对类的静态成员的引用。
 
     JAVA 程序在运行之前,并非完全加载,其各个部分都是在需要时才加载的。
 
   类加载器首先检查这个类的Class 对象是否已经加载,如果尚未加载,默认的类加载器就会根据类名查找.class文件




本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/223863,如需转载请自行联系原作者
相关文章
|
3月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现的学生选课管理系统(源码+数据库+运行指导视频)
基于Java swing和mysql实现的学生选课管理系统(源码+数据库+运行指导视频)
|
3月前
|
Java 关系型数据库 MySQL
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
基于java swing和mysql实现的仓库商品管理系统(源码+数据库+运行指导视频)
|
3月前
|
Java 编译器
运行Java
本篇介绍了java程序的运行原理,包括javac和java两个命令的作用。javac :负责编译,当执行 javac 时,会启动 java 的编译器程序。对指定扩展名的 .java 文件进行编译。生成了jvm可以识别的字节码文件。java: 用来执行class字节码文件(即运行java程序)。
57 1
运行Java
|
3月前
|
NoSQL Java 关系型数据库
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
|
3月前
|
NoSQL Java 关系型数据库
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
|
12天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
11 1
|
25天前
|
Java Maven Spring
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
SpringBoot运行出现 Lookup method resolution failed; nested exception is java.lang.IllegalStateException
33 0
|
27天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
13 0
|
1月前
|
存储 Java Maven
Java能这么轻松识别二维码
Java能这么轻松识别二维码
81 1
|
2月前
|
文字识别 Java
Java使用Tess4j识别图片里的文字
Java使用Tess4j识别图片里的文字