Java面试通关要点

Java面试通关要点

2018-03-23 梁桂钊 占小狼的博客 占小狼的博客
占小狼的博客

微信号 whywhy_zj

功能介绍 Java进阶技术干货、实践分享,跟着狼哥一起学习JVM、性能调优,欢迎关注。

首先,声明下,以下知识点并非阿里的面试题。

这里,笔者结合自己过往的面试经验,整理了一些核心的知识清单,帮助读者更好地回顾与复习 Java 服务端核心技术。本文会以引出问题为主,后面有时间的话,笔者陆续会抽些重要的知识点进行详细的剖析与解答。

敬请关注「服务端思维」微信公众号,获取最新文章。

基础篇

基本功

  • 面向对象的特征

  • final, finally, finalize 的区别

  • int 和 Integer 有什么区别

  • 重载和重写的区别

  • 抽象类和接口有什么区别

  • 说说反射的用途及实现

  • 说说自定义注解的场景及实现

  • HTTP 请求的 GET 与 POST 方式的区别

  • session 与 cookie 区别

  • session 分布式处理

  • JDBC 流程

  • MVC 设计思想

  • equals 与 == 的区别

集合

  • List 和 Set 区别

  • List 和 Map 区别

  • Arraylist 与 LinkedList 区别

  • ArrayList 与 Vector 区别

  • HashMap 和 Hashtable 的区别

  • HashSet 和 HashMap 区别

  • HashMap 和 ConcurrentHashMap 的区别

  • HashMap 的工作原理及代码实现

  • ConcurrentHashMap 的工作原理及代码实现

线程

  • 创建线程的方式及实现

  • sleep() 、join()、yield()有什么区别

  • 说说 CountDownLatch 原理

  • 说说 CyclicBarrier 原理

  • 说说 Semaphore 原理

  • 说说 Exchanger 原理

  • 说说 CountDownLatch 与 CyclicBarrier 区别

  • ThreadLocal 原理分析

  • 讲讲线程池的实现原理

  • 线程池的几种方式

  • 线程的生命周期

锁机制

  • 说说线程安全问题

  • volatile 实现原理

  • synchronize 实现原理

  • synchronized 与 lock 的区别

  • CAS 乐观锁

  • ABA 问题

  • 乐观锁的业务场景及实现方式

核心篇

数据存储

  • MySQL 索引使用的注意事项

  • 说说反模式设计

  • 说说分库与分表设计

  • 分库与分表带来的分布式困境与应对之策

  • 说说 SQL 优化之道

  • MySQL 遇到的死锁问题

  • 存储引擎的 InnoDB 与 MyISAM

  • 数据库索引的原理

  • 为什么要用 B-tree

  • 聚集索引与非聚集索引的区别

  • limit 20000 加载很慢怎么解决

  • 选择合适的分布式主键方案

  • 选择合适的数据存储方案

  • ObjectId 规则

  • 聊聊 MongoDB 使用场景

  • 倒排索引

  • 聊聊 ElasticSearch 使用场景

缓存使用

  • Redis 有哪些类型

  • Redis 内部结构

  • 聊聊 Redis 使用场景

  • Redis 持久化机制

  • Redis 如何实现持久化

  • Redis 集群方案与实现

  • Redis 为什么是单线程的

  • 缓存奔溃

  • 缓存降级

  • 使用缓存的合理性问题

消息队列

  • 消息队列的使用场景

  • 消息的重发补偿解决思路

  • 消息的幂等性解决思路

  • 消息的堆积解决思路

  • 自己如何实现消息队列

  • 如何保证消息的有序性

框架篇

Spring

  • BeanFactory 和 ApplicationContext 有什么区别

  • Spring Bean 的生命周期

  • Spring IOC 如何实现

  • 说说 Spring AOP

  • Spring AOP 实现原理

  • 动态代理(cglib 与 JDK)

  • Spring 事务实现方式

  • Spring 事务底层原理

  • 如何自定义注解实现功能

  • Spring MVC 运行流程

  • Spring MVC 启动流程

  • Spring 的单例实现原理

  • Spring 框架中用到了哪些设计模式

  • Spring 其他产品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等)

Netty

  • 为什么选择 Netty

  • 说说业务中,Netty 的使用场景

  • 原生的 NIO 在 JDK 1.7 版本存在 epoll bug

  • 什么是TCP 粘包/拆包

  • TCP粘包/拆包的解决办法

  • Netty 线程模型

  • 说说 Netty 的零拷贝

  • Netty 内部执行流程

  • Netty 重连实现

微服务篇

