java反射机制的实质,以及泛型的实质,还有对象动态生成以及避开编译过程生成对象的好处。
2016-08-07 23:07
375 查看
Java反射机制实质是主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。(说白了就是一个人从家出门走在大街上观察自己的形象是否良好,如果领带歪了用手整整领带,皮鞋脏了,拿纸蹲下把皮鞋擦干净,那个人可以检查自己本身的状态是否最得体,不得体就修改自身变得得体)
java 的泛型,只是编译时作为类型检查,一旦编译完成,泛型就会被擦除,在运行期间是得不到泛型的信息的,包括它的类型参数。有时候我们需要用到泛型的类型参数,反射看起来是取不到的,因反射在运行期间执行,但那时已无泛型的信息。(说白了就是你上台表演节目幕布拉开前你还在找棍子类型的道具(而不是球类的道具也不是方块类的,是棍子类型的道具),找道具这个行为就是编译检查泛型的过程,准确找到棍子类的道具,幕布拉开你上台了,观众是不会知道你有找道具这个过程,也就是你表演的时候,找道具这个过程已经消失。)
动态创建对象是在运行时完成的,而静态是在编译时完成的,动态创建的对象所占的内存可以回收,而静态不可以。
(说白了就是动态的比静态高级,运行时创建对象就绕过了编译器的检查,在运行过程中创建对象,觉得自己特别屌,用完还可以消失。)
java 的泛型,只是编译时作为类型检查,一旦编译完成,泛型就会被擦除,在运行期间是得不到泛型的信息的,包括它的类型参数。有时候我们需要用到泛型的类型参数,反射看起来是取不到的,因反射在运行期间执行,但那时已无泛型的信息。(说白了就是你上台表演节目幕布拉开前你还在找棍子类型的道具(而不是球类的道具也不是方块类的,是棍子类型的道具),找道具这个行为就是编译检查泛型的过程,准确找到棍子类的道具,幕布拉开你上台了,观众是不会知道你有找道具这个过程,也就是你表演的时候,找道具这个过程已经消失。)
动态创建对象是在运行时完成的,而静态是在编译时完成的,动态创建的对象所占的内存可以回收,而静态不可以。
(说白了就是动态的比静态高级,运行时创建对象就绕过了编译器的检查,在运行过程中创建对象,觉得自己特别屌,用完还可以消失。)
相关文章推荐
- Mac 通过命令行编译运行C代码 以及生成和调用静态库 以及Makefile实现过程
- 如何在SpringMVC框架中利用Java反射机制和Javassist实现Java对象、属性、注解的动态创建生成
- 动态生成SQL的存储过程,以及调用方法
- [置顶] 关于不同对象且属性名称也不一样的两个对象之间的复制以及动态对象生成
- JSP九大内置对象----以及jsp的编译过程--
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- java源码动态生成编译,以及方法调用
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- Asp.Net运行时对象生成过程以及HttpHandler和HttpModule的处理过程。
- 动态生成与编译(三)----写一个面向过程的程序
- 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】
- Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout
- Android学习笔记_31_通过后台代码生成View对象以及动态加载XML布局文件到LinearLayout
- 建立LINUX开发环境并编译LINUX和UBOOT以及生成设备树过程总结
- XML 对象反序列化也动态编译?
- 动态生成对象
- 基于JXL的通用Excel动态导出过程/可以在Servlet/JSP生成Excel并下载
- 使用CODEDOM动态实现代码的生成,编译
- ASP.NET动态加载用户控件的页面生成过程
- XML 对象反序列化也动态编译?