一步搞定你疑惑的数据结构与算法系列,原理+实战讲解

蚂蚁金服一面:

下午杭州的电话,问有没有空,果断有空,虽然感觉略显紧张,有点懵逼。

面试的题目:

  1. HashMap和Hashtable的区别
  2. 实现一个保证迭代顺序的HashMap
  3. 说一说排序算法,稳定性,复杂度
  4. 说一说GC
  5. 可以保证的实习时长
  6. 职业规划

整体来说,一面的基础性问题比较多,所以博主基本都答出来了,准备过还是有些用处的。所以一面完了感觉还不错,接着第二天下午就二面了。

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

蚂蚁金服二面

二面是我最慌的面试,因为二面是最关键的,是最大的主管面试,所以非常关键,整体来说,二面的节奏非常快,和一面完全不同,面试官很希望我言简意赅的说完答案,所以面的不算很好,当时完了又以为GG了,好在最后还是幸运的过了,面试问题如下:

  1. 自我介绍。
  2. JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
  3. HashMap如何实现的?
  4. HashMap和Concurrent HashMap区别, Concurrent HashMap 线程安全吗, Concurrent HashMap如何保证 线程安全?
  5. HashMap和HashTable 区别,HashTable线程安全吗?
  6. 进程间通信有哪几种方式?
  7. JVM分为哪些区,每一个区干吗的?
  8. JVM如何GC,新生代,老年代,持久代,都存储哪些东西?
  9. GC用的引用可达性分析算法中,哪些对象可作为GC Roots对象?
  10. 快速排序,过程,复杂度?
  11. 什么是二叉平衡树,如何插入节点,删除节点,说出关键步骤。
  12. TCP如何保证可靠传输?三次握手过程?
  13. TCP和UDP区别?
  14. 滑动窗口算法?
  15. Linux下如何进行进程调度的?
  16. Linux下你常用的命令有哪些?
  17. 操作系统什么情况下会死锁?
  18. 常用的hash算法有哪些?
  19. 什么是一致性哈希?
  20. 如何理解分布式锁?
  21. 数据库中的范式有哪些?
  22. 数据库中的索引的结构?什么情况下适合建索引?
  23. Java中的NIO,BIO,AIO分别是什么?
  24. 用什么工具调试程序?JConsole,用过吗?
  25. 现在JVM中有一个线程挂起了,如何用工具查出原因?
  26. 线程同步与阻塞的关系?同步一定阻塞吗?阻塞一定同步吗?
  27. 同步和异步有什么区别?
  28. 线程池用过吗?
  29. 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?
  30. concurrent包下面,都用过什么?
  31. 常用的数据库有哪些?redis用过吗?
  32. 了解hadoop吗?说说hadoop的组件有哪些?hdfs,hive,hbase,zookeeper。说下mapreduce编程模型。
  33. 你知道的开源协议有哪些?
  34. 你知道的开源软件有哪些?
  35. 你最近在看的书有哪些?
  36. 你有什么问题要问我吗?
  37. 了解哪些设计模式?说说都用过哪些设计模式
  38. 如何判断一个单链表是否有环?
  39. 操作系统如何进行分页调度?
  40. 匿名内部类是什么?如何访问在其外面定义的变量?

二面面试官问的很急,我答的也快,所以有两个问题答的不好,但是面试官让我觉得有一种肃然起敬的感觉,因为他说话比较快,但是都能说到点子上,最关键的说的话非常让人容易接受。

二面过了,当天晚上我就接到了三面的电话(阿里的效率真的让我瞠目结舌)

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

蚂蚁金服三面

