Java面试题(精选)

关于基础:

1:内存泄漏是什么?什么时候会出现内存泄漏?

2:单例模式和多线程有关系吗?

3:容器中有几个接口,hashtable的父接口是谁?

4:画一下jvm内存结构图,程序计数器的作用(记录线程执行的位置),怎么记录线程执行的位置(当cpu在轮流执行线程的时候,返回原先的线程需要记录)

5:hashmap的并发访问为何阻塞?

6:switch支不支持string

7:linux常用命令

8:多线程,并发

9:进程通信方式,信号量实现,分布式的进程通信,socket。缓存,或者zk实现

10:介绍bean的生命周期

11:map的分类和常见的情况

12:jvm相关

13:介绍一下GC和收集策略

14:minor gc如果运行的很频繁,可能是什么原因引起的,minor gc如果运行的很慢,可能是什么原因引起的

15:cookie是怎么回事?

16:Java怎么实现服务器主线程等待一个线程200ms,等待另一个线程300ms,然后把结果返回客户端?不阻塞怎么做?

17:线程池丢弃策略有哪些

18:消息队列

19:redis,BlockingQueue,RabbitMQ

20:LAMP(Linux,Apache,Mysql,Php),LNMP(Linux,Nginx,Mysql,Php)

21:Java内存模型(jmm,jvm)

22:堆内存:堆内存和划分理由,各种内存的分配流程,各类回收算法

23:jdk1.7和1.8的区别(部分容器改进,如:hashmap,concurrenthashmap,stream,lambda),stream怎么实现的(底层用的类似fork,join)?

24:springboot了解吗?着重说下默认配置和springcloud的基础

25:springcloud说下,画画图,主要说eruka,ribbon,hystrix,fegin,config,bus,zuul

26:后台开发高并发的理解:提高服务器配置,分布,服务管理,负载均衡,一致性处理,缓存,数据库分库分表,高可用,页面静态化,消息队列和秒杀场景。

27:forward和redirect(session数据丢失,session共享)

28:为什么很多类要定义成抽象类

29:currenthashmap1.7和1.8的实现有什么不同

30:get()和size()是否要加锁,为什么?

31:泛型在编译期和运行期的作用

32:线程池是怎么创建的,需要几个参数,分别是什么含义

33:CAS syncronized实现有什么区别

34:violate关键字

35:jvm GC的优缺点,GC回收的算法

36:有没有用过jvm相关工具

37:策略模式(23种设计模式)

38:jvm内存模型

39:java中创建线程的方法?

40:造成死锁的条件

41:hashmap和hashtable的区别

42:Java中基本数据类型

43:cookie和session的区别

44:get和post的区别

45:switch-case语句中能用的基本数据类型(switch表达式后面的数据类型只能是byte,short,char,int四种整形类型,枚举类型和java.lang.String类型(从java 7才允许),不能是boolean类型。

46:进程的通信(共享内存),线程怎么共享资源

47:反射机制

48:hashmap,java8的一个核心优化就是hashmap

49:list和set的区别

50:hashmap和hashtable的区别,hashtable为什么是线程安全的

(synchronized锁住了)

51:有没有既线程安全效率又高的map?(ConcurrentHashMap)

52:BlockQueue见过没(线程池的排队策略)?

53:说几个springmvc的注解,都是干啥的?

54:缓存是干啥的?

数据结构及算法:

1:快排的思想

2:介绍下快排和归并各自的思路,优缺点

3:知道Java里面的sort是那种实现吗?(Cpp里面是快排,Java里面是归并,Java里面基础数据类型是快排,对象是归并)

4:写个归并排序

5:快排和堆排

6:在一个给定数组中找到最大两个数

7:海量数据top k算法

关于项目:

1:项目中用到了那些技术,最大的难点是什么?怎么解决的?怎么学习新技术?

2:打开支付宝客户端点击付款到成功经历了那些过程?

3:项目架构

关于框架:

1:说一下IOC和AOP

2:spring AOP原理,用了什么设计模式

3:spring架构是怎么演进的

4:知道springboot之前是怎么做的吗?

5:redis和mysql数据库的区别

关于网络:

1:TCP有几层结构,有哪些应用场景?

2:项目中怎么优化网络传输?

3:tcp协议,拥塞,流量控制

4:https握手过程

5:证书内容

6:Http和Https有什么区别

7:http有哪些方法,提交账号和密码怎么做?

8:http1.0和http2.0的区别

9:说下https的请求过程

10:各种状态码及其含义

11:tcp三次握手,四次挥手

12:长连接和短链接

关于数据库:

1:innoDB底层数据结构

2:nosql和关系型数据库比较

3:Mysql如何优化

4:创建一个表,新增列到表里

5:介绍一下数据库索引,介绍下数据库索引失效的情况

6:联合索引

7:数据库乐观锁和悲观锁(乐观锁:mvcc,悲观锁:行锁表锁),mvvc的实现?

8:MySQL锁有哪些,画出锁与锁之间的关系

9:MySQL的事务隔离级别

10:左连接和外连接

11:MySQL锁存在哪里

12:数据库建索引有哪些考虑

13:数据库索引结构

14:数据库对sql语句的解析过程

其他:

1:最近在看什么书

2:自我介绍,项目介绍

3:看过啥书?


猜你喜欢

转载自blog.csdn.net/long_yi_1994/article/details/80248313