终于在内推后“狂啃”Java面试笔记和知识点,挤进了阿里

前言

毕业后一直待在一家不大不小的公司里面摸鱼等死,今年开年的时候差点被cy,自己想了想总不能就这样下去了吧,前几个月决心辞职。辞职后去面了几家公司有过的有被b的 也没拿到满意的offer,自己在家闲下来学习了几个月,上个月朋友给了一个阿里的内推,想着去试试,结果过了!

java基础相关

  • 1.手撕代码。

  • 2.定义Integer x=20 Integer y=200 在内存里是个什么过程?

  • 3.volite关键字的原理?它能保证原子性吗?AtomicInteger底层怎么实现的?

  • 4.threadLocal关键字有用过吗?如果没有重写initialValue方法就直接get会怎样?

  • 5.hashMap与concurrentHashMap原理和区别?

  • 6.hashMap什么情况下会出现循环链表?concurrentHashMap写的时候用什么锁?7.RenteenLock底层是怎么保证线程安全的?

  • 8.反射能获取到父类的私有方法吗?怎么防止反射破坏单例模式?

  • 9.描述下JVM内存模型。每个区的作用是什么?堆内存的工作原理,为什么需要两个幸存区?只有一个行不行?老生代是用什么垃圾回收算法?

  • 10.描述下多线程原理。怎么开启一个线程?start和run方法有什么区别?

  • 怎么创建一个线程池,传入的参数分别什么含义?线程池是怎么实现维持核心线程数的?怎么实现一个自定义的拒绝策略?

  • 11.Socket编程 nio(这一块我不太熟就说没了解过,面试官就没细问了)

开源框架相关

  • 1.你用过哪些开源框架?最熟悉的是哪个?(这里我说了spring,所以后边的问题都是围绕spring的)

  • 2.描述下spring的ioc和aop。

  • 你常用哪一种注入方式?BeanFactory和ApplicationContext有什么区别?你们项目里用的哪个?说一下spring bean的生命周期。

  • AOP实现原理是什么?两种动态代理实现原理?JDK动态代理为什么要实现接口?

  • 3.spring task是怎么实现的?

  • 4.spring事务你是怎么用的?加了@Transcational注解spring都做了哪些工作?怎么知道事务执行成功了?

  • 事务隔离级别?mysql默认级别是什么?事务传播属性?spring默认是什么?嵌套事务子事务什么时候commit?

  • 5.spring和springMVC是什么关系?有没有用过JdbcTemplate?

  • 6.springMVC中对整个请求的处理流程是怎样的?返回json的话是用哪个view?

网络相关

  • 1.HTTP 1.1版本增加了哪些内容?有哪几种请求方式?

  • 2.描述下HTTP三次握手和四次挥手过程?为什么需要四次挥手?为什么TIME_WAIT状态需要经过两个最大报文段生存时间才能到close状态?

  • 3.浏览器发起一个请求到收到响应中间经历了哪些过程?知道多少就说多少,越详细越好。

Nginx相关

  • 1.nginx有哪些模块?你比较熟悉哪个?

  • 2.proxy_cache你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?

数据库相关

  • 1.mysql索引是怎么实现的?b+树有哪些特点?真实的数据存在哪里?

  • 2.哪些情况下建索引?解释下最左匹配原则?

  • 现在一个表有三列a b c,组合索引(a,b,c)查询的时候where a like ? and b=? and c=?能用到这个组合索引吗?为什么?

  • 3.explain执行计划看过没有?其中type字段都有哪些值?分别代表什么?

  • 4.你有哪些sql调优经验?

Redis相关

  • 1.Redis有哪几种数据数据结构?给你一个key怎么知道是用的哪种结构?

  • 2.怎么查看所有的key?Redis怎么切换库?怎么清数据数据?

  • 活着

  • 4.你们项目里Redis是单节点的吗?如果多节点怎么同步?

  • 5.项目里用Redis存哪些数据?为什么用Redis?和jetty本地缓存有什么区别?

Linux相关

  • 1.怎么查看某个进程中的线程?

  • 2.怎么批量替换一个文件夹下所有文件中的一个字符?(sed命令)

  • 3.有没有用过jps jmap jstack jstat 命令,分别说下有哪些常用参数,知道多少就说多少。

  • 我这里结合自己用jmap jstack定位到线上问题的经验说的,答完后感觉面试官挺满意的,所以说实践很重要啊~

情景模拟&其他

  • 1.设计一个系统,每天有100亿条数据,需要在后台做实时展示和查找。

  • 我当时回答的大体思路是nginx负载均衡,消息队列存储,多线程读取,批量插入,数据库分库分表。

  • 面试官根据我的回答又衍生出了很多问题,如消息队列存满了怎么办?(也就是消费跟不上生产)批量插入时某一条失败了有什么影响?怎么解决?分库分表应该怎么分?怎么解决数据迁移的问题?

  • 2.用代码实现cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。

  • 3.手撕代码。

  • 4.如果现在有一台服务器突然变得很慢,怎么去定位问题?

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。只需转发+关注之后“私信【Java笔记】即可!另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值