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

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

1 自我介绍

2 Java基础

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

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

  3. 覆盖和重载有什么区别

  4. 进程跟线程的区别

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

  6. 线程有那些状态

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

  8. 什么是死锁

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

  10. Java中有哪些集合类

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

  12. Java垃圾回收的目的是啥

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

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

  15. throw和throws有什么区别

  16. 什么是servlet

  17. servlet生命周期有哪些

  18. HttpClient的doGet和doPost有什么区别

  19. cookie和session的区别

MySQL

开始血崩。。。

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

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

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

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

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

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

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

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

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

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

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

其他

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

编程题

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

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

反问

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

面试结束

面试总结

  1. 太惨了,数据库血崩。11个问题我只能回答两三个。。下来要去恶补
  2. shell没用过,maven的面试题没准备过,垃圾收集器不会,throw和throws混淆,servlet忘了,哎。。

为了要帮他恶补,我也是网罗了2020年所有大厂的高频面试题及所需要用到的核心知识点,现在也拿出来免费分享给大家,希望大家不要像这位粉丝一样无头苍蝇乱撞一气!

以上所有面试题都已被整理到网盘,需要的朋友可以关注我的公众号后,回复“阿里”获取

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
缓存击穿、缓存穿透和缓存雪崩都是与缓存相关的题,它们可能导致系统性能下降甚至宕机。下面分别解释这三个概念: 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、付费专栏及课程。

余额充值