阿里菜鸟实习生面经分享

因为是实习生面试,而且是一面,所以问的问题也不算太难,面试时间也没有太长,只有半个小时,总共问了18个问题。

1.问简历中的项目

这个基本每场面试都会问的,一般都问最近做的项目,主要用到什么技术,功能是什么,遇到什么问题,怎么解决的,有什么亮点等等,只要项目确实是你自己亲自参与开发的,这个一般都没什么问题。

2.Redis 实现并发的几种方式

  1. 设置主从节点
  2. 分布式锁

3.Redis 相比其他框的优缺点 (memached)

  1. memcached 所有的值均是简单的字符串,redis 作为其替代者,支持更为丰富的数据类型
  2. redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多
  3. redis 可以持久化其数据 redis 可以持久化其数据
  4. Redis 的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能 读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。

4.Redis 的持久化策列

RDB(Redis DataBase:在不同的时间点将 redis 的数据生成的快照同步到磁盘等介质上):内存到硬盘的快照,定期更新。缺点:耗时,耗性能(fork+io 操作),易丢失数据。

AOF(Append Only File:将 redis 所执行过的所有指令都记录下来,在下次 redis 重启时,只需要执行指令就可以了):写日志。缺点:体积大,恢复速度慢。

bgsave 做镜像全量持久化,aof 做增量持久化。因为 bgsave 会消耗比较长的时间,不够实 时,在停机的时候会导致大量的数据丢失,需要 aof 来配合,在 redis 实例重启时,优先使 用 aof 来恢复内存的状态,如果没有 aof 日志,就会使用 rdb 文件来恢复。Redis 会定期做 aof 重写,压缩 aof 文件日志大小。Redis4.0 之后有了混合持久化的功能,将 bgsave 的全量 和 aof 的增量做了融合处理,这样既保证了恢复的效率又兼顾了数据的安全性。bgsave 的 原理,fork 和 cow, fork 是指 redis 通过创建子进程来进行 bgsave 操作,cow 指的是 copy on write,子进程创建后,父子进程共享数据段,父进程继续提供读写服务,写脏的页面数据 会逐渐和子进程分离开来。

5.Redis 的数据类型

Redis支持我中数据类型:String、Set、hash、SortedSet、List

6.MySQL 乐观锁和悲观锁

7.如何查看 SQL 的执行计划

  1. Set AutoTrace on
  2. explain plan for [你的sql语句]

8.Java 类加载机制

主要是双亲委派机制和沙箱安全机制。Java 细聊JVM之类加载器

9.JVM 内存模型

这道题也基本是面试必问,所以必须掌握的一道题。主要分为三大部分:类加载器、运行时数据区、执行引擎。谈谈 Java Virtual Machine 以及 GC

10.垃圾回收算法及应用区域

四大垃圾算法,以及分代收集算法。Java 细聊JVM之类加载器

11.HashMap 和 HashTable 的区别

12.String、StringBuilder、StringBuffer 的区别

Java 聊聊CharSequence及其子类

13.冒泡排序、插入排序、归并排序

14.网络模型

OSI和TCP/IP的模型,OSI七层,TCP/IP四层。

15.TCP协议和IP协议在那一层

TCP在传输层,IP协议在网络层。

16.常用设计模式

设计模式总共分为三大类,23小类,常用的话就是单例、工厂、建造者、原型、适配器等。设计模式专栏

17.红黑树的概念

红黑树是类似与AVL(平衡二叉树)的一种树结构,出现的原因主要是为了弥补AVL树的不足,它比AVL的条件更为严格。java 中 jdk 8 以后 HashSet 引入了红黑树,主要是为了解决链表环形问题。

18.班级成绩排名

这个如是回答就可以了,瞎说也是没有用的。

从这次面试来看大厂一般比较重基础,不会问太多框架类的东西,主要考的就是计算机相关课程、java 基础、java 底层原理相关的东西。

发布了80 篇原创文章 · 获赞 55 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/cong____cong/article/details/105285380