• 小码农也有大目标,最新BAT大厂Java面试总结


    前言:

    我相信大多 Java 开发的程序员或多或少经历过阿里的面试,也清楚阿里 Java面试是有一定难度的,作者经历过多次阿里的面试,有满意的也有备受打击的。因此呢作者想把自己这么多次面试经历来个汇总,正值金九银十之际,希望对大家有所帮助。

    另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,我认为对面试来说是非常有用的,想要资料的话请点795983544 暗号CSDN。

    在这里插入图片描述

    阿里面试题

    在这里插入图片描述

    由于时间关系答案我就不写了(主要是懒),都总结成笔记了,需要答案的可以在评论区加裙领取。

    在阿里面试还是很舒服的,面试官觉得有难度的话会适可而止,不会让你觉得不会而感到尴尬,一面的知识也不是很难

    1.HashMap的数据结构——引出Java7跟Java8的区别
    2.在什么情况下会做一个链表到红黑树的转换
    3.除了数据结构之外,Java8跟Java7在HashMap上还有什么不同
    4.扩容的过程,在什么情况下会扩容
    5.扩容机制中的capacity初始值为什么是16,可不可以自定义成15,为什么一定要是2的指数次方
    6.简单介绍一下hash算法,它的核心性能,或者说判断一个hash算法好坏的指标是什么,indexFor()函数的实现
    7.HashMap为了解决什么问题?——引出哈希碰撞
    8.介绍ConcurrentHashMap的数据结构
    9.ConcurrentHashMap可以支持多少并发线程
    10.ConcurrentHashMap属于JOC下的一个类,对JOC这个包的了解
    11.是否用过synchronized,之前是否碰到过并发问题,怎么处理
    12.在Java技术栈方面,有没有比较擅长或者深入了解的点,是否从源码上看过一些东西
    13. Netty原理介绍下。
    14. 了解过NIO,BIO,AIO么?介绍下异同,代码中如何使用?
    15. 分布式锁用过么?用什么函数?什么使用场景
    16. 能介绍下垃圾回收机制么?
    17. redis的数据结构介绍下。项目中用过哪些?什么场景
    18 幂等性是什么?如何保障?
    19. 交易系统中的数据一致性咋保障?

    数据库

    1.对MySQL了解多少——引出必问知识点(划重点!!!事务和索引)
    2.MySQL用的隔离级别是什么,这个隔离级别下会出现什么问题——引出数据库的并发问题
    3.MySQL使用这种隔离级别时,是如何解决幻读问题的(引申,理解其他并发问题的解决原理)
    4.MySQL的调优机制,主要是哪些方面的调优——引出索引
    5.在MySQL的InnoDB这个存储引擎下,聚集索引(或者聚簇索引)和非聚集索引这两个概念
    6.MySQL中的索引是用什么数据结构存储的——此处应该引出B+树
    7.为什么通过索引查询速度会更快一些——此处应该引出二叉树算法

    二轮:
    自我介绍

    1. 项目中的mongoDB使用场景是啥?如何部署的?怎么保证高可用性?
    2. JVM的内存结构能介绍下么?
    3. CMS和G1的优缺点?什么时候发生FULL GC?什么时候stop the world!
    4. 什么样的对象能当根节点?
    5. 一个类,两个函数,一读一写,写函数加synchronized,读函数还用加么?voliate关键字啥作用?
    6. 数据库设计时,主键咋设自增好还是非自增好?为啥?
    7. mysql的锁类型介绍下
    8. 线上CPU 100%了怎么查?
    9. 写个算法,给一个数字,一个单调数组中,方法返回数组中第一个大于给定数字的下标,如果没有,返回-1。

    三轮:

    说实话第三轮就是比较深度的问题了,都是结合业务谈谈自己的程序思想,如果没有一定的技术和开发经验这个是回答不完整的,本人就是倒在了这一关。

    1. 如何实现一个高效的单向链表逆序输出?

    2. 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位

    3. 给定一个二叉搜索树(BST),找到树中第 K 小的节点

    4. LRU缓存机制

    5. 关于epoll和select的区别,以下哪些说法是正确的

    6. 从innodb的索引结构分析,为什么索引的 key 长度不能太长

    7. 给定一个链表,删除链表的倒数第N个节点,并且返回链表的头结点

    8. 如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统,你会如何设计

    9. 如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统,你会考虑哪些问题?如何设计?

    10. 给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度

    11. 假如给你一个新产品,你将从哪些方面来保障它的质量?

    12. 请评估一下程序的执行结果?

    腾讯面试题

    在这里插入图片描述

    Java基础

    1.JAVA中的几种基本数据类型是什么,各自占用多少字节。

    2.String类能被继承吗,为什么。

    3.String,Stringbuffer,StringBuilder的区别。

    4.ArrayList和LinkedList有什么区别。

    5.讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。

    6.用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。

    7.JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。

    8.有没有有顺序的Map实现类,如果有,他们是怎么保证有序的。

    9.抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多个接口么。

    10.继承和聚合的区别在哪。

    11.IO模型有哪些,讲讲你理解的nio ,他和bio,aio的区别是啥,谈谈reactor模型。

    12.反射的原理,反射创建类实例的三种方式是什么。

    13.反射中,Class.forName和ClassLoader区别 。

    14.描述动态代理的几种实现方式,分别说出相应的优缺点。

    15.动态代理与cglib实现的区别。

    16.为什么CGlib方式可以对接口实现代理。

    17.final的用途。

    18.写出三种单例模式实现 。

    19.Java中的HashSet内部是如何工作的。

    20.什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。

    JVM

    21.什么情况下会发生栈内存溢出。

    22.JVM的内存结构,Eden和Survivor比例。

    23.JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。

    24.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数。

    25.你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。

    26.垃圾回收算法的实现原理。

    27.当出现了内存溢出,你怎么排错。

    28.简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

    29.g1和cms区别,吞吐量优先和响应优先的垃圾收集器选择。

    30.怎么打出线程栈信息。

    开源框架

    31.简单讲讲tomcat结构,以及其类加载器流程,线程模型等。

    32.tomcat如何调优,涉及哪些参数 。

    33.讲讲Spring加载流程。

    34.Spring AOP的实现原理。

    35.讲讲Spring事务的传播属性。

    36.Spring如何管理事务的。

    37.说说你对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的。

    38.Springmvc 中DispatcherServlet初始化过程。

    39.netty的线程模型,netty如何基于reactor模型上实现的。

    40.netty的通讯协议是什么样的。

    41.springmvc用到的注解,作用是什么,原理。

    42.springboot启动机制

    百度面试题

    在这里插入图片描述

    1、自我介绍以及项目介绍
    2、spring-cloud是否了解,spring-boot是了解,讲一讲bean的生命周期
    3、hashmap-1.8后的改进,hashmap为什么是线程不安全的
    4、如何做到线程安全,concurrenthashmap是怎么实现的
    5、用到哪些的设计模式
    6、ThreadLocal用过吗
    7、类的加载机制
    8、JVM-内存模型
    9、垃圾回收
    10、redis源码有读过吗
    11. 介绍你做的项目和其中的难点?
    12.反射的作用是什么?
    13. 数据仓库,多线程和并发工具等?
    14. 私有云,docker和k8s等?
    15. 了解哪些中间件,dubbo,rocketmq,mycat等?
    16. dubbo中的rpc如何实现?
    17. 自己实现rpc应该怎么做?
    18. dubbo的服务注册与发现?
    19.给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。

    总结:

    互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。

    另外想要面试答案的小伙伴请点击795983544 暗号CSDN自行领取,本人还整理收藏了20年多家公司面试知识点以及各种技术点整理 下面有部分截图希望能对大家有所帮助。
    在这里插入图片描述

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    图像分割 - 分水岭算法
    湖南湘菜 7页面 美食主题 带设计说明 美食网页设计制作 HTML美食网页成品 美食网页成品 HTML美食网页设计
    java毕业设计保险公司管理系统mybatis+源码+调试部署+系统+数据库+lw
    精品Python数字藏品购物商城爬虫-可视化大屏
    爬虫兽问题解答1-抖音评论区爬虫采集拓客系统
    【无标题】
    【Linux】基础
    《Python 计算机视觉编程》学习笔记(四)
    深度学习篇之tensorflow(2) ---图像识别
    shell脚本入门之【变量的定义】
  • 原文地址:https://blog.csdn.net/web15286201346/article/details/126081158