黑马程序员技术交流社区

标题: [武汉校区]老学员技术沙龙第四届_注解与反射 [打印本页]

作者: 曹老师    时间: 2016-7-26 14:40
标题: [武汉校区]老学员技术沙龙第四届_注解与反射
老学员技术沙龙第四届_注解与反射原理


时间:2016年07月24日(下午:15:00)
地点:传智播客武汉金融港校区(光谷大道-金融港B15栋-2层)
事件:黑马程序员老学员技术交流会
主讲人:传智_天元
主讲内容:注解是什么?
                在项目当中使用注解的好处
                反射机制
                ……

        2016年07月24日,下午15:00,传智播客武汉分校第四届老学员技术交流会在金融港校区正式开始,尽管今天的武汉天气非常的炎热,也还是阻止不了老学员对知识的渴望。

主讲嘉宾:
              主讲嘉宾:天元(外号)
              经历介绍:多年开发经验,先后担任高级软件工程师、技术总监、项目经理,负责Android应用的开发和维护。曾负责开发大型警用业务系统、基于Arcgis的地理要素采集系统。、交通要素采集系统,熟悉Android系统架构,精通Android自定义控件,多媒体应用开发;

Java当中注解技术:
       注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明和注释。
以上的图片是对注解做出的详细介绍和使用方法,其中我们需要熟练掌握的地方是:系统注解、注解元素数据类型、提取注解;

在场的老学员们,是不是get到了很多曾经没有关注到的细节呢,听的特别入迷,瞬间让自己又涨了很多的知识了。

在项目当中使用注解的好处:

       好处1:编译期间容易发现错误的出处
              在项目当中,代码非常的多,需要继承,实现的地方也非常的多,而这就少不了方法的重写工作,其中也少不了代码写错,方法名写错等小错误,通过系统重写的注解,就能很容易的避免这个小问题,将这个细节小问题扼杀在摇篮当中,相信很多的兄弟都能碰见一个红色的波浪线这个错误,这个提示就是警告你:哥们,你的代码单词写错了,需要改进。
      
       好处2:遵循OCP开发原则,修改配置文件即可进行功能扩展
              首先,我们来科普一下什么是OCP:OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的Active X)、COM(部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
              听了上面的高大上的解释,在我这就一句话:自动化标准控制模式,先制定标准,再使用这套标准,就好比打电话的时候我们不能发短信的道理一样,而我们需要发短信,那么就需要把打电话的标准换成发短信,则就能实现。这就是我们说的好处2,方便功能扩展,我们只需要添加标准或者修改标准,就能实现不同的功能。
      
        好处3: 开发速度快

              我们知道,目前很多的开源框架很多都使用了注解功能,比如我们最常见的:XUtils框架,其中的ViewUtils这个功能就是使用注解原理来实现布局与控件的查询添加功能,而开源的框架无非就是加快我们开发的速度。
看着大家的状态,没听懂就上代码和效果,更直观的了解项目当中的使用详细场景和以上说的知识点如何真实使用。

反射原理:
       Java中反射机制使用的还是比较广泛的,系统的灵活性、可扩展性大都都是通过反射等方式来加载外部插件,使得系统与插件解耦的同时,增加了功能。但是很多人都只是会用,却是不知道它的实现机制,今天就由我来带大家揭开反射机制的神秘面纱。
       简单的来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。如果知道一个类的名称/或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。
       尽管Java不是一种动态语言,但它却有一个非常突出的动态机制:Reflection。它使我们可以于运行时加载、探知、使用编译期间完全未知的 classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。既一种“看透class”的能力。
       当然,在平时的编程中,反射基本用不到,但是在编写框架的时候,反射用的就多了,比如你要使用某一个类进行操作,但是这个类是用户通过配置文件配置进来的,你需要先读配置文件,然后拿到这个类的全类名:比如test.Person,然后在利用反射API来完成相应的操作。

反射的优缺点:
       反射的优点当然是体现在它的动态性上面,能运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,降低类之间的藕合性。 一句话,反射机制的优点就是可以实现动态创建对象和编译,特别是在J2EE的开发中,它的灵活性就表现的十分明显。比如,一个大型的软件,不可能一次就把 它设计的很完美,当这个程序编译后,发布了,当发现需要更新某些功能时,我们不可能要用户把以前的卸载,再重新安装新的版本,假如这样的话,这个软件肯定是没有多少人用的。采用静态的话,需要把整个程序重新编译一次才可以实现功能的更新,而采用反射机制的话,它就可以不用卸载,只需要在运行时才动态的创建 和编译,就可以实现该功能。
它的缺点是对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。

We Are 伐木累:
       活动的最后,当然还有最重要的事情,分享活动当中的所有资料,包括源码,献给那些在一线城市无法赶回和周末仍然在努力加班的兄弟,本活动每月固定至少举办一次,如果你也想亲临现场参加,传智播客武汉校区欢迎你的到来。

活动提前看:
       2016年08月28日。老学员活动,分享技术:地图开发,针对目前市场需求,越来越多的公司从事地图开发,比如停车位类型的APP崛起,欢迎你的到来。

资料下载:
                  下载地址:http://pan.baidu.com/s/1c2sQlMC 密码:










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2