Java面试题目:
- Java读取一个文件, 有哪些方法, 考虑性能, 用哪一个类
- BIO, NIO, AIO区别
- Java 类加载机制
- 为什么使用双亲委派模型
- NIO的组件, Selector
- 什么是序列化, IO的序列化方式, 为什么需要序列化(包括在网络传输的情况下)
- Error和Exception区别
- RuntimeException和非RuntimeException区别
- 什么叫线程安全, 保证线程安全的方法
- 加锁的方式, synchronized作用在方法上和代码块区别
- synchronized(this)和synchronized(Xx.class)区别
Web方面:
- Spring AOP实现原理
- 一个页面, 一个提交按钮, 如何防止重复提交, 我说验证码, 还有 其它方式吗?
- ajax实现跨域请求(前端或者后台实现方法)
- cookie和session区别
- forward和redirect区别
数据库
- 你建过索引吗? 建索引的原则
- 索引的类型, 如主键索引
- 查看SQL执行计划
- 有十万条数据, 写SQL语句查询其中某字段较大值的几条数据
- 子查询与关联查询的区别
JVM
- 你用过的JVM命令有哪些
- 如果一个程序发生OOM, 该怎么处理
- JVM内存模型
- JDK7与JDK8的JVM内存模型区别
- 回收算法
- 回收器
- 虚拟机client和server的区别
- 对象和引用之间一般用什么连接?句柄池的作用是什么。
网络:
- HTTP1.0与HTTP1.1区别
- TCP与UDP区别
容器方面
- 介绍线程安全的list(copyonwritelist)
- 线程安全的map,具体是怎么实现的,与Hashtable什么区别。
- CAS
并发
- 知道的线程池(ThreadPoolExecutor属于一类,forkjoin知道吗)
- 线程池怎么自己去实现?给你一个Runnable、一个容器怎么实现。
- AQS中线程等待怎么做的(线程挂起状态怎么做的)?
nio、bio
- 阻塞非阻塞的区别?
- 异步和同步的区别?异步是使用的内核级线程还是用户态线程。
- AIO在Java中应用到了吗?
中间件
- redis
- rabbitMq
- memcached等的使用场景和设计原理
redis:
- redis部署方式。
- redis怎么加入节点
- redis持久化。
1.手撕字符串转int
2.数据库事务隔离级别
3.spring 事务
4.数据库索引失效的场景
5.组合索引(A,B)若查询B列是否用到了索引
6.如果A是string类型,而查询的时候是1314151617 用到了索引吗?能查到这条数据吗?
7.数据库怎么实现乐观锁?
8.redis pipeline了解吗?
9.秒杀场景?怎么实现。redis怎么限流,限流算法。
10.redis实现队列、实现优先级队列。
11.分布式锁。
PS: 觉得有点用的同学,欢迎给个赞转发支持...
送你 58道《2018最新BAT高级java面试必考题》 含答案。
私信关键词“BAT面试”即可获取题目和答案链接哦!
閱讀更多 優知學院 的文章