前言:当我们在类加载的时候,除了把.class文件加载到内存,会把各个类存到各个类模板(class类型)对象上,相同的类只有一个类模板对象。连接:把类的二进制数据合并到JRE中 反射运行时探究和使用编译时未知的类原理:JVM在加载一个类的时候,会把该类的信息存放到一个class对象中,该对象又称为类 ...
分类:
编程语言 时间:
2017-04-29 14:18:49
阅读次数:
143
反射机制是什么概念?大多都有介绍,指的是程序在运行状态中,能够加载一个只有类名的类,加载完之后会在堆上产生一个Class对象。通过这个 Class对象可以获得类的属性、方法和其他类信息。之前对反射的应用场景感到比较模糊,今天才发现自己原来不知不觉早已经在使用着它了。 说两个场景吧: 1. sprin ...
分类:
编程语言 时间:
2017-04-28 10:33:51
阅读次数:
219
synchronized实现同步的基础:java中每个对象都可以作为锁,如下: 对于普通同步方法,锁是当前实例对象 对于静态同步方法,锁是当前类的Class对象 对于同步方法块,锁是synchronized括号里配置的对象 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或者抛出异常时必须释放 ...
分类:
其他好文 时间:
2017-04-27 00:29:54
阅读次数:
160
一、类的加载 类的加载一共分为三步: 1、加载 就是将类加载进内存,并同时创建一个Class对象(就是描述一个 .class 文件的对象) 而且任何类被使用前都会先创建一个 Class对象 2、连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 ...
分类:
其他好文 时间:
2017-04-26 23:46:22
阅读次数:
281
一、getName 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 1、此类对象表示的是非数组类型的引用类型, 返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明 ...
分类:
其他好文 时间:
2017-04-26 23:01:24
阅读次数:
252
类 类是面向对象编程语言的一个重要概念,它是对一项事物的抽象概括,可以包含该事物的一些属性定义,以及操作属性的方法。面向对象编程中,我们都是以类来编码。 实例 简单理解,就是new,就是对类的实例化,创建这个类对应的实际对象,类只是对事物的描述,而实例化就相当于为这个描述新开辟了一块内存,可以改变这 ...
分类:
编程语言 时间:
2017-04-26 16:40:33
阅读次数:
161
这几天看公司一个中间件对异步的支持的新特性中,它使用注解处理器来自动生成异步接口。就看了下如何使用注解及编译期注解处理器,一下是些学习笔记吧! 此处说的Java注解及注解处理器,不是运行期注解及使用Class对象和反射来处理的处理器!而是编译期处理的源文件注解(RetentionPolicy.SOU ...
分类:
编程语言 时间:
2017-04-24 00:10:52
阅读次数:
172
一、引言 很多时候我们的程序可能需要在运行时识别对象和类的信息,比如多态就是基于运行时环境进行动态判断实际引用的对象。在运行时识别对象和类的信息主要有两种方式:1.RTTI,具体是Class对象,它假定我们在编译时已经知道了所有类型。2.反射机制,运行我们在运行时发现和使用类的信息。 二、RTTI ...
分类:
编程语言 时间:
2017-04-21 22:52:53
阅读次数:
289
1:什么是反射机制? 2:反射机制它可以做什么呢? 3:反射机制对应的API又是什么? 1):通过反射机制来获取一个对象的全限定名称(完整包名),和类名; 2):实例化Class对象 3):获取对象的父类与实现的接口 4):获取类中的所有的方法或者单个方法 5):使用反射调用方法 && 使用反射调用 ...
分类:
编程语言 时间:
2017-04-21 19:10:05
阅读次数:
189
反射 通过反射的方式Class.forName(“com.ahu.Person”)可以获取class对象的实例以及其中的属性、方法、构造函数等 动态代理 动态代理:在不修改原业务的基础上,基于原业务方法,进行重新的扩展,实现新的业务。 例子: 1、 旧业务 买家调用action,购买衣服,衣服在数据 ...
分类:
编程语言 时间:
2017-04-20 16:59:51
阅读次数:
209