一、Java基础

1.1、基础知识

1.1.1、int Integer区别

1.1.2、wait sleep区别

1.1.3、gbk转utf-8

1.1.4、接口和抽象类区别

1.2、并发编程

1.2.1、volatile底层实现

1.2.2、synchronized与lock底层实现,区别

1.2.3、公平锁 非公平锁

1.2.4、cas

1.2.5、线程池

1.2.6、juc并发包

1.2.7、锁的升级

1.2.8、ThreadLoacl如何实现的线程隔离

1.2.9、ForkJoin如何实现的线程合并

1.3、jdk源码

1.3.1、HashMap&ConcurrentHashMap

1.3.1.1、数据结构
1.3.1.2、put流程
1.3.1.3、两者区别有哪些
1.3.1.4、1.7和1.8版本区别有哪些

1.3.2、几种常见集合类的区别

1.4、设计模式

1.4.1、手写线程安全单例模式

1.4.2、项目中用到的设计模式

1.4.3、六种面向对象设计原则

1.5、JVM

1.5.1、垃圾回收

1.5.1.1、可达性分析算法
1.5.1.2、常见的垃圾回收算法
1.5.1.3、垃圾收集器
1.5.1.4、垃圾收集过程

1.5.2、内存模型

1.5.3、oom问题如何排查


二、框架

2.1、Spring

2.1.1、IOC&AOP原理

2.1.2、循环依赖问题

2.1.3、普通对象和Bean的区别

2.1.4、说说看过的相关源码

2.2、Mybatis

2.2.1、常用标签

2.2.2、底层调用流程

2.2.3、插件原理

2.3、SpringMVC

2.3.1、底层调用流程

2.4、SpringBoot

2.4.1、看过的源码

2.4.2、和Spring的区别

2.5、SpringCloud

2.5.1、看过的源码

2.5.2、sentinel和hystrix的区别

2.6、Dubbo

2.6.1、dubbo有几种降级策略

2.6.2、dubbo都有哪些协议


三、数据库

3.1、MySQL

3.1.1、索引结构及为什么要用这个结构

3.1.2、索引失效

3.1.3、sql优化

3.1.4、索引类型

3.1.5、分库分表策略如何优化能减少数据转移

3.1.6、事务隔离级别及底层实现

3.2、Redis

3.2.1、数据类型

3.2.2、项目中如何使用的

3.2.3、持久化策略

3.2.4、淘汰策略

3.2.5、性能问题排查及优化

3.2.6、redis做分布式锁

3.2.7、如何保证原子操作

3.2.8、底层数据结构

3.2.9、哨兵模式和Cluster模式的区别


四、分布式

4.1、Raft协议

4.1.1、选举流程

4.1.2、数据同步流程

4.1.3、项目中遇到的问题

4.2、Nginx

4.2.1、项目中的使用

4.2.2、使用时配置文件中的关键字是什么

4.3、分布式和集群的区别


五、消息队列

5.1、RabbitMQ&Kafka

5.1.1、区别

5.1.2、项目中的使用

5.1.3、如何保证消息的可靠性(不丢失、不重复)


六、搜索引擎

6.1、Es和Solr区别


七、容器化

7.1、Docker

7.1.1、项目中的使用

7.2、K8s

7.2.1、基本概念


八、Linux

8.1、常用的命令

8.2、如何排查性能问题


九、算法

9.1、跳台阶

9.2、求开方

9.3、判断链表有环

9.4、链表去重(空间O(n),时间O(1))

9.5、数组取交集

9.6、两个大文件取url交集,小内存机器

9.7、斐波那契数列

9.8、两个栈实现队列

9.9、栈 取max 时间O(1)

9.10、指定题目

给出一个数组,数组的元素为整数,想对这个数组进行拆分,使拆分之后的数组元素之和接近N,如数组[19,17,16,1,2,1,2,3,4],使拆分之后的子数组之和接近或等于20,输出拆分之后的数据列表


十、网络协议

10.1、Http

10.1.1、http是纯文本协议吗

10.1.2、报文都有哪些内容

10.1.3、后端怎么知道一个请求过来是ajax还是其他请求

10.2、Https

10.2.1、调用流程(详细)

10.3、Tcp

10.3.1、为什么要三次握手四次挥手

10.3.2、如何保证传输过程的可靠性


十一、其他

11.1、领域驱动设计

11.2、敏捷开发


十二、总结

以上是本人在2021年3月跳槽过程中遇到的真实面试题,能想起来的都整理在上面了,只是一个大纲,当然面试官会结合简历和项目来提问,每个问题具体问到多深,会延展到多广,就看你怎么聊了。

这次跳槽面试最大的感觉就是各家公司对Java基础还是非常看重的,无论是几年经验,面的是大厂还是普通公司,基础这些东西还是要好好准备准备。当然这里说的Java基础,包括了常问的jdk源码、并发编程、JVM这些。而且大厂必考算法,我的算法比较弱,虽然也偶尔在leetcode上刷题,但毕竟算法这方面之前没太重视,还是吃了不少亏。

另外简历中写的技术栈,不管项目中是否用过,一定至少是自己研究过再往简历上写,不然就是给自己挖坑。例如,简历中写了消息队列相关的技术栈,面试官一般会结合项目来问,首先看你有没有用过,具体是怎么用的,如果你在项目中没有用过,只是自己研究过,也一定要自己想个场景,并且给出思路来跟面试官聊,证明你虽然没有用过,但如果未来的工作中有需要,你是可以胜任的。

