JAVA实习面经分析-数据来源于牛客面经分享-侵删

本文概述了五位应聘者在腾讯、阿里等公司技术面试中的经历,涉及算法、数据库、数据结构、内存管理、并发控制等内容,展示了面试中常见的问题和知识点考察点。
摘要由CSDN通过智能技术生成

一、凉经汇总

1、腾讯 CSIG 一面凉经

(0)算法:leetcode

(1)项目

●介绍水平分表过程、大表拆分的过程。
●Redis有没有可能丢数据?怎么解决?
●你还有什么其他的方式来保证Redis的可靠性?(主从复制、哨兵、集群一通甩出来)
●RabbitMQ如何保证消息不丢失?(没保证,再加强)
●RabbitMQ如何做削峰填谷?

(2)八股

●InnoDB中一个三层的B+树能存多少数据?
●MySQL的索引怎么存储的?每个索引一个B+树,还是多个索引放一个B+树?
●每个叶子节点能存放多少条数据?(虽然没问,但是差点问到,mark一下,回去复习)
●叶子节点中存的是什么数据?
●B+树的范围查找怎么做的?
●分库分表具体的分片策略是怎么做的?
●表存满了之后怎么扩表?
●id是怎么生成的?(分布式自增主键)
●有没有其他的分布式id生成算法?(雪花),具体怎么实现的?(我不清楚,了解而已)
●Redis保证incr命令原子性的原理是什么?(不清楚)
●Redis数据的可靠性怎么保证?(持久化)
●介绍AOF持久化的过程?
●AOF重写期间命令可能会写入两次,会造成什么影响?(忘记了)
●讲一下JVM的内存模型?
●new一个对象存放在哪里?(运行时数据区),局部变量存在JVM哪里(不知道)
●JVM垃圾回收机制?(没学到)
●Linux系统的8080端口有多少个TCP连接,怎么看?(不知道)
●如何看Linux进程或CPU使用情况?(top)
●Linux查看内存情况?(free -h)
●讲下TCP的TIME_WAIT(TCP最熟的地方忘记了,可惜)
●ConcurrentHashMap底层是怎么实现的?
●HashMap为什么不能保证线程安全?
●进程间通信的方式?
●共享内存的方式如何保证并发安全?(我的回答是加锁)
●这个锁具体怎么实现的?(比较抽象,我回答了如果是我,我会怎么设计)


 

2、腾讯云-后台开发一面

(0)八股

(1)反射的实现原理

(2)线程池的工作原理

(3)分布式锁应用场景

(3)分布式锁---实现原理

(3)分布式锁---使用数据库进行实现

(5)消息队列应用场景

(4)消息队列RabbitMq

(5)RabbitMq如何防止消息丢失


(1)算法

求最大重复子串

二、面经

1、腾讯3.13号实习基地后端面试

(0)八股

●LRU思路

●你实现LRU是线程安全的吗?HashMap是线程安全的吗?怎么样是线程安全的?

●有什么线程安全的集合?

●Java中的多线程是怎么样的

●线程之间怎么同步

●final关键字有什么用

●Spring加载顺序

●bootStrap.yml和Application.yml谁先配

●spring.factories怎么样用的

●@Autoware的用法

●介绍一下Mysql索引失效

●嗯,如果我要在MySQL指定一行加读锁呢?

问:是要实际实现?还是讲原理?

面试官:直接给我一行

嗯嗯,讲一下事务隔离等级

●好,读已提交和可重复读有什么区别

那Prometheus采集数据方式

●好,Docker是怎么样的上线步骤呢?

追问:push的命令你给我打一下

●本地有哪些Docker镜像怎么看?

●Linux的进程的端口号那些怎么看?

问:以为还在Docker,问是服务器暴露的端口号还是?

面试官:进程号

了解,你说一下负载均衡的算法

●一致性哈希这个圆形一样取模为什么比哈希就好了?

●我看你用了RabbitMQ,能介绍为什么用RabbitMQ吗?

●有对比过RabbitMQ和Kafka的区别吗?

追问:

除了持久化呢?Kafka会持久化吗?

●看你用了Redis,能给我介绍一下Redis的数据结构吗

●用Redis的命令存一个Hash结构

