面试题大汇总

所有的初级或中级程序员遇到的面试题不会出这个框架,当然,许多问题是我抄来的,也有自己面试中遇到的。

一、java基础

1、基础

(1)

(2)异常种类。

 

2、集合

ArrayList删除的原理或过程

https://www.cnblogs.com/huangjinyong/p/9455163.html

HashMap遍历删除

https://zhidao.baidu.com/question/442077920.html

3、IO和网络

  • BIO、NIO、AIO的概念
  • 什么是长连接和短连接
  • Http1.0和2.0相比有什么区别,可参考《Http 2.0
  • Https的基本概念
  • 三次握手和四次挥手、为什么挥手需要四次
  • 从游览器中输入URL到页面加载的发生了什么?可参考《从输入URL到页面加载发生了什么

4、线程和进程

(1)

  • 说说线程安全问题,什么是线程安全,如何保证线程安全
  • 重入锁的概念,重入锁为什么可以防止死锁
  • 产生死锁的四个条件(互斥、请求与保持、不剥夺、循环等待)
  • 如何检查死锁(通过jConsole检查死锁)
  • volatile 实现原理(禁止指令重排、刷新内存)
  • synchronized 实现原理(对象监视器)
  • synchronized 与 lock 的区别
  • AQS同步队列
  • CAS无锁的概念、乐观锁和悲观锁
  • 常见的原子操作类
  • 什么是ABA问题,出现ABA问题JDK是如何解决的
  • 乐观锁的业务场景及实现方式
  • Java 8并法包下常见的并发类
  • 偏向锁、轻量级锁、重量级锁、自旋锁的概念
  • 可参考:《Java多线程编程核心技术

(2)

1、ThreadLocal用过么,原理是什么,用的时候要注意什么

2、Synchronized和Lock的区别

3、synchronized 的原理,什么是自旋锁,偏向锁,轻量级锁,什么叫可重入锁,什么叫公平锁和非公平锁

4、concurrenthashmap具体实现及其原理,jdk8下的改版

5、用过哪些原子类,他们的参数以及原理是什么

6、cas是什么,他会产生什么问题(ABA问题的解决,如加入修改次数、版本号)

7、如果让你实现一个并发安全的链表,你会怎么做

8、简述ConcurrentLinkedQueue和LinkedBlockingQueue的用处和不同之处

9、简述AQS的实现原理

10、countdowlatch和cyclicbarrier的用法,以及相互之间的差别?

11、concurrent包中使用过哪些类?分别说说使用在什么场景?为什么要使用?

12、LockSupport工具

13、Condition接口及其实现原理

14、Fork/Join框架的理解

15、jdk8的parallelStream的理解

16、分段锁的原理,锁力度减小的思考

(3)

5 JVM

类加载的顺序

GC

 

二、框架

spring 

1 springIOC和AOP 

2 spring是如何管理事务的

springMVC

1 springMVC原理

mybatis

1 resultType和resultmap区别

2spring和mybatis集成后缓存会怎样?

springBoot

springCloud

Hibernate

 

三、web

JS

常用的协议有哪些

 

四、数据库

索引

oracle分页和mysql分页

事务级别

 

五、linux

linux常用命令

ls 

find

cat

mkdir

vi wq

cd

ps -ef | grep 8080

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章