java之RTTI和反射的理解
最近在读 Thinking in Java 这本书。读到类型信息这一张时,刚开始对书中所说的RTTI和反射彻底混了,不知道有什么联系,有哪些相同点和区别。于是在网上又找了些内容辅助理解,这一章又重新读了一遍,对上面的这些疑问有了自己的答案,想到RTTI和反射时,脑海中有了自己的轮廓。
它俩的目的一样:
在运行时,识别对象和类的信息。
相同点:
目的相同;
功能都是通过Class类来实现的
不同点:
RTTI:(主要作用在多态中,比如参数传递) 它假定我们在编译时已经知道所有类型,会打开和检查所有.class文件。比如:在多态参数传递中,会打开和检查基类及派生类。
反射: .class在编译时不可获取,所以是在 运行时打开和检查.class文件。
名词解释:
RTTI:Runtime Type Identification,运行时类型识别。
Class:类的类;类类型;class type;比如一个对象Dog dog ,[Dog.class,dog.getClass(),Class.forName(Dog)]都是Class类型的对象。作用:之一吧,对象的类型信息在运行时是如何表示的,是通过Class的特殊对象。
java之RTTI和反射的理解的更多相关文章
- java的RTTI和反射机制
RTTI,即Run-Time Type Identification,运行时类型识别.RTTI能在运行时就能够自动识别每个编译时已知的类型. 很多时候需要进行向上转型,比如Base类派生出Derive ...
- Java系列笔记(2) - Java RTTI和反射机制
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...
- 浅析Java RTTI 和 反射的概念
一.概念: RTTI(Run-Time Type Identification,运行时类型识别)的含义就是在运行时识别一个对象的类型,其对应的类是Class对象,怎么理解这个Class对象呢?如果说类 ...
- Java类型信息(RTTI和反射)
要想在IT领域站得住脚,必须得不断地学习来强化自己,但是学过的技术不实践很容易便被遗忘,所以一直都打算开个博客,来记录自己学的知识,另外也可以分享给有需要的人! 最近在学习反射,为了更好地理解反射,就 ...
- 【Java基础】RTTI与反射之Java
一.引言 很多时候我们的程序可能需要在运行时识别对象和类的信息,比如多态就是基于运行时环境进行动态判断实际引用的对象.在运行时识别对象和类的信息主要有两种方式:1.RTTI,具体是Class对象,它假 ...
- Java RTTI和反射
一.Java的RTTI RTTI(Run-Time Type Identification,通过运行时类型识别)的含义就是在运行时识别一个对象的类型,其对应的类是Class对象,每个java里面的类 ...
- Java反射的理解(六)-- 通过反射了解集合泛型的本质
Java反射的理解(六)-- 通过反射了解集合泛型的本质 上述写了那么多,我们可能会有个疑问,为什么要用反射,步骤比我们常规的加载类操作复杂多了,别急,这个问题我最后才解答,我们先来了解集合泛型的本质 ...
- 对于java反射的理解
java中的反射是一种强大的工具,它能够创建灵活的代码,这些代码可以在运行时装配,无序在组件之间进行链接. 反射允许在编写与执行时,使程序代码能够接入装载到JVM的类的内部信息,而不是源代码中选定的类 ...
- Java反射的理解
反射的作用: 1.运行时检查类的结构 2.运行时更改类的字段值 3.调用类的方法 准备知识: Class类:虚拟机为每一个对象保存的一份对象所属类的清单: static Class for ...
随机推荐
- Nginx基础知识之————日志管理
一.Server段,可以看到如下类似信息 #access_log logs/host.access.log main; 说明该server, 它的访问日志的文件是 logs/host.access. ...
- Doragon Kuesuto 1.6
/* * <<D Q>> * * Author xkfx<wyzxk_fx@163.com> * * 游戏规则:利用适当的决策,在13回合内击杀恶龙取得胜利. * ...
- [转载] LinkedIn架构这十年
原文: http://colobu.com/2015/07/24/brief-history-scaling-linkedin/ 原文: A Brief History of Scaling Link ...
- gdufs 1237 最优分解问题
题目链接:http://cstfs.gdufs.edu.cn:8080/JudgeOnline/problem.jsp?id=1237 (好像是内网的0.0) 简单来说,这道题目就是把一个数分解为若干 ...
- jpeg了解
JPEG是一个压缩标准,又可分为标准 JPEG.渐进式JPEG及JPEG2000三种: ①标准JPEG:以24位颜色存储单个光栅图像,是与平台无关的格式,支持最高级 别的压缩,不过,这种压缩是有损耗的 ...
- json方法
http://penghuaiyi.iteye.com/blog/1922632 package com.yd.web.util; import java.lang.reflect.Type; imp ...
- Lua a and b or c
lua中nil和false为条件不成立,其余都为条件成立. a and b : a条件不成立,则返回a,否则,返回b a or c : a条件成立,则返回a,否则,返回b 常用x = x or v ...
- js中正则表达式 书写方法
function test(){ var text="index.aspx?test=1&ww=2&www=3"; var re = ...
- oracel数据库基本知识和基本查询方法
Oracel数据库学习1.小型数据库 access,foxbase 中型数据库 mysql,sqlserver,informix 大型数据库 sybase,Oracle,db2 Oracle数据库需求 ...
- linux笔记:文件处理命令touch,cat,more,less,head,tail
命令名称:touch功能:新建文件命令所在目录:/bin/touch用法:touch 文件名 命令名称:cat功能:显示文件内容命令所在目录:/bin/cat用法:cat [-n] 文件名参数:-n ...