java面试题(jdk新特性和动态代理)

本文详细介绍了Java从5到8的主要新特性,包括泛型、枚举、自动装箱、Lambda表达式等,并探讨了Java动态代理在框架中的应用,如拦截器和AOP。动态代理为实现无侵入式代码扩展提供了便利,增强了代码的安全性和功能扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请描述一下java5有那些新特性?

  • 泛型
  • for-each循环
  • 自动装包/拆包
  • 枚举
  • 静态导入
  • Annotation(框架配置,代码生成)
  • 可变参数
  • 字符串格式化器(java.util.formatter)
  • 新的线程模型和并发库 Thread Frameword

java6新特性有那些?

  • 引入了一个支持脚本引擎的新框架
  • UI的增强
  • 对webservice 支持的增强(JAX-WS2.0和JAXB2.0)
  • 一系列新的安全增强
  • jdbc4.0
  • CompilerAPI
  • 通用的Annotations支持

java7新特性有那些?

  • switch中可以使用字符串了
  • 运用List list = new ArrayList<>(); 即泛型实例化类型自动推断
  • 语法上支持集合,而不一定是数组
  • 新增一些读取环境信息的工具方法
  • Boolean类型反转,空指针安全,参与位运算
  • 两个char间的equals
  • 安全的加减乘除
  • map集合支持并发请求,且可以写成 Map map = {name:“xxx”,age:18};

java8新特性有那些?

  • Lambda 表达式-Lambda 允许把函数作为一个方法的参数,用更简洁的语法实现以前复杂的功能代码
  • 方法引用提供了非常有用的语法,可以直接引用已有java类或对象的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
  • 接口中可以使用default关键字声明一个默认实现方法。
  • 新的编译工具,如Nashorn 引擎jjs、类依赖分析器jdeps。
  • 新添加的streamAPI 把真正的函数式编程风格引入到java中
  • 加强对日期与时间的处理
  • Optional类用来解决空指针异常。
  • java8提供一个新的Nashorn javascript引擎,它允许我们在jvm上允许特定的javascript应用

描述java动态代理

  • 代理模式是常用的java设计模式之一,java中的代理实现主要有基于接口的jdk动态代理和基于类的cglib动态代理,代理的特点就是会为目标对象产生代理对象,从而在调用实际目标对象方法时实现无侵入式的代码扩展,比如一些框架中的拦截器机制、springAOP 面向切面机制都是基于动态代理模式实现的,其次也可以更加安全的保护目标对象。动态代理的目的主要就是为了解决一些安全性问题,其次就是可以在调用目标功能方法之前、之后额外添加一些功能,比如日志,事务等,并且还能阻止调用目标功能,从而实现权限控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值