三面已经是交叉面试了,基本都围绕我的项目展开,我经过前面几次的面试之后,这个时候已经拥有了很高的面试经验值了,所以三面的时候我一点不慌了,回答问题非常稳重,三面的问题如下:

  1. 自我介绍,做过什么项目。
  2. java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。
  3. 双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?
  4. 有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类?
  5. HashMap的结构,get(),put()是如何实现的?HashMap有哪些问题?
  6. ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap有哪些问题? ConcurrentHashMap的锁是读锁还是写锁?
  7. HashMap与HashTable的区别
  8. sleep()和wait()分别是哪个类的方法,有什么区别?synchronized底层如何实现的?用在代码块和方法上有什么区别?
  9. 什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法?
  10. 什么是死锁?JVM线程死锁,你该如何判断是因为什么?如果用VisualVM,dump线程信息出来,会有哪些信息?这一块问的很多…问的我懵了. 因为并没有实际操作过 = =
  11. 查看jvm虚拟机里面堆、线程的信息,你用过什么命令?我只用过图形界面VisualVM。。。
  12. 垃圾回收算法有哪些?CMS知道吗?如何工作的?
  13. 数据库中什么是事务?事务的隔离级别?事务的四个特性?什么是脏读,幻读,不可重复读?
  14. 数据库索引的结构有哪些?我说B树和B+树,他说只有这两个吗。我又说全文倒排索引。然后介绍B+树的结构。
  15. 数据库中的分页查询语句怎么写?
  16. 什么是一致性哈希?用来解决什么问题?
  17. Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?
  18. 项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?
  19. 归并排序的过程?时间复杂度?空间复杂度?
  20. 你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。
  21. 你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的?

如何快速更新自己的技术积累?

  • 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
  • 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
  • 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
  • 学习以后不知道有没有学成,则可以通过面试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目,有需要的朋友点击这里即可免费领取

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

八年CRUD,疫情备战三个月,三面头条、四面阿里拿offer面经分享

m/vip204888/java-p7)**

[外链图片转存中…(img-L5eBiDKH-1626257253475)]

