阿里盒马鲜生Java工程师一面面经(7.30投递)

一面(8.13,30min)

1. 自我介绍

2. 项目讲解

3. 平时数据库你是怎么去维护的?你觉得需要注意的指标有哪些?

3. OSI七层模型

4. TCP在哪一层?TCP和UDP的区别?

5. 进程、线程、协程之间的关系,什么是守护线程?


联系:一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。
操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。
线程有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度(CPU调度)执行的最小单位。
协程是一种用户态的轻量级线程,协程的调度完全由用户程序控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
守护线程:在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) ,只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。守护线程最典型的应用就是 GC (垃圾回收器)。

6. 进程间的通信方式以及线程之间的通信方式


进程之间的通信方式:1. 共享内存 2. 管道 3. 消息队列 4. 信号量 5. 套接字 6. 信号
线程之间的通信方式:1. 使用volatile关键字 2. 使用synchronized配合wait()和notify() 3. JUC工具类CountDownLatch(闭锁) 4. 使用ReentrantLock结合Condition 5. BlockingQueue阻塞队列

7. 介绍一下Java中的集合(List,Set,Map)

8. HashMap的老八股, 如果是一个Object作为hashMap的key的话这个对象需要满足什么条件?

Hashmap不允许有重复的key,所以要重写它的hashcode和equals方法,以便确认key是否重复。重写hashCode()是因为需要计算存储数据的存储位置,重写equals()方法目的是为了保证key在哈希表中的唯一性。

9. concurrentHashMap为什么使用分段锁?分段锁的概念?为什么1.8去除了Segement,有什么好处?



10. ACID特性、隔离级别以及脏读不可重复读和幻读

11. 数据库底层事务的隔离性怎么实现的?

数据库的隔离级别有四种
1. 读未提交 2. 读已提交 3. 可重复读 4. 串行化
1. 读未提交:顾名思义,一个事务读取到了另一个事务还未提交的数据
该隔离级别读未加锁,但写加了X锁
2. 读已提交 3. 可重复读
这两个隔离级别在数据库中使用了MVCC多版本并发控制,但MVCC只对读操作有效,对写操作无效,防止不了幻读。
读已提交能够防止脏读是因为MVCC会在事务每一次执行查询语句时生成一个Read View,Read View会排除读取在查询之前的数据,也就防止了脏读,当不能避免不可重复读。
可重复读能够防止不可重复度是因为MVCC会在事务第一次执行查询语句时只生成一个Read View,Read View会排除读取在该事务版本号之前的数据,也就实现了可重复读。
4. 串行化
普通的select语句都会转化为select ... lock in share mode 也就是加了S锁,必须等读语句执行完才能对数据进行修改,这也是为什么串行化能防止幻读的原因

12. 数据库索引底层的B+树结构以及为什么这样设计的原因?

13. 找出字符串中字符出现的次数。


笔试挂了
😅😅😅😅#盒马2021校园招聘##面经##校招##盒马##Java工程师#
全部评论
牛客视频面试吗
1 回复
分享
发布于 2021-08-20 18:54
兄弟,oc了吗?
点赞 回复
分享
发布于 2021-08-24 22:11
联想
校招火热招聘中
官网直投
电话面是怎么写代码的呢?
点赞 回复
分享
发布于 2021-09-01 11:56
老哥,咋样啊,我们同样的部门
点赞 回复
分享
发布于 2021-09-02 19:54

相关推荐

招聘对象:2025届毕业生(2024年11月-2025年10月毕业)招聘岗位:基础平台研发工程师,负责分布式查询引擎内核模块的架构设计、开发、测试、性能调优等工作。base地点:杭州/上海     阿里云表格存储是一款分布式结构化数据存储的多模型数据库,诞生于 2009 年阿里云成立时,在 2014 年正式商业化面向公共云提供服务,最主要特点是分布式、Serverless、按量付费、水平扩展和查询功能丰富等。历经 10 余年的打磨,目前已在阿里巴巴集团、阿里云公共云以及专有云内得到广泛应用,涵盖电商、金融风控、物联网、人工智能、大数据、社交媒体等不同业务领域,支撑钉钉、优酷、手淘、IoT、计算平台等多个内部核心 BU 和业务。    表格存储丰富能力的背后,依赖底层的两大引擎:表格引擎和分布式查询引擎。分布式查询引擎团队近年来发展迅速,在 Serverless、多租户隔离、稳定性、高性能、成本方面投入了大量精力,取得了不少成果,相对于业界开源产品在稳定性、安全、性能和成本方面都有很大优势,团队技术水平在业界属于前列。    团队内的工作内容主要是分布式查询引擎内核的架构设计、开发等。团队有良好的新人培养机制,为实习生分配两位师兄,同时也会定期组织技术交流,讨论技术进展和相互学习。队内氛围融洽,沟通协作便捷高效,每个同学都能在有挑战的事物中挖掘自己的价值,期待志同道合的同学加入我们。岗位要求1. 需要熟练掌握 Java、C++、Rust 语言中的至少一项,了解关键功能的实现最好。2. 计算机类或者软件类专业,拥有扎实的计算机基础知识,包括计算机体系结构/网络/操作系统/数据库/并发编程等。3. 以下内容为加分项,对其中一项或者多项熟悉甚好:  a. 对分布式系统/存储/高可用等领域有兴趣,或有相关的背景/经验,例如 Elasticsearch、Lucene、HBASE、Cassandra、Clickhouse、Presto、Influxdb等等。  b. 了解分布式原理,例如CAP理论,RAFT、PAXOS等分布式一致性算法。  c. 学习过6.824/6.828/DDIA。  d. 参加过 ACM-ICPC 竞赛,获得过金牌或银牌。投递方式私戳 or 邮箱投递(pdf格式:姓名-学校-学历) #阿里云##阿里巴巴##实习##校招#
点赞 评论 收藏
转发
4 38 评论
分享
牛客网
牛客企业服务