2、阿里JAVA后台开发 三面-电话技术面

(0)自我介绍

平时用什么工具观察过虚拟机的内存情况;
(项目)分别介绍一下你的几个项目;
你平时有什么爱好么
你平时是通过什么方式学习的。

(1)基础问题

1.(数据库)分库分表的依据是什么,有用到什么工具么;
2.(java)wait和sleep分别属于哪个类的方法;
3.(java)lock和synchronized的区别是什么;
4.(操作系统)进程与线程的区别;
5.(计算机网络)OSI的七层架构以及每一层都有哪些协;

3、用友一面

(0)八股

1. JAVA的基本数据类型
2. 自动拆箱 自动装箱
3. int 类型的值怎么转成 bool
4. char类型几个字节
5. JVM的引用计数法
6. 一道代码输出题子类继承父类然后输出
7. mysql的死锁问题
8. sql题 连表查询
 

4、OPPO春招 后端工程师 一面

(0)项目

1.xxx功能怎么实现的,怎么保证安全性
2.API网关跟Nginx有什么区别
3.场景题:流量很大的时候发现响应速度很慢,但是sql语句的查询速度显示正常(即不是查询语句慢的问题),可以分析一下是什么原因吗?(没太理解,然后面试官补充,因为我项目中用了Dubbo,他想问的是在流量突然变得很大的时候,使用Dubbo会有什么问题)

(1)八股

final可以加在哪里,有什么作用
java有哪几种锁
synchronized锁是怎么升级的
对象锁和方法块锁在指令上的区别(太菜了没了解过)
AQS怎么实现公平和非公平
线程有哪些状态
如何查看现在使用cpu最高的一个线程(top -a)
创建线程有哪几种方式
线程池的工作原理(7个参数,及工作流程)
HashSet是如何实现的,如何保证不重复
HashTable可以put一个Null吗(不能,因为需要用key去计算hash值,如果key为null会抛出空指针异常)
HashMap在1.7和1.8之间做了什么优化
ConcurrentHashMap呢
Redis内存淘汰策略有哪几种
Redis如何加锁,如何用Redis实现分布式锁
追问:使用setnx会不会导致死锁(会,必须设置过期时间,使用事务原子命令SET key value EX time NX)
Redis有哪几种高可用部署方式(Redis真不熟。。面试官帮忙说了,主从、哨兵、分布式集群)
Redis如果不用事务命令怎么保证原子性(Lua脚本)
使用Redis分布式锁有一个问题,不管是主从模式/哨兵模式下,如果主节点挂了,key没有同步到主节点,查询不到key就又可以获取锁,怎么解决(Redisson)
场景题:如果锁超时释放了,业务还没执行完,其他线程这个时候是可以获取到锁的,但是不想让其他线程获取到锁,如何解决(用一个定时器/看门狗,在锁快过期的时候去判断业务执行完了没有,没执行完就重置过期时间)
NIO跟BIO、AIO的区别
JVM的垃圾回收算法有哪几种
MVCC主要用在哪里
事务的隔离级别
(面试官本来好像想问一下python,但是我不太熟,只是会用)
Redis缓存穿透是什么,怎么解决
Spring三级缓存为什么要设置第三级

5、小米JAVA开发实习面经

(0)八股

1.JVM的架构,具体阐述一下各个部分的功能?
2.Zset的底层如何实现
3.Mysql隔离机制有哪些?怎么实现的?可串行化是怎么避免的三个事务问题?
4.Spring源码看过吗?Spring的三级缓存知道吗?
5.抛开Spring,讲讲反射和动态代理?那三种代理模式怎么实现的?
6.讲讲线程池?为什么用线程池?
7.集合里面的arraylist和linkedlist的区别是什么?有何优缺点
8.介绍一下计网里面的tcp和udp协议
9.介绍一下http和https的区别?为什么https安全?
10.Mysql有很大的数据量怎么办?怎么分表分库?
11.Redis的基本数据类型?Redis的持久化呢?有何优缺点?
12.B+树了解吗?底层呢?为什么这么用?

(1)算法

算法:链表对折
1-2-3-4-5-6-7对折之后为1-7-2-6-3-5-4 (需要自己定义链表结构,自己导入包和main以及方法命名等)

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值