对于某一项技术,会不会用只能表示你能不能用它干活,对于一个有经验的开发人员,快速入门一项技术是必备能力,这不是加分项。加分项是你有没有对某一个技术有过深入了解,能不能在面试的过程中,把你深入了解这项技术时掌握的学习能力给体现出来。如果面试官认为你的学习能力出众,并且有较强独立思考的能力,有什么难题你都有一套自己的方法论来解决,那你就有资格来谈薪了。

平时多积累、多总结,总是没坏处的,我从去年年底开始写博客,虽然写的不多,质量也比较水,但每一篇博文对我自己来说都是一个归纳总结的过程,所以这次面试比较顺利。

平时工作中注意通过解决问题来对一项技术积累深度,工作之余开阔视野来积累技术广度。当能够感觉自己进步的时候,是会对学习上瘾的。

3年以上经验Java开发面试题相关推荐

  1. 3-5年经验Java开发面试题精选

    一.基础部分 1.Error 和 Exception 的区别 Error 类和 Exception 类的父类都是 Throwable 类 Error 类一般是仅靠程序本身无法恢复和克服,如系统崩溃 E ...

  2. 思科java开发面试题

    思科java开发面试题 1.mybatis怎么用的 2.MySQL怎么用的 3.git怎么用的 4.hashmap和hashtable 5.建立多线程 6.设计模式 7.程序的优化 8.程序的安全

  3. 2022高级JAVA开发面试题精选

    面试过程是一个由浅入深的过程,面试官先给求职者抛出一个相对简单的问题,然后通过一环套一环的追问深入考察求职者对知识点的理解掌握程度. 如下是一个实际的关于redis知识点的面试场景: 面试官:你用过r ...

  4. 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...

    个人情况 时间总是在不经意间流逝,我们也在人生的旅途上不断前行,转眼间在微软的美国总部工作近两年了.生活总给我们带来新的挑战,同时也有新的惊喜.这两年在陌生的国度里用着不太流利的英语和各种肤色的人交流 ...

  5. Java开发面试题及答案分享

    出于篇幅考虑,这篇文章给出了10个专题,每个专题给出了大约4道题的答案,完整200+题的答案PDF文档可以私信我. Java面试宝典产生自我准备面试的过程,当时网上找了些试题,但是没答案,然后一边梳理 ...

  6. 无内鬼来点干货,银行java开发面试题(含答案)

    目录 前言 1.在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? 2.不重写Bean的hashCode()方法是否会对性能带来影响? 3.对于一个不可修改的 ...

  7. Java开发面试题及答案,5年crud“经验

    由于篇幅限制,我就只以截图展示目录内容以及部分笔记内容,获取完整版王者级核心宝典只需要点击**点赞+关注,再点右边:https://docs.qq.com/doc/DWFdDS3JZZ1F4TmZU* ...

  8. 滴滴java开发面试题_滴滴出行(小桔科技)亲身面试经验分享,java开发岗

    2020.11.25 概要 本次面试是最近刚面的. PS:本人java开发2年经验,这次面的是滴滴出行(小桔科技)java开发岗. 2020.11.30 滴滴又打来电话了, 预定12.3.星期四面试, ...

  9. Java开发面试题——很有帮助的

    面试题 一.Java 1.运行机制 1)Java跨平台原理 Java实现跨平台是JVM(Java虚拟机)起的作用.如果是C/C++的编译方式,一旦换了一个平台,那么就需要重新编译一份对应的可执行代码, ...

  10. 「独家」五面阿里P6:Java开发面试题及答案

    说说最近的项目 如何实现session共享,用redis如何实现 缓存击穿的概念和解决方案 说说微服务,微服务之间如何管理 二面(现场) java nio常?用的三个类 java里面的同步锁了解吗?C ...

最新文章

  1. Make Them Equal 埃氏筛法(1200)
  2. TVS二极管电压6V,有哪些型号?
  3. 原生js路由跳转方法_今日艰难笔记原生js整合reactrouter路由管理
  4. 小师妹学JVM之:深入理解JIT和编译优化-你看不懂系列
  5. 什么是商业智能(BI),以及其与数据分析的区别?
  6. 关于提高网页加载速度个人学习以及经验总结
  7. IOS学习笔记07---C语言函数-printf函数
  8. [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法
  9. Luogu3381【模板】最小费用最大流
  10. arduino python scratch_arduino怎么和scratch用
  11. Qt开发 — WindowType详解
  12. 殇城的伤感心情日志分享:青春容颜,我却一笔流伤
  13. KOBAS 3.0学习
  14. python编写赛车_90%的人说Python程序慢,5大神招让你的代码像赛车一样跑起来
  15. [转载] 可疑的成功
  16. 约束优化:约束优化的三种序列无约束优化方法
  17. 单元测试框架NUnit 之 Attributes特性(一)
  18. 安装iperf,提示:没有可用软件包 iperf
  19. 北京软件开发商城app系统软件开发大概多少钱
  20. 【Linux性能分析】火焰图(Flame Graphs)的安装和基本用法

热门文章

  1. 基于体素的全局光照技术
  2. 数字条纹投影系统中基于概率分布函数的灵活伽玛计算算法
  3. windowns server 2008 R2激活工具(含win7、vista)
  4. 简单WEB登录页面代码实现
  5. 科技爱好者周刊(第 124 期):华为如何考核员工
  6. tomcat乱码解决办法
  7. 虚拟机装Win7 x64
  8. linux kvm装ghost镜像,kvm安装win7虚拟机
  9. python随机密码生成
  10. 用计算机遥感技术图片,遥感图像处理