何止一个惨字形容,水滴 Java 面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

本文分享了一位粉丝在水滴公司的面试经历,主要涉及Java基础、线程、JVM、集合、垃圾回收、Servlet、MySQL数据库等方面的问题。面试者在数据库部分表现欠佳,对范式、索引、主键等概念不熟悉。面试官给出了反馈,指出基础扎实但部分知识点深度不够。文章最后提到,面试者计划恶补相关知识,并分享了全面的面试复习资源。
摘要由CSDN通过智能技术生成

以下来自一位粉丝的投稿,对这位的经历呢 ,我也是深表同情的,下面是他前不久水滴面试的一次经过,小编我也是用第一人称的口吻来给大家展示一下他的面经吧

1 .自我介绍

2 .Java 基础

  • static 关键字是用来干什么的,static 修饰的方法里面可以使用非静态的成员变量吗,为什么呢

  • private 修饰的方法是否可以被子类覆盖

  • 覆盖和重载有什么区别

  • 进程跟线程的区别

  • Java 中创建线程有几种方式 a. 反思:讲完三种方式之后,应该深入对比各种方式的优劣性,拖时间,还显得我有深度,嗯

  • 线程有那些状态

  • 线程被中断跟被阻塞有什么区别

  • 什么是死锁

  • JVM 的场景下怎么去发现死锁

  • Java 中有哪些集合类

  • 如何权衡使用有序数组还是无序数组 a. 有序数组是有查找需求。无序数组主要是插入删除方便。b. 从时间复杂度角度分析查找效率

  • Java 垃圾回收的目的是啥

  • 程序中把一个对象的引用直接置为 null,会立即触发垃圾回收吗

  • 垃圾回收有串行收集器和吞吐量收集器,它们的区别是什么

  • throw 和 throws 有什么区别

  • 什么是 servlet

  • servlet 生命周期有哪些

  • HttpClient 的 doGet 和 doPost 有什么区别

  • cookie 和 session 的区别

MySQL

开始血崩。。。

  • 数据库有哪些范式 a. 不太了解

  • JDBC 驱动程序有哪三种方式,注册 JDBC 那个 a. class.ForName()b. 另外两种不太记得。。

  • 什么是聚集索引,什么是非聚集索引 a. 讲不清

  • 主键基本上用 mysql 自带的自增主键作为索引。为什么要用自增列作为主键

  • drop、trancate、delete(我听成 delay 了),这三个命令是用来干啥的 a. 没怎么用过。。

  • delete 删除的数据,这条数据的存储空间会得到释放吗 a. 应该不会。。 不太清楚

  • 联表操作有内连接、外连接、交叉连接、笛卡尔传递(?),这四种方式有什么区别 a. 内连接:显式的使用 inner join ,隐式使用 whereb. 外连接:左外跟右外 c. 第三个不太了解

  • varchar 跟 char 这两个数据类型有什么区别 a. 首先都是字符串 b. 大小和类型不一样 c. char 是 255 个字节,varchar 是 65535 个字节 d. char 定长,varchar 不定长

  • 表的记录行数会用到 count(*)、count(1)、count(column),三种方式有什么区别

  • MySQL 会出现一些慢查。首先慢查怎么去发现 a. 没有了解过。。

  • 数据库主从复制有了解过吗 a. 没有。。

其他

诶。shell 你用过吗 a. 有听过没有用过。。。项目开发工具用的是啥 a. IDEA 有用到 Maven 吗?Maven 打包是怎么打的 a. 不太记得了。。编程题

从一个数组里面删除所有值为 a 的所有元素。

单例模式的实现 a. 写了个懒汉式双重判断 b. 面试官:有别的实现方式吗?别的实现方式还有啥,随便说一下ⅰ. 其实他想问的应该是饿汉式

反问

面试流程,有几轮,分别是什么 a. 两轮技术+一轮 HR 结果什么时候出 a. 看具体情况。我也不知道给我的建议。评价一下今天的表现 a. 基础还可以。有些知识点深度不太够。沟通表达,理解能力还不错贵公司这个岗位看重什么能力 a. 应届生看重潜力,学习能力,学习主动性工作地都在北京对吧 a. 研发岗位主要在北京做什么方向,什么产品 a. 水滴筹、水滴互助、水滴保,三大主要业务线面试结束

面试总结

太惨了,数据库血崩。11 个问题我只能回答两三个。。下来要去恶补 shell 没用过,maven 的面试题没准备过,垃圾收集器不会,throw 和 throws 混淆,servlet 忘了,哎。。为了要帮他恶补,我也是网罗了 2021 年所有大厂的高频面试题及所需要用到的核心知识点,现在也拿出来 share 给大家,希望大家不要像这位粉丝一样无头苍蝇乱撞一气!

分享面试刷题复习笔记

1、Java 后端覆盖 1000 多道常问面试题及答案详解

上千道 Java、Spring、JVM、集合、JVM、Mybatis、MySQL、DB、GC、Spring 全家桶、Dubbo、数据结构、算法、Kafka、微服务等

2、阿里 P8 大牛写出来的 283 页 Java 核心知识

3、面试宝典

面试复习宝典、面试前刷一遍对你帮助非凡!

2021 年 350 道面试体系

最后

整份文档一共有将近 400 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!需要的小伙伴关注后私信回复“666”获取。

缓存击穿、缓存穿透和缓存雪崩都是与缓存相关的题,它们可能导致系统性能下降甚至宕机。下面分别解释这三个概念: 1. 缓存击穿(Cache Breakdown):当一个缓存键(key)对应的数据在缓存中不存在,但是对该数据的并发请求非常多时,这些请求会直接访数据库或其他数据源,导致数据库负载过高。这种情况下,缓存起不到应有的作用,而是成了一个瓶颈。 2. 缓存穿透(Cache Penetration):当一个缓存键对应的数据在缓存中不存在,并且对该数据的请求非常频繁时,大量的请求会直接穿透缓存访数据库或其他数据源。这种情况下,由于缓存无法命中,数据库负载会剧增,可能导致数据库压力过大甚至崩溃。 3. 缓存雪崩(Cache Avalanche):当缓存中的大量数据同时失效或过期时,在缓存重新加载数据的过程中,大量并发请求会直接访数据库或其他数据源。这种情况下,数据库负载会急剧增加,可能导致系统崩溃。缓存雪崩通常是由于缓存中的数据过期时间设置不合理或者缓存服务器故障等原因引起的。 为了避免以上题,可以采取以下措施: 1. 设置合理的缓存过期时间,避免缓存数据同时失效。 2. 使用互斥锁或分布式锁,确保只有一个请求能够从数据库中加载数据。 3. 引入热点数据预加载,提前将热点数据加载到缓存中,减少缓存穿透的可能性。 4. 使用多级缓存架构,将请求分散到不同的缓存节点,降低单个缓存节点的压力。 5. 监控缓存命中率和缓存服务器的状态,及时发现和解决题。 通过合理的设计和有效的监控,可以有效地避免缓存击穿、缓存穿透和缓存雪崩等题,提升系统的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值