随笔分类 - Java高频面试题
摘要:
面试官:看你简历上面写着精通MySQL,我问你一个MySQL锁相关的问题,你看一下这条SQL会对哪些数据加锁?
阅读全文

摘要:
MySQL有两个核心的知识点,索引和锁。前几篇文章已经详细讲解了MySQL索引实现机制,今天再一起学习一下MySQL的锁。
阅读全文

摘要:
迎面走来了你的面试官,身穿格子衫,挺着啤酒肚,发际线严重后移的中年男子。 手拿泡着枸杞的保温杯,胳膊夹着MacBook,MacBook上还贴着公司标语:“我爱加班”。 面试开始,直入正题。 面试官: 看你简历上面写着精通MySQL,我先问你事务的特性是什么? 老生常谈,这个还有谁不会背的吗? 我:
阅读全文

摘要:
迎面走来了你的面试官,身穿格子衫,挺着啤酒肚,发际线严重后移的中年男子。 手拿泡着枸杞的保温杯,胳膊夹着MacBook,MacBook上还贴着公司标语:“加班使我快乐”。 面试官: 看你简历上用过MySQL,问你几个简单的问题吧。什么是聚簇索引和非聚簇索引? 这个问题难不住我啊。来之前我看一下一灯M
阅读全文

摘要:
迎面走来了你的面试官,身穿格子衫,挺着啤酒肚,发际线严重后移的中年男子。 手拿泡着枸杞的保温杯,胳膊夹着MacBook,MacBook上还贴着公司标语:“我爱加班”。 面试开始,直入正题。 面试官: 你知道MySQL索引底层数据结构为啥用B+树?而不用B树、红黑树或者普通二叉树? 我: 这事谁知道作
阅读全文

摘要:
一个美女面试官坐到我的对面,发光logo的MacBook也挡不住她那圆润可爱的脸庞。 程序媛本就稀有,美女面试官更是难寻。具体长什么样呢?就像下面这样: 这么温柔可爱的面试官,应该不会为难我吧。嗯,应该是的,毕竟我这么帅气,面试可能就是走个过场。美女面试官是不是单身?毕竟程序员都不善交流,因为我也是
阅读全文

摘要:
一个挺着啤酒肚,身穿格子衫,发际线严重后移的中年男子,手拿着保温杯,胳膊夹着MacBook向你走来,看样子是架构师级别。 面试开始, 直入正题。 面试官: 你有没有参与过秒杀系统的设计? 我: 没有,我平时都是开发后台管理系统、OA办公系统、内部管理系统,从来没有开发过秒杀系统。 面试官: 嗯...
阅读全文

摘要:
一个挺着啤酒肚,身穿格子衫,发际线严重后移的中年男子,手拿着保温杯,胳膊夹着MacBook向你走来,看样子是架构师级别。 面试开始,直入正题。 面试官: 小伙子,看到你的简历上面写了项目中有对MySQL进行分库分表,为什么要进行分库分表? 我: 不知道啊!谁知道老大咋想的,反正我来的时候就已经分好了
阅读全文

摘要:
互联网公司的项目没有不用到MQ(消息队列)的,在简历中写上项目中用到MQ,也算是亮点之一。既然你写了,面试官就会问,你对MQ到底了解多少? 一个挺着啤酒肚,身穿格子衫,发际线严重后移的中年男子,手拿着保温杯,胳膊夹着MacBook向你走来。 **面试官:**小伙子,我看你简历上写了,在项目中用到了M
阅读全文

摘要:
0. 前情提要 面试官: 你能手写个LRU缓存吗? 你: LRU是什么东西?(一脸懵逼状) 面试官: LRU全称Least Recently Used(最近最少使用),用来淘汰不常用数据,保留热点数据。 你写了5分钟,然而只写了个get和put方法体,里面逻辑实在不知道咋写。 面试官: 今天的面试先
阅读全文

摘要:
我们经常需要统计一个方法的耗时,一般我们会这样做: public class Test { public static void main(String[] args) throws InterruptedException { long start = System.currentTimeMill
阅读全文

摘要:
面试的时候,总会遇到这么一个场景。 1. 场景分析 面试官:你们的服务的QPS是多少? 我:我们的服务高峰期访问量还挺大的,大约是3万吧。 面试官:这么大的访问量,你们的服务器能撑住吗?有加缓存吗? 我:有的,我们使用了Redis做缓存,接口优先查询缓存,缓存不存在,才访问数据库。这样可以减少数据库
阅读全文

摘要:
线上问题年年有,今年特别多。记几次线上惨痛的踩坑记录,希望大家以史为鉴。 1. 包装类型自动解箱导致空指针异常 public int getId() { Integer id = null; return id; } 如果调用上面的方法会发生什么?id是Integer类型,而方法的返回值int类型,
阅读全文

摘要:
工作很多年后,才发现有很多工具类库,可以大大简化代码量,提升开发效率,初级开发者却不知道。而这些类库早就成为了业界标准类库,大公司的内部也都在使用,如果刚工作的时候就有人告诉我使用这些工具类库,该多好! 一块看一下有哪些工具类库你也用过。 1. Java自带工具方法 1.1 List集合拼接成以逗号
阅读全文

摘要:
Java程序员工作中遇到最多的错误就是空指针异常,无论你多么细心,一不留神就从代码的某个地方冒出NullPointerException,真是令人头疼。 到底怎么避免空指针异常?看完这篇文章,可以帮助你。 1. 对象设置默认值 Object obj = new Object(); String st
阅读全文

摘要:
ArrayList是我们开发中最常用到的集合,但是很多人对它的源码并不了解,导致面试时,面试官问的稍微深入的问题,就无法作答,今天我们一起来探究一下ArrayList源码。 1. 简介 ArrayList底层是数组,允许元素是null,能够动态扩容 size、isEmpty、get、set、add
阅读全文

摘要:
HashMap在工作中使用非常频繁,其实在JDK1.8的时候新增一些更高阶的用法,熟练使用这些方法可以大大提升开发效率,写出更简洁优美的代码。 1. get方法指定返回默认值(getOrDefault) Map<String, String> map = new HashMap<>(); map.p
阅读全文

摘要:Java8新增的Stream流大大减轻了我们代码的工作量,但是Stream流的用法较多,实际使用的时候容易遗忘,整理一下供大家参考。
阅读全文