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

与别人相比自己网站建设优势温州网站建设

与别人相比自己网站建设优势,温州网站建设,猎聘网招聘官方网站,用java做网站可以一.反射 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/754774/

相关文章:

  • 泰安诚信的网站建设b站推广入口2023年
  • 高校网站建设资料库东莞seo推广公司
  • 电子印章手机在线制作软件四川seo整站优化费用
  • 个人风采网站制作外贸网站平台哪个好
  • 沈阳企业建站谷歌推广和seo
  • .la域名做的网站如何快速推广app
  • 广州优化网站建设怎么用手机制作网站
  • 做微网站的第三方学网络营销
  • 湖南做网站的公司有哪些搜索引擎是什么
  • flash网站管理系统seo优化排名易下拉用法
  • 永年网站建设友链互换平台推荐
  • 企业网站的设计公司网络广告营销的典型案例
  • 高校思政主题网站建设的意义关键词歌词任然
  • 哪里做网站比较快2345网址导航下载桌面
  • 广州建设委员会官方网站凡科建站下载
  • 全球做网站的公司排名百度一下你就知道官网
  • 小企业网站价格免费发链接的网站
  • 买了空间和域名 怎么做网站哪家公司网站做得好
  • 网站备案是否关闭衡阳网站建设公司
  • 遂昌建设局网站个人怎么做网站
  • 软件开发和网站建设网络营销的未来6个发展趋势
  • 做网站一年多少钱免费seo网站推广
  • 智通人才网东莞最新招聘信息官网seo是如何做优化的
  • 个人做跨境电商网站百度地图导航手机版免费下载
  • 阿里云注册网站之后怎么做网站百度联盟是什么
  • 动画制作视频河南网站排名优化
  • 网站关键词怎么做排名掌门一对一辅导官网
  • 现在什么网站做推广比较好网页设计需要学什么
  • 个人购物网站 怎么建网络营销包括
  • 有没有做鸭的网站工作室招聘广州网站优化工具