JAVA面试题
51.在Java语言,怎么理解goto。
java语言中,goto这个词只是作为了 保留字
52.请描述一7 下Java 5有哪些新特性?
- 泛型.
- For-Each 循环。
- 自动装包/拆包.
- 枚举。
- 静态导入。
- Annotation(框架配置,代码生成的里程.
- 可变参数.
- 字符串格式化器(java.util.Formatter) 。
- 新的线程模型和并发库Thread Frameword
53. Java 6新特性有哪些。
- 引入了一个支持脚本引擎的新框架.
- UI的增强
- 对WebService支持的增强(JAX-WS2.0和JAXB2.0)
- 一系列新的安全相关的增强.
- JDBC4.0.
- Compiler API
- 通用的Annotations支持。\
54. Java 7新特性有哪些。
- switch中可以使用字串了。
- 运用List tempI ,ist = new ArrayList<>O);即泛型实例化类型自动推断.
- 语法_上支持集合,而不一-定是数组
- 新增一-些读取环境信息的工具方法
- Boolean类型反转,空指针安全,参与位运算
- 两个char间的equals.
- 安全的加减乘除
- map集合支持并发请求,且可以写成Map map = {name:“xxx” ,age:18}i;.
55. Java 8新特性有哪些。
- Lambda表达式- Lambda允许把函数作为-一个方法的参数( 函数作为参数传递进方法中。。
- 方法引用一方法引用提供了非常有用的语法,可以直接引用已有Java 类或对象(实例)的方法或构造器。与
- lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。。
- .默认方法一默认方法就是一个在接口里面有了一个实现的方法。.
- 新工具一新的编译工具,如: Nashom 引擎jjs、 类依赖分 析器jdeps。.
- Stream API -新添加的Stream API (java.util.stream) 把真 正的函数式编程风格引入到Java中。.
- Date Time API-加强对日期与时间的处理。。
- Optional类- Optional类已经成为Java8 类库的一部分, 用来解决空指针异常。
- Nashorm, JavaScript 引擎- Java 8提供了- - 个新的Nashorm javascript 引擎,它允许我们在JVM上运行特定的javascript应用。
56.描述Java动态代理。
代理模式是常用的java 设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理
消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个
代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相
关方法,来提供特定的服务。简单的说就是,我们在访问实际对象时,是通过代理对象来访问的,代理模式就是
在访问实际对象时引入–定程度的间接性,因为这种间接性,可以附加多种用途。
57. Java NIO和BIO,AIO的区别
BIO:同步并阻塞,服务器实现模式为-一个连接一个线程,即客户端有连接请求时服务器端就需要启动–个线程进
行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。BIO方式适用于
连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一-选
择,但程序直观简单易理解。.
NIO:同步非阻塞,服务器实现模式为一一个请求- -个线程,即客户端发送的连接请求都会注册到多路复用器上,多
路复用器轮询到连接有I/O请求时才启动一个线程进行处理。NIO方式适用于连接数目多且连接比较短(轻操
作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4 开始支持。↓
AIO:异步非阻塞,服务器实现模式为一一个有效请求一一个线程,客户端的IO请求都是由OS先完成了再通知服务器
应用去启动线程进行处理.AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调
用OS参与并发操作,编程比较复杂,JDK7开始支持。。
IO和NIO的区别.
_ .I0是面向流的,NIO是面向缓冲区的。.
.I0的各种流是阻塞的,NIO是非阻塞模式。。
三Java NIO的选择器允许-一个单独的线程来监视多个输入通道,你可以注册多个通道使用一一个选择器,然后使用
一个单独的线程来“选择”通道:这些通道里已经有可以处理的输入,或者选择已准备写入的通道。这种选择机
制,使得一个单独的线程很容易来管理多个通道。
58.为什么要使用单例模式?.
- 避免在开发程序的时候,创建出一一个类的多个实例(占用空间,性能问题),所以使用单例模式,保证该类只
创建一“个对象; -
- -般单例模式通常有两种形式:它的构造函数为private的,必须有-一个静态方法,静态方法返回自己的实例;
实行形式有两种,懒汉式和饿汉式;所谓的饿汉式就是在声明实例的时候直接初始化对象,而懒汉式是先声明一
个空对象,在静态方法中实例化该对象并返回。。
- -般单例模式通常有两种形式:它的构造函数为private的,必须有-一个静态方法,静态方法返回自己的实例;
59.使用Java实现冒泡排序。
60. Java中垃圾回收有什么目的?什么时候进行垃圾回收?.
Java语言中一一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使
得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用
域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。。
简单的理解,就是当对象失去引用后,系统会在调度的时间对它所占用的内存进行回收。