连咸鱼都能学会的Java反射
来源:互联网 发布:声波透射法数据分析 编辑:程序博客网 时间:2024/04/30 05:10
我们这期来简单讲讲Java反射的原理,优点和缺点
经过我看过大量的有关反射的博客、资料,
首先我简单的概括下Java反射原理:
在程序运行过程中,对于任意一个类、对象,都能知道其属性和方法
优点:
能大大的提高系统的灵活性、扩展性
因为存在这样的情况,我们在编程时,可能会引用到一个不在当前编译环境的类,这时候我们用反射,就能知道该类里的任何方法、成员变量,可以将其实例化为一个对象,然后调用其方法进行继续的编程
缺点:
性能损耗:因为反射包含了一些动态类型,JVM无法对其进行优化,运用了反射的操作其效率要大大低于没有用反射的操作,所以要做好取舍,避免在频繁使用的程序中运用反射操作。
破坏封装性:因为反射能随意调用一些类里不被允许的操作(如调用私有方法),可能造成一些错误,增加了代码中的耦合性。
安全限制:反射必须基于安全的环境下调用
这里简单说下在代码中怎么实现反射:
首先定义一个类,如下图的SaveAndConfirmAction
然后编写一个用于测试反射的小程序:
结果:
我们可以看到getDeclaredMethods()返回的则是在类自身声明的所有方法,包括复写的方法。
当然,Java还有其他的API能获取该类的方法、成员变量等等,在这我就不一一展示了,可以参考我下面的链接,他们有详细的讲解这些API
http://blog.csdn.net/xiaohanluo/article/details/52034127
http://blog.csdn.net/u012721013/article/details/51833626
我想说的是,反射这个小火球魔法我们只要了解就行,他的进阶魔法爆裂火球--动态代理,才是我们要掌握的,这个我会在下期博客详讲
最后,祝各位麻瓜们早日进阶,掌握更多美轮美奂的魔法。
- 连咸鱼都能学会的Java反射
- 连咸鱼都能学会的Java动态代理
- 连咸鱼都能学会的Java多线程实现
- 连咸鱼都能学会的Java多线程同步实现
- 连咸鱼都能学会的Java异步处理
- 连咸鱼都能学会的安装tomcat、修改端口
- 连咸鱼都能学会的Java多线程中的内存模型
- 连咸鱼都能学会的Zookeeper注册中心的搭建
- 连咸鱼都能学会的dubbo-admin管理平台搭建
- 连咸鱼都能学会的Dubbo分布式服务框架入门(附工程)
- MySQL数据库的增删改查--连咸鱼都能学会
- 解决“Dynamic Web Module 3.0 requires Java 1.6 or newer.”而不影响tomcat 8.0--连咸鱼都能学会
- MySQL数据库从下载到启动详解--连咸鱼都能学会
- Java-->反射的用法(新手都能入门)
- 人人都能学会程序设计9多语境的操作
- toast连view都能打印出来
- 编程ING:人人都能学会程序设计
- 编程ING人人都能学会程序设计
- 【找规律】【一套NOIP膜你赛】膜拜azui
- tomcat部署多个web项目
- ubuntu 安装apache和httpd服务器
- POJ 1595(Prime Cuts) 素数筛法+模拟 Java
- Flume-NG源码阅读之SpoolDirectorySource
- 连咸鱼都能学会的Java反射
- Linux系统下mysql数据库导出scv格式数据
- Git命令参考手册(文本版)
- 多人共同使用一个github的仓库,实现版本管理,多人开发一个项目
- ZooKeeper学习第一期---Zookeeper简单介绍
- 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出
- ioctl() FIONREAD
- 一提开发满脸泪,不如尬评来赢书 | 张开涛亲笔签名
- final、finally和finalize的区别