首页 > 编程知识 正文

java基础面试,java面试老是面试不上

时间:2023-05-04 18:02:14 阅读:132900 作者:3098

前言可以说掌握这个pdf上的知识,面试问的基础知识无处左右,我凭借这个pdf拿下了OPPO/百度,京东,华为,美团,蚂蚁金服等互联网公司的offer。

下文中截图来源于朋友一个pdf版本的面经,把所以知识点的答案整理了下来,耗费他至少1个月时间,在本文最后部分把这个pdf分享给大家,觉得有用的麻烦点赞关注走一波,谢谢!!!面经中有他的知识点的答案,如下图示例,非常详细(文末有领取方式)!!!

蚂蚁金服一面:下午杭州的电话,问有没有空,果断有空。 感觉有点紧张,但有点无知。

面试的题目:

HashMap和Hashtable的区别对于保证迭代顺序的HashMap学说和排序算法、稳定性、复杂度学说和GC能够保证的整个实习期的职业规划来说,有很多基础问题,所以博客几乎都回答过,准备过。 所以,一面结束感觉很好,第二天下午就变成了两面。

蚂蚁金服二面两面是我最仓促的面试。 两面是最重要的,最大的主管面试,所以非常重要。 总的来说,两面节奏非常快,和一面完全不同,面试官想让我简洁地结束回答,所以面比较好。 那时,我以为结束后又是GG,幸运的是最后还是幸运地度过了。

自我介绍。 JVM如何加载类,父母委托模型的方法是什么? HashMap是怎么实现的? HashMap和Concurrent HashMap之间的差异,Concurrent HashMap线程是否安全? Concurrent HashMap如何保证线程的安全? HashMap和HashTable的区别,HashTable线程安全吗? 进程间通信有什么方法? JVM分为哪个区? 各区在做什么? JVM如何保存GC、新生代、老年代、永久一代、都是什么样的? GC的引用可达性分析算法允许哪些对象用作GC Roots对象? 快速排序、流程、复杂性? 什么是双向平衡树,如何插入节点,删除节点,说关键步骤? TCP如何保证可靠的传输? 三次握手的过程? TCP和UDP有什么区别? 滑动窗口算法? 在Linux上如何进行流程调度? Linux上常用的命令是什么? 操作系统在什么情况下会陷入死锁? 常用的hash算法是什么? 什么是一致外向的运动鞋? 如何理解分布式锁定? 数据库的范式是什么? 数据库中索引的结构? 在什么情况下适合索引? Java的NIO、BIO、AIO分别是什么? 用什么工具调试程序? 控制台,你用过吗? 当前线程已锁定到JVM。 怎么用工具检测原因? 线程同步和块之间的关系? 是否一定要阻止同步? 块一定要同步吗? 同步和异步有什么区别? 你用过线程池吗? 如何创建单实例模式? 说是双重检查,他说不是线程安全的。 如何有效地创建线程安全的单实例? 在concurrent包下面,你用过什么? 常用的数据库是什么? redis用过吗? 你知道hadoop吗? hadoop的组件是什么? hdfs、hive、hbase、zookeeper。 说mapreduce编程模型。 知道开源合同是什么吗? 你知道的开源软件是什么? 最近看的书是什么? 有什么问题吗? 你知道哪个设计模式? 你用了什么设计模式来判断单链表中是否有环? 操作系统如何进行寻呼调度? 匿名内部类是什么? 如何访问在此之外定义的变量? 面试者问了个急问题,我也回答得很快,所以两个问题答不好,但面试者让我感到肃然起敬。 他说话很快,但能出主意,所以最重要的话很容易被接受。

两面过去了,当天晚上,我接到了三面的电话(蚂蚁的效率真是令人瞠目结舌)。

蚂蚁金服三面三面已经是交叉面试,几乎都是围绕着我的项目展开的。 我经过前几次面试,这个时候已经有了很高的面试经验值,所以三面的时候我一点也不慌张。 回答问题很沉稳,三个方面的问题如下。

自我介绍,你做过什么项目? 如何划分java虚拟机的区域,每个区域的动能,这个块可以自由发挥。 在父母委托模型中,从顶层到底层,在哪个类加载器上加载哪些类? 父类加载器和子类加载器是否可能加载相同的类? 加载同一个类时,应该使用哪个类? HashMap的工作原理,get (,put ) )是如何实现的? HashMap有什么问题? ConcurrentHashMap中的get ()、put )是如何实现的? ConcurrentHashMap有什么问题? ConcurrentHashMap的锁定是读锁定还是写锁定? HashMap和HashTable的区别sleep (和wait )分别是哪个类的方法,有什么区别? 同步的基础是如何实现的? 代码块和方法有什么区别? 什么是线程池? 如果要设计动态大小的线程池,该如何设计? 什么是死锁? JVM线程死锁,我该怎么判断是什么原因呢? 使用VisualVM,如果出现dump线程的信息,会有什么信息? 这个问题很多……我很无知。 因为没有实际操作过==看到JVM虚拟机中的堆、线程的信息,用过什么指令? 我只使用过图形界面的VisualVM虚拟机。 有什么垃圾回收算法? CMS知道吗? 你是怎么工作的? 数据库中的事务是什么? 事务的隔离级别? 事务的四个特性? 污读、幻读是什么? 不能反复读吗? 数据

库索引的结构有哪些?我说B树和B+树,他说只有这两个吗。我又说全文倒排索引。然后介绍B+树的结构。数据库中的分页查询语句怎么写?什么是一致性外向的帆布鞋?用来解决什么问题?Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?归并排序的过程?时间复杂度?空间复杂度?你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的? 总目录展示

该笔记共八个节点(由浅入深),分为三大模块。

高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。该笔记将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。

一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。

高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。

篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),觉得有需要的码友们,麻烦各位转发一下(可以帮助更多的人看到哟!)点这里,即可获得免费下载的方式!!

由于内容太多,这里只截取部分的内容。需要这份《高并发秒杀顶级教程》的小伙伴,麻烦各位帮忙点赞分享支持一下(可以帮助更多的人看到哟!)
84415245)]

[外链图片转存中…(img-D9EvYCdM-1624084415246)]

由于内容太多,这里只截取部分的内容。需要这份《高并发秒杀顶级教程》的小伙伴,麻烦各位帮忙点赞分享支持一下(可以帮助更多的人看到哟!)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。