深入理解Class对象 RRIT及Class对象的概念 RRIT(Run-Time Type Identification)运行时类型识别.在<Thinking in Java>一书第十四章中有提到,它的功能是在运行时识别对象的类型和类信息.有两种主要方式:“传统的”RTTI(它假定我们在编译时已经知道所有类型)和“反射”机制(它允许我们在运行时发现和使用类信息). 类是程序的一部分,每个类都有一个类对象.换句话说,无论何时编写和编译新类,都会生成一个Class对象(更恰当地说,保存在相同名称…
一 RTTI概念 认识Claa对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一直是 C++ 中的概念,至于Java中出现RTTI的说法则是源于<Thinking in Java>一书,其作用是在运行时识别一个对象的类型和类的信息,这里分两种: 传统的”RTTI”:它假定我们在编译期已知道了所有类型(在没有反射机制创建和使用类对象时,一般都是编译期已确定其类型,如new对象时该类必须已定义好): 反射机制,它允许我们在运…
java  基础知识九  类与对象 1.OO(Object–Oriented )面向对象,OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,Object Oriented是建立在"对象"概念基础上的方法学 OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构. O…
package com.java.map.test; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class Map…
类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是不是java类,这正是BootStrap. Java虚拟机中的所有类装载器采用具有父子关系的树形结构进行组织,在实例化每个类装载器对象时,需要为其指定一个父级类装载器对象或者默认采用系统类装载器为其父级类加载. …
一.反射是个啥 定义 : 在运行状态中动态获取的类的信息以及动态调用对象的方法,这种功能称为java语言的反射机制. 对于任意一个类,都能够知道这个类的所有属性和方法. 对于任意一个对象,都能够调用它的任意一个方法和属性. 二.Class对象 定义 : 我们在开发过程中,创建的每一个类也是对象,即类本身是java.lang.Class类的实例对象,我们称这个实例对象为类对象,也就是Class对象. 学习反射前我们先要了解类对象有什么用: Class 类的实例对象表示正在运行的 Java 应用程序…
Java反射机制 一.什么是反射? 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制.通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以. 想要使用反射机制,就必须要先获取到该类的字节码文件对象(.class),通过字节码文件对象,就能够通过该类中的方法获取到我们想要的所有信息(方法,属性,类名,父类名,实现的…
/// <summary> /// 采用反射机制对对对象属性赋值 /// </summary> /// <param name="node"></param> /// <param name="P"></param> public static void ReflexValue(XmlNode Nodes, object obj) { XmlNodeList nodeList = Nodes.C…
1.Class对象的三种创建方法(Class首字母大写) public class Demo { public static void main(String[] args){ Object obj=new Object();//方法一:先new对象,再调用方法,创建Class对象c1 Class c1=obj.getClass(); Class c2=Object.class;//方法二:使用.class属性,无需new对象,直接创建Class对象c2 try { //方法三(推荐):调用Cl…
闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例. 问题:指定列把数据库数据根据列导出到Excel里. 那么要处理这个问题,它其实是很简单的,但是再简单的问题,也需要去拆分,思考,所谓,麻雀虽小,五脏俱全嘛. 拆分:1. Load DB data; 2. 把数据和指定列映射起来:3. 导出数据到Excel. 本文把第一步操作省略了,第一步操作就是…