微服务

  • 前后端分离是如何做的

  • 微服务哪些框架

  • 你怎么理解 RPC 框架

  • 说说 RPC 的实现原理

  • 说说 Dubbo 的实现原理

  • 你怎么理解 RESTful

  • 说说如何设计一个良好的 API

  • 如何理解 RESTful API 的幂等性

  • 如何保证接口的幂等性

  • 说说 CAP 定理、 BASE 理论

  • 怎么考虑数据一致性问题

  • 说说最终一致性的实现方案

  • 你怎么看待微服务

  • 微服务与 SOA 的区别

  • 如何拆分服务

  • 微服务如何进行数据库管理

  • 如何应对微服务的链式调用异常

  • 对于快速追踪与定位问题

  • 微服务的安全

分布式

  • 谈谈业务中使用分布式的场景

  • Session 分布式方案

  • 分布式锁的场景

  • 分布是锁的实现方案

  • 分布式事务

  • 集群与负载均衡的算法与实现

  • 说说分库与分表设计

  • 分库与分表带来的分布式困境与应对之策

安全&性能

安全问题

  • 安全要素与 STRIDE 威胁

  • 防范常见的 Web 攻击

  • 服务端通信安全攻防

  • HTTPS 原理剖析

  • HTTPS 降级攻击

  • 授权与认证

  • 基于角色的访问控制

  • 基于数据的访问控制

性能优化

  • 性能指标有哪些

  • 如何发现性能瓶颈

  • 性能调优的常见手段

  • 说说你在项目中如何进行性能调优

工程篇

需求分析

  • 你如何对需求原型进行理解和拆分

  • 说说你对功能性需求的理解

  • 说说你对非功能性需求的理解

  • 你针对产品提出哪些交互和改进意见

  • 你如何理解用户痛点

设计能力

  • 说说你在项目中使用过的 UML 图

  • 你如何考虑组件化

  • 你如何考虑服务化

  • 你如何进行领域建模

  • 你如何划分领域边界

  • 说说你项目中的领域建模

  • 说说概要设计

设计模式

  • 你项目中有使用哪些设计模式

  • 说说常用开源框架中设计模式使用分析

  • 说说你对设计原则的理解

  • 23种设计模式的设计理念

  • 设计模式之间的异同,例如策略模式与状态模式的区别

  • 设计模式之间的结合,例如策略模式+简单工厂模式的实践

  • 设计模式的性能,例如单例模式哪种性能更好。

业务工程

  • 你系统中的前后端分离是如何做的

  • 说说你的开发流程

  • 你和团队是如何沟通的

  • 你如何进行代码评审

  • 说说你对技术与业务的理解

  • 说说你在项目中经常遇到的 Exception

  • 说说你在项目中遇到感觉最难Bug,怎么解决的

  • 说说你在项目中遇到印象最深困难,怎么解决的

  • 你觉得你们项目还有哪些不足的地方

  • 你是否遇到过 CPU 100% ,如何排查与解决

  • 你是否遇到过 内存 OOM ,如何排查与解决

  • 说说你对敏捷开发的实践

  • 说说你对开发运维的实践

  • 介绍下工作中的一个对自己最有价值的项目,以及在这个过程中的角色

软实力

  • 说说你的亮点

  • 说说你最近在看什么书

  • 说说你觉得最有意义的技术书籍

  • 工作之余做什么事情

  • 说说个人发展方向方面的思考

  • 说说你认为的服务端开发工程师应该具备哪些能力

  • 说说你认为的架构师是什么样的,架构师主要做什么

  • 说说你所理解的技术专家


更多交流尽在知识星球

943267-20180726175605670-765900247.jpg

内容转载自公众号

服务端思维
服务端思维
了解更多

赞赏

长按二维码向我转账

943267-20180726175607131-562318198.png

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

阅读
投诉

微信扫一扫
关注该公众号

即将打开" "小程序
取消 打开


来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/hujinshui/p/9373390.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380705.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

商家如何低成本搭建声音人无人直播开展带货直播?

随着直播行业日渐火热,人工智能也开始逐渐渗透到这个领域。在前不久刚出现的AI数字人直播间已经成为一种创新的直播模式。而在这个领域里,声音人无人直播也逐渐展现出了自己的优势。那么,在AI数字人直播之后出现的声音人无人直播又有哪些优势…

这五部关于宇宙的神级纪录片,带你探索未知的外太空世界

宇宙之大无奇不有,在你的认知里你又知道多少关于宇宙的事情,如果单单用外星人概括你所对宇宙的认知就真的太片面了,小编今天就带来下面这四部关于宇宙的硬核纪录片,带你真正的去了解关于宇宙的知识,让你遨游在宇宙的知…

有没有人救救

c语言掷骰子代码 不会求求

放置英雄-深空探索-传输空间 地图

这个传输空间有点复杂,整理了一个地图出来,需要的朋友可以参考一下

Hello工作室制作《无人深空》更新档

