热门面试问题
参考网址:
《Java》面试题来啦!![玫瑰]以下方式二选一领取即可:
方式一、直接复制代码及查看原文,[机智]戳链接:https://t.csdnimg.cn/wau8
方式二、下载面试答案(代码无法直接复制),[机智]戳链接:
百度网盘链接:https://pan.baidu.com/s/1QKegI4LFSc0SMl1M4vdP0Q
密码: ntcw
说明 :
我是参考的这个网址,这个网址下载下来是pdf版本,复制进来格式有点不同
需要的朋友可以到参考网址直接进行下载
1、什么是GC?为什么要有 GC?
GC(Garbage Collection)是垃圾收集的意思,负责清除对象并释放内存。Java提供的 GC 功能可以自动检测对象是否超过作用域从而达到自动回收内存的目
的,从而防止内存泄漏。
2、final, finally 和 finalize 的区别**?**
final 用于声明属性,方法和类,表示属性不可变,方法不可被重写,类不可被
继承。
finally 是异常处理语句结构的一部分,表示总是执行。
finalize 是 object 类的一个方法,在垃圾收集器执行的时候会调用这个对象回
收的方法,工垃圾收集时其他资源的回收,比如关闭文件。
3**、什么是单例模式?实现步骤?**
单例模式保证了对象唯一。分为懒汉式(在类加载时不初始化)和饿汉式(在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快)。
实现步骤:私有化构造函数、创建一个静态的私有对象、提供公共的访问方法。
4**、ArrayList 和 LinkedList 有何区别?**
ArrayList 是基于动态数组的数据结构,LinkedList 是基于链表的数据结构;对
于随机访问 get 和 set,ArrayList 较优,因为 LinkedList 要移动指针;对于
新增和删除操作 add 和 remove,LinedList 较优,因为 ArrayList 要移动数
据。
的。
5**、HashMap 和 Hashtable 的区别?**
HashMap 允许空键值,Hashtable 不允许;
HashMap 继承自 AbstractMap,Hashtable 继承自 Dictionary 类,两者都
实现了 Map 接口;HashMap 的方法不是同步的,Hashtable 的方法是同步
6**、Iterater 和 ListIterator 之间有什么区别?**
Iterator 用来遍历 Set 和 List 集合,而 ListIterator 只能遍历 List;Iterator只可以向前遍历,而 LIstIterator 可以双向遍历;ListIterator 从 Iterator 接口
继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前
面或后面元素的索引位置。
7**、创建线程的方式?**
继承 Thread 类
实现 Runnable 接口
使用 Executor 框架
8**、什么是死锁?**
两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发
生了死锁。结果就是这些线程都陷入了无限的等待中。
9**、wait()与 sleep()的区别?**
sleep()来自 Thread 类,wait()来自 Object 类;
调用 sleep()方法,线程不会释放对象锁。而调用 wait 方法线程会释放对象锁;
sleep()睡眠后不出让系统资源,wait 让其他线程可以占用 CPU;
sleep(milliseconds)需要指定一个睡眠时间,时间一到会自动唤醒。而 wait()
需要配合 notify()
或者 notifyAll()使用。
10 、 什 么 是 ThreadLocal ? ThreadLocal 和
Synchonized 的区别**?**
线程局部变量。是局限于线程内部的变量,属于线程自身所有,不在多个线程间
共享。Java 提供 ThreadLocal 类来支持线程局部变量,是一种实现线程安全
的方式。
synchronized 是利用锁的机制,使变量或代码块在某一时该只能被一个线程访
问。而 ThreadLocal 为每一个线程都提供了变量的副本,使得每个线程在某一
时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。
1**、原生态 Ajax 执行流程?**
创建 XMLHttpRequest 对象;
注册回调函数;
设置连接信息;
发送数据,与服务器开始交互;
接受服务器返回数据。
2**、转发(forward)和重定向(redirect)的区别?**
forward 是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,
浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来
的地址。
redirect 就是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个
地址,因此从浏览器的地址栏中可以看到跳转后的链接地址,很明显 redirect 无法访问到服务器保护起来资源,但是可以从一个网站 redirect 到其他网站。
3**、怎么防止表单重复提交?**
i.禁掉提交按钮。表单提交后使用 Javascript 使提交按钮 disable。
ii.Post/Redirect/Get 模式。在提交后执行页面重定向,这就是所谓的
Post-Redirect-Get (PRG) 模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。
iii.在 session 中存放一个特殊标志。当表单页面被请求时,生成一个特殊的字
符标志串,存在 session 中,同时放在表单的隐藏域里。接受处理表单数据时,
检查标识字串是否存在,并立即从 session 中删除它,然后正常处理数据。
4**、web.xml 文件中可以配置哪些内容?**
web.xml 用于配置 Web 应用的相关信息,如:监听器(listener)、过滤器
(filter)、Servlet、相关参数、会话超时时间、安全验证方式、错误页面等。
1**、JDBC 编程的步骤?**
(1)注册驱动;
(2)获取连接对象 Connection;
(3)创建 Statement 对象;
(4)运行 SQL 语句;
(5)处理结果;
(6)关闭连接释放资源。
2**、事务的 ACID 是什么?事务并发会产生哪些问题?**
ACID 表示事务的特性:原子性、一致性、隔离性和持久性。
原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;
一致性(Consistent):事务结束后系统状态是一致的;
隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态;
持久性(Durable):事务完成后所做的改动都会被持久化,即使发生灾难性的失
败。通过日志和同步备份可以在故障发生后重建数据。
事务并发产生的问题:脏读、幻读、不可重复读。
脏读(Dirty Read):A 事务读取 B 事务尚未提交的数据并在此基础上操作,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00p1sFFz-1608546358619)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image002.jpg)]
而 B 事务执行回滚,那么 A 读取到的数据就是脏数据。
幻读(Phantom Read):事务 A 重新执行一个查询,返回一系列符合查询条
件的行,发现其中插入了被事务 B 提交的行。
不可重复读(Unrepeatable Read):事务 A 重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务 B 修改过了。
3**、数据库性能优化有哪些方式?**
用一条 SQL 语句查询出每门课都大于 80 分的学生姓名[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-64fEFfaP-1608546358622)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image004.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRebNPkj-1608546358624)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image006.jpg)]
所有球队之间的比赛组合
一张叫 team 的表,里面只有一个字段 name,一共有 4 条纪录,分别是 a、
b、c、d,对应四个球队,现在四个球队进行比赛,用一条 sql 语句显示所有可
能的比赛组合。
显示文章标题**,发帖人、**最后回复时间[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CddSqtMe-1608546358628)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image008.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rUj3mseR-1608546358631)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image010.jpg)]
航空网的几个航班查询题
查询起飞城市是北京的所有航班**,**按到达城市的名字排序.
查询北京到上海的所有航班纪录(起飞城市**,到达城市,起飞时间,****航班号)**[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7SzNgSOc-1608546358632)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image012.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vPvgUSg0-1608546358634)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image014.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdrRTbCr-1608546358635)(C:\Users\Admin\AppData\Local\Temp\OICE_72BAFBB8-68F8-400E-AB63-90B45035B54C.0\msohtmlclip1\01\clip_image016.jpg)]
别是 a、
b、c、d,对应四个球队,现在四个球队进行比赛,用一条 sql 语句显示所有可
能的比赛组合。
显示文章标题**,发帖人、**最后回复时间[外链图片转存中…(img-CddSqtMe-1608546358628)][外链图片转存中…(img-rUj3mseR-1608546358631)]
航空网的几个航班查询题
查询起飞城市是北京的所有航班**,**按到达城市的名字排序.
查询北京到上海的所有航班纪录(起飞城市**,到达城市,起飞时间,****航班号)**[外链图片转存中…(img-7SzNgSOc-1608546358632)][外链图片转存中…(img-vPvgUSg0-1608546358634)][外链图片转存中…(img-AdrRTbCr-1608546358635)]
查询具体某一天(2005-5-8)的北京到上海的的航班次数