[外链图片转存中…(img-NoVPqu0U-1626257253477)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385612.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互斥量(互斥锁)

一、互斥量mutex Linux提供一把互斥锁mutex(也称之为互斥量)每个线程在对资源操作前都尝试先加锁,成功加锁才能操作,操作结束后解锁。资源还是共享的,线程间也还是竞争的,但通过锁将资源的访问变为互斥操作,而后与时间…

一眼就能看懂的Java自学手册,终局之战

珍藏版(1)——Mybatis入门 1.什么是MyBatis 2.为什么我们要用Mybatis? 3.Mybatis快速入门 3.1 导入开发包 3.2准备测试工作 3.3 创建mybatis配置文件 3.4 编写工具类测试是否获取到连接 3.5 创建实体与映射关系文件 3.6 编写DAO 4.Mybatis工作…

Java虚拟机学习集锦是我攒来的,带你碾压面试官!

1. 一致性(Consistency) 一致性(Consistency)是指多副本(Replications)问题中的数据一致性。可以分为强一致性、顺序一致性与弱一致性。 1.1 强一致性(Strict Consistency) 也称为…

Java虚拟机学习集锦是我攒来的,看这篇文章准没错!

一面 介绍一下自己 问项目经历, 聊"数据同步" 接着聊上了 K8S 的项目 有没有什么钻研得比较深得技术?(大佬:kubernetes, golang, prometheus, java) kubernetes 的架构是怎么样的? 这个问题很大,拆成 …

文件描述符、函数open和openat

文件描述符 pcb&#xff1a;结构体一个进程有一个文件描述符&#xff1a;1024文件描述符&#xff1a;寻找磁盘文件函数open和openat 函数原型&#xff1a; include<sys/stst.h> #include<fcntl.h>int open(const char *pathname, int flags); int open(const ch…

Java这些高端技术只有你还不知道,移动架构师成长路线

并发编程共享模型篇 并发编程概览进程与线程Java线程共享模型之管程共享模型之内存共享模型之无锁共享模型之不可变共享模型之工具 共享模型之管程 原理之 Monitor(锁) 原理之伪共享 模式篇—正确姿势 同步模式之保护性智停同步模式之Blking同步模式之顺序控制异步模式之生产…

函数read、write、lseek

函数原型&#xff1a; #include<unistd.h> ssize_t read(int fd, void *buf, size_t count);返回值&#xff1a;读到的字节数&#xff0c;若已到文件尾&#xff0c;返回0&#xff1b;若出错&#xff0c;返回-1 参数&#xff1a; fd&#xff1a;函数open的返回值buf&a…

Java这些高端技术只有你还不知道,薪资翻倍

正文 我的第一份工作是在一家外企&#xff0c;当时抱着“逃离”上海的想法去了二线城市的分公司&#xff0c;但是管理文化氛围跟总部几乎都是一样的&#xff0c;这份工作经历对我后面的工作不论是做事风格、习惯上还是思考问题的方式方法上都有很大的影响。后面陆续进入国企&a…

函数dup和dup2

函数原型&#xff1a; #include<unistd.h> int dup(int oldfd);返回值&#xff1a;若成功&#xff0c;返回新的文件描述符&#xff1b;若出错&#xff0c;返回-1 参数&#xff1a; oldfd&#xff1a;要复制的文件描述符dup调用成功&#xff1a;有两个文件描述符指向同…

Java进阶面试资料无偿分享!真香系列

8-22 投递简历 8-24 一面&#xff08;大概1h50min&#xff09; 0、currenthashmap怎么扩容的&#xff1f;fwn为什么固定hash -1&#xff0c;这样设计有什么好处&#xff1f;帮助扩容是发生在什么阶段?读线程和写线程都会帮助扩容吗&#xff1f;扩容的时候任务具体怎么协调的&…

Java通用流行框架大全,绝对干货

Java如何入门&#xff1f; 1、建立好开发环境 首先建立好开发环境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何开发&#xff0c;首先就是要把这个环境准备好&#xff0c;之后就可以去做各种尝试&#xff0c;尝试过程中就能逐渐建立信心。初学者往往在环境配…

Java集合类中绝对占有一席之地的List,涨薪7K!

一、先来解读&#xff1a;23种设计模式要点 1.单例模式&#xff08;Singleton Pattern&#xff09; 2.工厂模式 3.抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09; 4.模板方法模式&#xff08;Template Method Pattern&#xff09; 5.建造者模式&#xff08;Bu…

Java面试10大知识点总结宝典助你通关!已拿意向书!

Java基础 1.Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用 7.与equals的区别 8.Object有哪些公用方法 9.…

互斥锁、条件变量

一、互斥锁 1. 函数原型&#xff1a; pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); pthread_mutex_destroy(pthread_mutex_t *mutex); 分析&#xff1a; pthread_mutex_t 类型&#xff0c;其本质是一个结构体&#xf…

Java面试你必须要知道的那些知识,深夜思考

如何提升自己的实力&#xff1f; Step 1&#xff1a;梳理自己的知识 对照下面这份学习大纲&#xff0c;梳理出自己的知识盲区&#xff0c;这份大纲里面的技术点完全对标P7岗的主流技术&#xff0c;因此这是一份很好的知识大纲笔记。 Step 2&#xff1a;查漏补缺&#xff0c;夯…

Java面试你必须要知道的那些知识,面试建议

二、面试题 面&#xff1a;考你几个红黑树的知识点&#x1f980; 红黑树的数据结构都用在哪些场景&#xff0c;有什么好处&#xff1f;红黑树的时间复杂度是多少&#xff1f;红黑树中插入新的节点时怎么保持平衡&#xff1f; 面&#xff1a;2-3树都是不没看&#xff0c;回去…

存储映射I/O(一)

一、存储映射I/O 存储映射I/O使一个磁盘文件与存储空间中的一个缓冲区映射&#xff0c;于是当从缓冲区中取数据&#xff0c;就相当于读文件中的相应字节。于此类似&#xff0c;将数据存入缓冲区&#xff0c;则相应的字节就自动写入文件&#xff0c;这样&#xff0c;就可在不不…

【绝对干货】kafkastream广告

Java如何入门&#xff1f; 1、建立好开发环境 首先建立好开发环境非常重要&#xff0c;工欲善其事&#xff0c;必先利其器。做任何开发&#xff0c;首先就是要把这个环境准备好&#xff0c;之后就可以去做各种尝试&#xff0c;尝试过程中就能逐渐建立信心。初学者往往在环境配…

存储映射IO(二)

mmap父子进程间通信 1. 测试代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/wait.h>int var 100;int main(void) {int *p;pid_t pid;int fd;…

【聊透SpringMVC】java技术经理岗位职责

缓存维护方案一 如果是一读&#xff08;线程B&#xff09;一写&#xff08;线程A&#xff09;操作&#xff0c;「先操作缓存&#xff0c;再操作数据库」。流程图如下所示&#xff1a; 1.线程A发起一个写操作&#xff0c;第一步del cache 2.线程A第二步写入新数据到DB 3.线程…