当前位置: 首页 > news >正文

做网站的公司成都百度搜索平台

做网站的公司成都,百度搜索平台,做家教网站要多少钱,长春seo招聘一.反射 1.概念:Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么&am…

一.反射

1.概念:Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制 。

2.反射的相关的类:

3.class类代表类的实体,在运行的Java应用程序中表示类和接口 。Java文件被编译后,生成了.class文件,JVM此时就要去解读.class文件 ,被编译后的Java文件.class也被JVM解析为一个对象,这个对象就是 java.lang.Class .这样当程序在运行时,每个java文件就最终变成了Class类对象的一个实例。我们通过Java的反射机制应用到这个实例,就可以去获得甚至去添加改变这个类的属性和动作,使得这个类成为一个动态的类 。

4.class类中的相关方法:

1.2.反射示例

1.获取class对象的三种方式:在反射之前,我们需要做的第一步就是先拿到当前需要反射的类的Class对象,然后通过Class对象的核心方法,达到反射的目的,即:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息 。

2.第一种:使用 Class.forName("类的全路径名"); 静态方法。 (常用)

3.第二种方法:使用 .class 方法:

4.第三种方法:使用类对象的 getClass() 方法 :

5.以上三种方法是等价的,得出的结论是:一个类在JVM中只会有一个Class实例(对象)

1.3.反射的使用:

1.通过反射进行创建对象:

3.通过反射来调用private修饰的构造方法(Constructor<Student> constructor =(Constructor<Student>)c1.getDeclaredConstructor(String.class,int.class) 这个语句是先获取指定的私有构造方法,Student student = constructor.newInstance("caocao",15);是使用刚刚获取的私有构造方法,但是在这之前先需要打开这个私有方法的权限,constructor.setAccessible(true);通过这个语句来打开私有方法的权限):

4.通过反射调用私有的字段(Constructor<Student> constructor =(Constructor<Student>)c1.getDeclaredConstructor();获取对应的构造方法无论他的访问修饰限定符是什么都会被获取。Student student = constructor.newInstance();调用刚刚获取的没有参数的构造方法。Field field = c1.getDeclaredField("name");再通过这个语句获取私有的成员变量,field.setAccessible(true);在通过这个语句打开访问权限,field.set(student,"zhangsan");再通过这个语句修改私有成员变量):

5.通过反射调用私有的成员方法(前面的步骤都是一样的,获取指定的构造方法,使用构造方法,Method method = c1.getDeclaredMethod("function",String.class);通过这个语句获取这个私有方法,并且通过method.setAccessible(true);打开使用权限,method.invoke(student,"我尝试修改一下function方法的参数");使用这个私有方法):

1.4.优点

反射的优点:

1. 对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法

2. 增加程序的灵活性和扩展性,降低耦合性,提高自适应能力

3. 反射已经运用在了很多流行框架如:Struts、Hibernate、Spring 等等。

1.5.缺点

使用反射会有效率问题。会导致程序效率降低。具体参考这里:http://www.imooc.com/article/2936792. 反射技术绕过了源代码的技术,因而会带来维护问题。反射代码比相应的直接代码更复杂 。

二.枚举

1.主要用途是:将一组常量组织起来 。

2.switch语句的使用:

3.枚举的常用方法:

4.values()方法:

5.ordinal()方法:

6.valueOf()方法:(存在这个枚举常量就会返回这个枚举常量,不存在就会出现异常)

7.compareTo()方法:

8.当我们定义好一个枚举类之后,这个枚举类就默认继承

9.枚举的构造方法是私有的。

三.枚举和反射的结合(在单例模式处详解)

四.lambda表达式

1.函数式接口:一个接口有且只有一个抽象方法,可以有其他的方法 。如果我们在某个接口上声明了 @FunctionalInterface 注解,那么编译器就会按照函数式接口的定义来要求该接口,这样如果有两个抽象方法,程序编译就会报错的。所以,从某种意义上来说,只要你保证你的接口中只有一个抽象方法,你可以不加这个注解。加上就会自动进行检测的。

2.lambda表达式使用:没有参数没有返回值(红色框是lambda表达式的使用。()->{} 就是lambda的使用 ()是参数,{}就是重写test里面的语句,如果有多个语句就需要花括号{},main1是不使用lambda表示的时候通过匿名内部类来重写接口中的方法。)

3.无返回值一个参数:

4.无返回值多个参数:

5.有返回值没有参数:(写return就要花括号)

6.有返回值一个参数

7.有返回值多个参数

1.2.语法精简:

1. 参数类型可以省略,如果需要省略,每个参数的类型都要省略。

2. 参数的小括号里面只有一个参数,那么小括号可以省略

3. 如果方法体当中只有一句代码,那么大括号可以省略

4. 如果方法体中只有一条语句,且是return语句,那么大括号可以省略,且去掉return关键字 。

1.3.变量捕获:

在使用lambda表达式的时候,可以 捕获一个不会改变的常量,如果这个常量改变了就无法捕获:

1.4.Lambda在集合当中的使用:

在ArrayList中打印每个元素的时候会重写函数接口的时候可以使用到lambda的表达式:

1.接口的排序:

2.map:

1.5.优点:

1. 代码简洁,开发迅速

2. 方便函数式编程

3. 非常容易进行并行计算

4. Java 引入 Lambda,改善了集合操作 。

1.6.缺点:

1. 代码可读性变差

2. 在非并行计算中,很多计算未必有传统的 for 性能要高

3. 不容易进行调试

http://www.hkea.cn/news/409311/

相关文章:

  • 房地产集团网站建设方案软文文案案例
  • 阜蒙县建设学校网站是什么北京seo编辑
  • 珠海建设局网站十大经典事件营销案例分析
  • 创建网站开发公司互联网推广引流是做什么的
  • 万盛集团网站建设seo网站推广全程实例
  • 做教育的网站需要资质吗网站怎么开发
  • 微网站怎么做滚动中国万网域名注册官网
  • 个人如何免费建网站seo在线优化工具 si
  • 双线主机可以做彩票网站吗网络推广合作协议
  • 做外贸的b2b网站域名批量查询系统
  • 建设网站需要哪些职位网站建设策划书
  • 苏州网站建设哪里好网站点击排名优化
  • 网站建设收费标准策划百度推广关键词越多越好吗
  • 网站怎么做更新吗如何建立网页
  • 国外建设工程招聘信息网站tool站长工具
  • 专业做相册书的网站电商网站建设制作
  • 银川网站开发公司电话东莞网
  • 环境保护局网站管理制度建设百度指数的主要功能有
  • 安装wordpress提示500错误关键词优化的策略有哪些
  • 企业网站建设公司排名深圳高端seo公司助力企业
  • 做网站套餐网站seo
  • 网站上的代码网页怎么做的下载百度软件
  • 网站功能模块建设搜狗推广
  • 网站做推广有用吗网站页面设计
  • 做简报的网站广州搜发网络科技有限公司
  • 南乐县住房和城乡建设局网站制作网站的步骤是什么
  • 金华做网站最专业的公司搜易网提供的技术服务
  • wordpress适合门户网站吗怎么营销自己的产品
  • 常用的网站类型有哪些seo优化专员编辑
  • 网站专题框架怎么做海阳seo排名