
Java面试
文章平均质量分 90
JavaGuide
开源项目—JavaGuide (80k+Star)作者运营维护。专注Java后端学习!内容涵盖Java面试指南、Spring Boot、Dubbo、Zookeeper、Redis、Nginx、消息队列、系统设计、架构、编程规范等内容。
展开
-
腾讯Java后端一面,被速通了!
分享一篇腾讯的后端Java一面凉经,被速通了, 大家感受一下难度如何。这次面试的考察覆盖了从 项目经验的深度挖掘(面试官非常看重 STAR 法则的应用)到 扎实的计算机基础(经典的 TCP/UDP 对比、MySQL 事务与 MVCC 原理),再到 分布式系统 的核心概念(如分布式锁的必要性与 Redis 实现),甚至还涉及了对 新兴技术趋势(如 AI 辅助编码)的看法,最后当然少不了 算法能力 的现场检验。原创 2025-04-27 15:20:19 · 62 阅读 · 0 评论 -
Mysql锁机制简单了解一下
一 锁分类(按照锁的粒度分类)Mysql为了解决并发、数据安全的问题,使用了锁机制。可以按照锁的粒度把数据库锁分为表级锁和行级锁。表级锁:Mysql中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单 ,资源消耗也比较少,加锁快,不会出现死锁 。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM和 InnoDB引擎都支持表级锁。行级锁Mysql中锁定 粒...原创 2018-06-07 20:52:11 · 46940 阅读 · 19 评论 -
社招 Java 中厂面试记录,难度有点大!
社招一年半:上海海鼎信息和深圳小赢科技:总体难度还是有点大的,第二家公司拷打的问题非常非常多,一共 60 个问题,多少有点离谱儿。不过,面试体验很好,面试官会引导往哪个方向思考。原创 2025-03-30 14:03:59 · 393 阅读 · 0 评论 -
招银网路Java后端一面,难度有点大!
自我介绍一般是你和面试官的第一次面对面正式交流,换位思考一下,假如你是面试官的话,你想听到被你面试的人如何介绍自己呢?一定不是客套地说说自己喜欢编程、平时花了很多时间来学习、自己的兴趣爱好是打球吧?用简单的话说清楚自己主要的技术栈于擅长的领域;把重点放在自己在行的地方以及自己的优势之处;重点突出自己的能力比如自己的定位的 bug 的能力特别厉害;自我介绍并不需要死记硬背,记住要说的要点,面试的时候根据公司的情况临场发挥也是没问题的。原创 2025-01-02 12:53:34 · 1801 阅读 · 0 评论 -
蔚来 Java 后端实习终于 OC 了,分享一下面经!
用简单的话说清楚自己主要的技术栈于擅长的领域,例如 Java 后端开发、分布式系统开发;把重点放在自己的优势上,重点突出自己的能力比如自己的定位的 bug 的能力特别厉害;避免避实就虚,适当举例体现自己的能力,例如过往的比赛经历、实习经历;自我介绍的时间不宜过长,一般是 1~2 分钟之间。你对项目基本情况(比如项目背景、核心功能)以及整体设计(比如技术栈、系统架构)的了解(面试官可能会让你画系统的架构图、让你讲解某个模块或功能的数据库表设计)你在这个项目中你担任了什么角色?负责了什么?原创 2024-12-14 17:02:46 · 156 阅读 · 0 评论 -
贝壳后端面试,拿下了!
用简单的话说清楚自己主要的技术栈于擅长的领域,例如 Java 后端开发、分布式系统开发;把重点放在自己的优势上,重点突出自己的能力比如自己的定位的 bug 的能力特别厉害;避免避实就虚,适当举例体现自己的能力,例如过往的比赛经历、实习经历;自我介绍的时间不宜过长,一般是 1~2 分钟之间。如果你有实习经历的话,自我介绍之后,第二个问题一般就是聊你的实习经历。面试之前,一定要提前准备好对应的话术,突出介绍自己实习期间的贡献。原创 2024-11-29 15:54:44 · 758 阅读 · 0 评论 -
面试官:谈谈你对 IoC 和 AOP 的理解!
IoC (Inversion of Control )即控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。例如:现有类 A 依赖于类 B传统的开发方式:往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来使用 IoC 思想的开发方式:不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面去取即可。原创 2024-09-25 16:50:23 · 400 阅读 · 0 评论 -
熬了快两个月,终于拿到了淘天后端offer!
1. 实习/项目经历 > 算法 > 学历 > Java八股文。项目是被拷打最多的,然后算法真的很重要,笔试成绩不好直接排序到很久才有机会面试,大厂喜欢卡学历,八股多花时间总能背下来,但前面的三项不好就一点机会没有了。2. 实习没必要投太早,有一个靠谱的内推人真的很重要。实习投的早,可能第一场笔试会比较难。有一个靠谱的内推人可以帮你查进度,催hr加快进度,没人帮忙查真的很折磨3. 暑期实习是一个持久战,非常折磨心态。原创 2024-05-15 17:15:15 · 794 阅读 · 0 评论 -
面试官:为什么忘记密码要重置而不是告诉你原密码?
如果明文存储的话,风险太大,且不说数据库的数据有被盗的风险,如果被服务端的相关人员特别是有数据库权限的恶意利用,那将是不可预估的风险。当你输入密码登录之后,服务端会先把你的密码对应的盐取出,然后再去执行一遍获取哈希值的过程。盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让哈希后的结果和使用原始密码的哈希结果不相符,这种过程称之为“加盐”。哈希算法的是不可逆的,你无法通过哈希之后的值再得到原值,这样的话,服务端也不知道你的原密码到底是什么,自然没办法告诉你原密码是什么。原创 2024-04-16 11:01:15 · 870 阅读 · 0 评论 -
京东后端实习一面(附详解),秒挂!
简单来说,引用拷贝就是两个不同的引用指向同一个对象。原创 2024-04-03 15:31:39 · 1504 阅读 · 0 评论 -
OPPO后端二面,凉了!
/... }//...String保存字符串的数组被final修饰且为私有的,并且String类没有提供/暴露修改这个字符串的方法。String类被final修饰导致其不能被继承,进而避免了子类破坏String不可变。在 Java 9 之后,String与的实现改用byte数组存储字符串。// @Stable 注解表示变量最多被修改一次,称为“稳定的”。// @Stable 注解表示变量最多被修改一次,称为“稳定的”。@Stable。原创 2024-03-13 21:39:46 · 1193 阅读 · 0 评论 -
Redis 八种常用数据类型详解
String 是 Redis 中最简单同时也是最常用的一个数据类型。String 是一种二进制安全的数据类型,可以用来存储任何类型的数据比如字符串、整数、浮点数、图片(图片的 base64 编码或者解码或者图片的路径)、序列化后的对象。虽然 Redis 是用 C 语言写的,但是 Redis 并没有使用 C 的字符串表示,而是自己构建了一种简单动态字符串SDS。原创 2024-03-13 21:38:35 · 1076 阅读 · 0 评论 -
焦虑秋招选手,成功拿到了美团、百度、阿里等大厂offer!
面经就先写这几家吧,其他的几家也跟这其实差不多,项目+八股,所以简历上所有东西一定要全部弄明白,面试官问的太难也别害怕,落落大方点,太难了不会就是不会,可能他们一开始就没想要你,就算舔的通过了,薪资啥的也不太行,心里别太有负担,适合你的公司肯定会出现。其实给我最大的感受就是,在时代浪潮面前,我们每个人的努力显得渺小无力,但个人的努力和知识积累,会让你在当前时代下有较好选择。最后呢,回想起这整整一年的经历,感觉挺不易,就像人生的道路一样,哪有一帆风顺,但好在自己一直没有放弃,一直在努力。原创 2024-02-29 15:51:16 · 922 阅读 · 0 评论 -
美团面试:Redis 除了缓存还能做什么?可以做消息队列吗?
这是一道面试中常见的 Redis 基础面试题,主要考察求职者对于 Redis 应用场景的了解。即使不准备面试也建议看看,实际开发中也能够用到。原创 2023-11-02 20:19:04 · 1626 阅读 · 0 评论 -
美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以?
周末的时候,有一位小伙伴提了一些关于的问题,都是他最近面试遇到的。原提问如下(星球原贴地址:https://t.zsxq.com/11jcuezQs ):下面我会以此提供这两个问题的详细答案,希望对你有帮助。原创 2023-08-28 21:07:51 · 2161 阅读 · 0 评论 -
Redis持久化机制 RDB、AOF、混合持久化详解!如何选择?| JavaGuide
Redis 可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。快照持久化是 Redis 默认采用的持久化方式,在redis.confsave 900 1 # 在 900 秒(15 分钟) 之后,如果至少有 1 个key发生变化,Redis就会自动触发bgsave命令创建快照。原创 2023-07-27 19:31:48 · 1274 阅读 · 0 评论 -
Java 成员变量与局部变量有什么区别?
(Github 标星 134k star!「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识)原创 2023-05-18 15:55:51 · 1090 阅读 · 0 评论 -
三分钟看懂JDK、JRE和JVM的区别和联系
节选自(Github 标星 134k star!「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识)原创 2023-05-18 15:41:34 · 1983 阅读 · 0 评论 -
Java 变量常见面试题总结
摘自。原创 2023-04-08 22:11:54 · 722 阅读 · 0 评论 -
Java 自增自减运算符和移位运算符介绍
当运算符放在变量之后时(后缀),先赋值,再自增/减。在写代码的过程中,常见的一种情况是需要某个整数类型变量增加 1 或减少 1,Java 提供了一种特殊的运算符,用于这种表达式,叫做自增运算符(++)和自减运算符(–)。由于左移位数大于等于 32 位操作时,会先求余(%)后再进行左移操作,所以下面的代码左移 42 位相当于左移 10 位(42%32=10),输出结果和前面的代码一样。掌握最基本的移位运算符知识还是很有必要的,这不光可以帮助我们在代码中使用,还可以帮助我们理解源码中涉及到移位运算符的代码。原创 2023-04-07 14:08:55 · 891 阅读 · 0 评论 -
Oracle JDK 和 OpenJDK 有什么区别?
(个人观点:众所周知,JDK 原来是 SUN 公司开发的,后来 SUN 公司又卖给了 Oracle 公司,Oracle 公司以 Oracle 数据库而著名,而 Oracle 数据库又是闭源的,这个时候 Oracle 公司就不想完全开源了,但是原来的 SUN 公司又把 JDK 给开源了,如果这个时候 Oracle 收购回来之后就把他给闭源,必然会引起很多 Java 开发者的不满,导致大家对 Java 失去信心,那 Oracle 公司收购回来不就把 Java 烂在手里了吗!OpenJDK 更新频率更快。原创 2023-04-07 14:07:16 · 2230 阅读 · 2 评论 -
什么是 Java 字节码?采用字节码的好处是什么?
HotSpot 采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是 JIT 所需要编译的部分。JVM 会根据代码每次被执行的情况收集信息并相应地做出一些优化,因此执行的次数越多,它的速度就越快。所以, Java 程序运行时相对来说还是高效的(不过,和 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。原创 2023-04-07 13:40:12 · 743 阅读 · 0 评论 -
JVM 、JDK 、JRE都是什么意思?有什么区别?
摘自(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!原创 2023-04-07 13:39:39 · 1059 阅读 · 0 评论 -
面试官:什么是双亲委派模型?如何打破它?
类加载器从 JDK 1.0 就出现了,最初只是为了满足 Java Applet(已经被淘汰) 的需要。后来,慢慢成为 Java 程序中的一个重要组成部分,赋予了 Java 类可以被动态加载到 JVM 中并执行的能力。根据官方 API 文档的介绍:翻译过来大概的意思是:类加载器是一个负责加载类的对象。是一个抽象类。给定类的二进制名称,类加载器应尝试定位或生成构成类定义的数据。典型的策略是将名称转换为文件名,然后从文件系统中读取该名称的“类文件”。每个 Java 类都有一个引用指向加载它的。原创 2023-03-08 15:08:35 · 596 阅读 · 0 评论 -
万字详解,吃透 MongoDB!
TTL 索引提供了一个过期机制,允许为每一个文档设置一个过期时间,当一个文档达到预设的过期时间之后就会被删除。TTL 索引除了有属性外,和普通索引一样。数据过期对于某些类型的信息很有用,比如机器生成的事件数据、日志和会话信息,这些信息只需要在数据库中保存有限的时间。TTL 索引运行原理。原创 2023-01-29 15:24:38 · 2614 阅读 · 0 评论 -
1.5万字总结 Redis 常见面试题&知识点
Redis是一个基于 C 语言开发的开源数据库(BSD 许可),与传统数据库不同的是 Redis 的数据是存在内存中的(内存数据库),读写速度非常快,被广泛应用于缓存方向。并且,Redis 存储的是 KV 键值对数据。为了满足不同的业务场景,Redis 内置了多种数据类型实现(比如 String、Hash、Sorted Set、Bitmap)。并且,Redis 还支持事务 、持久化、Lua 脚本、多种开箱即用的集群方案(Redis Sentinel、Redis Cluster)。原创 2023-01-11 11:39:24 · 1002 阅读 · 0 评论 -
BigDecimal详解和精度问题
BigDecimal可以实现对浮点数的运算,不会造成精度丢失。通常情况下,大部分需要浮点数精确运算结果的业务场景(比如涉及到钱的场景)都是通过BigDecimal来做的。浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断。具体原因我们在上面已经详细介绍了,这里就不多提了。想要解决浮点数运算精度丢失这个问题,可以直接使用BigDecimal来定义浮点数的值,然后再进行浮点数的运算操作即可。// 0。原创 2022-08-25 15:56:13 · 612 阅读 · 0 评论 -
1.2 w字+!Java IO 基础知识系统总结 | JavaGuide
IO 即,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为 IO 流。IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。...原创 2022-08-18 14:42:28 · 493 阅读 · 0 评论 -
面试常问:HTTP 1.0 和 HTTP 1.1 有什么区别?
连接方式: HTTP 1.0 为短连接,HTTP 1.1 支持长连接。状态响应码: HTTP/1.1中新加入了大量的状态码,光是错误响应状态码就新增了24种。比如说,——在请求大资源前的预热请求,——范围请求的标识码,——请求与当前资源的规定冲突,410 (Gone)——资源已被永久转移,而且没有任何已知的转发地址。缓存处理。...原创 2022-08-16 21:29:08 · 1080 阅读 · 0 评论 -
Spring 常见面试题总结 | JavaGuide
Spring是一款开源的轻量级Java开发框架,旨在提高开发人员的开发效率以及系统的可维护性。我们一般说Spring框架指的都是SpringFramework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说Spring支持IoC(InverseofControl控制反转)和AOP(Aspect-OrientedProgramming语言的流行通常需要一个杀手级的应用,Spring就是Java生态的一个杀手级的应用框架。https...原创 2022-08-01 19:04:44 · 590 阅读 · 0 评论 -
Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)详解 | JavaGuide
String是Redis中最简单同时也是最常用的一个数据结构。String是一种二进制安全的数据结构,可以用来存储任何类型的数据比如字符串、整数、浮点数、图片(图片的base64编码或者解码或者图片的路径)、序列化后的对象。虽然Redis是用C语言写的,但是Redis并没有使用C的字符串表示,而是自己构建了一种简单动态字符串SDS)。Redis中的List其实就是链表数据结构的实现。我在线性数据结构数组、链表、栈、队列LinkedList双向链表HashMap。和。...原创 2022-07-26 15:08:59 · 563 阅读 · 0 评论 -
MySQL 锁常见知识点&面试题总结
MyISAM 仅仅支持表级锁(table-level locking),一锁就锁整张表,这在并发写的情况下性非常差。InnoDB 不光支持表级锁(table-level locking),还支持行级锁(row-level locking),默认为行级锁。行级锁的粒度更小,仅对相关的记录上锁即可(对一行或者多行记录加锁),所以对于并发写入操作来说, InnoDB 的性能更高。表级锁和行级锁对比 :InnoDB 的行锁是针对索引字段加的锁,表级锁是针对非索引字段加的锁。当我们执行 、 语句时,如果 条件中字段没原创 2022-06-29 21:17:25 · 650 阅读 · 0 评论 -
Java 基础常见知识点&面试题总结(下),2022 最新版!
你好,我是 Guide。秋招即将到来,我对 JavaGuide 的内容进行了重构完善,同步一下最新更新,希望能够帮助你。前两篇:Java 异常类层次结构图概览 :在 Java 中,所有的异常都有一个共同的祖先 包中的 类。 类有两个重要的子类:Checked Exception 即 受检查异常 ,Java 代码在编译过程中,如果受检查异常没有被 或者 关键字处理的话,就没办法通过编译。比如下面这段 IO 操作的代码:除了及其子类以外,其他的类及其子类都属于受检查异常 。常见的受检查异常有: IO 相关的原创 2022-06-21 17:02:33 · 596 阅读 · 0 评论 -
普通人的2022春招总结(阿里、腾讯offer)
写这篇文章的时候,腾讯 offer 已经下来了,春招也算结束了,这次找暑期实习没有像去年找日常实习一样海投,只投了 BAT 三家,阿里和腾讯收获了 offer,字节没有给面试机会,可能是笔试太拉垮了。楼主大三,双非本科,我的春招的起始时间应该是 2 月 20 日到 3 月 23 日收到阿里意向书为止,但是从 3 月 7 日蚂蚁技术终面面完之后就没有面过技术面了,只面过两个 HR 面,剩下的时间都在等 offer。最开始是找朋友内推了字节财经的日常实习,但是到现在还在简历评估,后面又投了财经的暑期实习,笔试之原创 2022-06-20 12:05:13 · 656 阅读 · 0 评论 -
一文带你搞懂 JWT 常见概念 & 优缺点
在 JWT 基本概念详解这篇文章中,我介绍了:这篇文章,我们一起探讨一下 JWT 身份认证的优缺点以及常见问题的解决办法。相比于 Session 认证的方式来说,使用 JWT 进行身份认证主要有下面 4 个优势。JWT 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。不过,也正是由于 JWT 的无状态,也导致了它最大的缺点:不可控!就比如说,我们想要在 JWT 有效期内废弃一个 JWT 或者更改它的权限的话,并原创 2022-06-17 11:30:03 · 592 阅读 · 0 评论 -
我的 Java 学习&面试网站又又又升级了!
晚上好,我是 Guide。距离上次介绍 JavaGuide 新版在线阅读网站已经过去 7 个多月了(相关阅读:官宣!我升级了!!!),这 7 个多月里不论是 JavaGuide 的内容,还是 JavaGuide 新版在线阅读网站,都进行了非常多的完善改进。从 3452 commits 到 4145 commits,不算多不算少。用心维护,真心希望能够提供帮助给需要的小伙伴。最近有很多小伙伴在备战秋招,为了能够助力大家准备面试,今天再来简单介绍一下 JavaGuide 新版在线阅读网站的近况。即使你不准备面试原创 2022-06-14 20:51:31 · 497 阅读 · 1 评论 -
Java 基础常见知识点&面试题总结(中),2022 最新版!| JavaGuide
你好,我是 Guide。秋招即将到来,我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你。上篇:Java 基础常见知识点&面试题总结(上),2022 最新版!原文地址: https://javaguide.cn/java/basis/java-basic-questions-02.html两者的主要区别在于解决问题的方式不同:另外,面向对象开发的程序一般更易维护、易复用、易扩展。相关 issue : 面向过程 :面向过程性能比面向对象高??new 运算符,new 创建对象原创 2022-06-13 20:40:05 · 399 阅读 · 0 评论 -
Java 基础常见知识点&面试题总结(上),2022 最新版!| JavaGuide
你好,我是 Guide。秋招即将到来,我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你。🌈 拓展一下:“Write Once, Run Anywhere(一次编写,随处运行)”这句宣传口号,真心经典,流传了好多年!以至于,直到今天,依然有很多人觉得跨平台是 Java 语言最大的优势。实际上,跨平台已经不是 Java 最大的卖点了,各种 JDK 新特性也不是。目前市面上虚拟化技术已经非常成熟,比如你通过 Docker 就很容易实现跨平台了。在我看来,Java 强大的生态.原创 2022-06-09 14:34:29 · 1089 阅读 · 0 评论 -
7年经验社招终于上岸Java开发!
分享一位读者的面试经历,这位朋友工作已经八年,之前一直从事 PHP 开发工作,微信公众号开发、保险行业都做过。2 月 21 号的时候正式提交离职申请,3.1 号开始学习 Java。4 月 18 号的时候,成功拿到了自己的第一个 Java 后端开发 Offer。下面是正文。本人今天刚刚收到 offer 了,所以特别来分享一下我面试中遇到的问题以及面试需要注意的事项,绝对有用!!!第一家公司公司主要是一个负责供应链采购的公司,面试的部分问题如下:总结 :这家公司比较小,主要是目前需要一个技术快速上手做项目,我面原创 2022-06-08 11:02:27 · 680 阅读 · 0 评论 -
MySQL 事务常见面试题总结 | JavaGuide
我们设想一个场景,这个场景中我们需要插入多条相关联的数据到数据库,不幸的是,这个过程可能会遇到下面这些问题:上面的任何一个问题都可能会导致数据的不一致性。为了保证数据的一致性,系统必须能够处理这些问题。事务就是我们抽象出来简化这些问题的首选机制。事务的概念起源于数据库,目前,已经成为一个比较广泛的概念。何为事务? 一言蔽之,事务是逻辑上的一组操作,要么都执行,要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账 1000 元,这个转账会涉及到两个关键操作,这两个操作必须都成功或者都失原创 2022-06-08 11:01:22 · 301 阅读 · 0 评论