《无人深空》(No Man’s Sky)可能很快又要更新了,这款备受争议的太空探索游戏曾在去年12月进行过一次大型更新,不知道本次制作的更新规模如何,是单纯的bug修复还是有额外内容扩充。 无人深空 《无人深空》(…

盘点美军的无人机家底

相对于国内无人机产业,国外军用无人机起步较早,积累了大量发展经验和先进理念,尤其是美国,在发动的近几场战争中都广泛应用无人机进行监视和侦察,还参与空中打击行动。军用无人机的使用大大能降低军事行动中的经济成本和自身伤亡情况。既然如…

ubuntu python 查看系统是否可用 cuda

ubuntu python 查看系统是否可用 cuda 初环境与设备查看环境演示效果 本篇文章将介绍ubuntu python 查看系统是否可用 cuda 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统:ubuntu 22.04 工具:python 3.10.6 设备:Nvidi…

Vue2-绑定样式、条件渲染、列表渲染、列表过滤、模糊查询、Vue监测数据原理

🥔:想只有苦难,做才有答案 更多Vue知识请点击——Vue.js VUE2-Day3 绑定样式1、class绑定2、绑定style样式 条件渲染1、v-show2、v-if条件渲染案例 列表渲染1、v-for2、key的作用与原理(重要)面试题:react、…

win10笔记本触摸板手势大全

转载于:https://www.cnblogs.com/wangyuehan/p/9745806.html

win10触控板手势

进入手势设置的位置 先打开开始菜单,点击设置 进入设备 windows 10触控板有以下手势操作

Windows快捷键(三)—— 触摸板手势

先来一张图: like Mac 放大缩小:双指张开或捏合。右击:双指点击触摸板。滚动条:双指上下左右滑。切换桌面:四指左右滑。 显示桌面 三指下滑(再往上滑则恢复最初的页面),Win D&…

win10触摸板双指单击不能唤出右键菜单

win10一大特点就是触摸板多功能,单击双指三指四指,双指滑动,三指滑动等等。其中我觉得双指单击触摸板模拟鼠标右键是非常实用的功能,如果你的电脑双指单击没效果,那你的注册表需要修改了。 步骤是: 1、wi…

让你的win10随触摸板手势跑起来

原文参考 前言: 可能现在你还在使用win8、win7甚至还在使用winxp, 想象一下你用的新买的笔记本还在使用“时尚”的 metro 风格 , 豪华的areo风格, 蓝绿条的XP系统时候,你还在用最古老的方式去操作你的笔记本。可能你…

Win11 快捷键及触控板手势 —— 你不得不知

尊敬的Win11 用户,您好! Win11 为用户设计了很多强大的功能以及便捷的快捷键,你的触控板也暗藏玄机。 接下来让我带你认识一下你的Win11。 触控板 点击开始菜单,搜索触控板设置,即可查看你的触控板的手势和交互设置。…

Win10使用说明 - 任务栏设置、触摸板手势和使用偏好

Windows任务栏是一个非常重要的部分,各个应用程序在桌面屏幕上逐个切换,但任务栏是一直不变的。 所以设置好任务栏对更好的使用电脑非常重要,右键点击任务栏,出现如下菜单: 从下往上看: 1,Task…

win之下——快捷键、触摸板手势

下面我们一起来了解一些能够提高使用效率的常用快捷键(以windows系统为例)。 win之下——快捷键、触摸板手势 截屏适用于 Windows 10 的触摸板手势基础快捷键(入门必看,高手绕道)进阶快捷键高级快捷键其他快捷键 截屏 …

windows10触摸板使用技巧

前言: 可能现在你还在使用win8、win7甚至还在使用winxp, 想象一下你用的新买的笔记本还在使用“时尚”的 metro 风格 , 豪华的areo风格, 蓝绿条的XP系统时候,你还在用最古老的方式去操作你的笔记本。可能你还不知道触摸…

Win11触摸板手势自定义设置方法

Win11系统支持多种多点触控板手势,但是需要注意的是,并非所有Windows笔记本电脑都允许使用“设置”应用自定义触控板手势,只有具有Windows Precision触摸板驱动程序的笔记本电脑支持本机自定义。下面我们就来看看Win11触摸板手势自定义设置方…

产品经理如何突破职业瓶颈,杀出重围?

随着社会的进步和科技的发展,互联网行业从未停止过发展的脚步。而在这个充满机遇和挑战的赛道上,互联网产品经理的角色显得尤为重要。然而,随着互联网产品经理的数量逐年增加,内卷化现象也日益严重。那么,产品经理应该…

千万不要和女程序员做同事!

作者丨临公子 来源丨临公子的后花园(hi-lingongzi) 如果说,每个程序员都是格子衫的化身,那么,每个女程序员,早已不需要格子衫作为职业铠甲。 随身带电脑是必修课, 手机装VPN是安全感&#xff0c…