前言
本文中的题目来源于网上的一篇文章《百度搜索 “Java面试题” 前200页》,但该文章里面只有题目,没有答案。因此,我整理了一些答案发布于本文。本文整理答案的原则是尽量做到精简、点到即止(因为一般面试题的试卷里面的作答区域有限)。如果你有更好的答案,欢迎在评论区指出,或者给Github仓库提PR。
基本概念
1、操作系统中 heap 和 stack 的区别
堆:堆空间一般由程序员来分配,可以由垃圾回收机制来回收。一般用来存放new创建的对象和数组。
栈:栈是“后进先出”的存储空间,一般用来存储基本类型的数据和对象的引用。
2、什么是基于注解的切面实现
用注解的方式实现的面向切面编程(AOP),可以在某个方法的执行前或者执行后插入一些代码(例如日志功能的代码)。
3、什么是 对象/关系 映射集成模块
对象/关系映射(ORM):是指将程序中的对象自动持久化到关系型数据库中
4、什么是 Java 的反射机制
反射机制:是指程序可以在运行时 访问 或 修改 它本身状态和方法的这种能力。
5、什么是 ACID
A:atom 原子性
C:consistency 一致性
I:isolation 隔离性
D:durability 持久性
6、BS与CS的联系与区别
C/S(Client/Server):是指需要安装的客户端应用程序。
B/S(Brower/Server):是指可以用浏览器直接访问的应用程序。
7、Cookie 和 Session 的区别
Cookie:是把数据保存在浏览器本地,并随着每一次请求发送到服务器。
Session:是把用户数据保存在服务器端。
8、fail-fast 与 fail-safe 机制有什么区别
fail-fast(快速失败):快速失败机制在遍历一个集合时,如果集合内容被修改,会抛出ConcurrentModificationException异常。
fail-safe(安全失败):安全失败机制对集合的任何修改都会在一个复制的集合上进行,因此不会抛出异常。
9、get 和 post请求的区别
get:
1、请求的参数会附加在URL之后,多个参数用 & 连接。
2、因为URL的长度限制,get 方式传输的数据大小有所限制。
3、安全性低,因为传输的数据会显示在请求的URL中。
post:
1、将请求参数放置在 HTTP 数据包,发送给服务器。
2、传送的数据量比较大
3、安全性较高
10、Interface 与 abstract 类的区别
1、接口(Interface)需要被实现,抽象类(abstract类)需要被继承。
2、一个类可以实现多个接口,但一个类只能继承一个抽象类。
3、接口里面的方法全部是抽象的,抽象类里面可以有非抽象的方法。
11、IoC的优点是什么
IoC(控制反转)的优点是:我们需要使用一个对象的时候无需自己创建,可以从IoC容器中直接获取一个对象,然后直接使用。
12、IO 和 NIO 的区别,NIO的优点
1、IO是面向流的,NIO是面向缓冲区的。
2、IO是阻塞的,NIO是非阻塞的。
3、NIO有选择器机制,可以让一个线程来监视多个IO通道。
NIO的优点:
1、不需要使用 read() 或者 write() 就可以处理文件内容。
2、NIO的处理效率很快。
13、Java 8 / Java 7 为我们提供了什么新功能
Java7 新特性:
1、switch里面的case条件可以使用字符串了
2、运用 List\