小米面试Java开发工程师(实习)
文章目录
- 一、
- 一面
- 二面
- 二、
- 一面
- 二面
- 三面
- 三、
- 一面
- 四、
- 一面
- 五、
- 一面
- 二面
- 六、
- 一面
- 二面
- 七、
- 八、
- 附
要求:
- 熟悉Linux开发环境;
- 熟悉web服务开发,了解web服务框架,了解web安全
- 掌握常用的设计模式;数据结构与算法
- 了解常见的分布式存储计算框架
一、
一面
1、自我介绍?
2、小米岗位北京和武汉怎么选?
3、讲讲自己实习经历最深的一次?实习团队氛围?刚进公司有压力吗?
4、算法用的多吗?自己平时怎么学习的?最大的挑战?
5、写代码(剑指offer):平衡二叉树?
6、tcp / udp?
7、操作系统:调度算法?
8、进程 / 线程?还了解吗?
9、ip的包结构?抓过包吗?
10、三次握手?去掉一次,优点、缺点?
11、Linux了解吗?说下基本常用的命令?
12、有什么问题问的?
二面
1、自我介绍?
2、讲一下创新基金项目?可以在公司用吗?
3、实习经历?学到了什么?在公司遇到问题怎么解决?遇到的挑战说几个?在公司最有成就感的事情?
4、https?常用的状态码?
5、git常用命令?tag标签?分支?
6、对测开的理解?自动化测试工具用过吗?junit before和after区别?
7、mvc了解吗?
8、意向哪个城市?
9、对小米的了解?
10、有问题要问吗?
二、
一面
- 编程题: 链表翻转
- HashMap底层结构, 插入操作, 扩容操作, 为什么要扩充2倍长度
- hash表与二叉树的区别
- static从加载到使用, static int a = 10;会直接初始化为10吗
- ArrayList与LinkedList的区别
- ArrayList插入无序数后如何排序
- 讲一讲volatile, 为什么单例模式二重校验锁下实例要声明为volatile
- 讲一讲synchronized, 锁升级, 讲一讲轻量锁与偏向锁, 两个线程在轻量锁下有什么操作
- 讲一讲gc, CMS有哪些步骤
- 项目是自己做的还是跟别人一起合作的
- 如果你和同事对开发意见不一, 你会怎么处理
- 有同事想要把代码写的很完善, 你想把代码写的简单, 如何处理
- 能来实习吗
二面
- 自我介绍
- 编程: 使用堆实现队列【思路是对的, 两个堆弄错变量名了, 面试结束才发现…】
- 微服务如何实现负载均衡, 如何判断服务是否为空闲
- Redis有哪些数据结构
- 订阅发布有用过吗
- 哈希一致性当两个节点邻近如何处理
- CAS
- volatile
- JVM, JMM
- 字符串常量池, 多个字段拼接用+好还是StringBuilder.append()好
三面
- 自我介绍
- HashMap底层, 数组长度为什么2的幂次方, 扩容后原数据索引会变吗
- 事物隔离级别以及相应的处理方法
- Linux中某个Java程序内存消耗大, 如何查找
- Hystrix如何实现熔断, 如何实现限流
… - 编程题: 打印树的第k层节点
三、
一面
除了==方法,还有什么方法比较属性值是否相等(序列化,反序列化)
object有哪些方法
快速排序实现(手写代码)
合并两个链表(手写代码)
树的最大距离
二分法排序
单例模式(饿汉式,懒汉式)手写代码
工厂模式
hashmap(concurrenthashmap)
基本数据类型,拆包解包
wait,sleep,notify,notifyall
spring(ioc)
事务四大特性,讲一讲原子性,一致性
事务的隔离级别
数据库的索引原理
实现多线程的四种方式
除了new还有哪些方式创建对象
synchorized和volatile区别
四、
一面
1、先是自我介绍,然后让我讲讲做项目的流程;
2、紧接着又出了一题编程题,从前后两边查找指定字符出现的个数;
3、怎么判断一棵树是不是二叉搜索树;
答:可以判断给定二叉树中序遍历之后是不是有序的;
4、面试官接着问我怎么判断这个序列是不是有序的;
五、
一面
- 谈谈mysql存储引擎,索引,辅索引底层结构。
- 讲讲redis里面string的底层是怎么实现的。
- 给定一个ip地址比如221.130.111.109/30,指出这个IP地址的网络号,主机号,以及子网数。这个地址属于那一类ip地址(A,B,C)类。
- 讲讲TCP三次握手的具体流程。
- 老问题,一个页面从输入URL到页面加载显示完成,这个过程都发生什么?
- 如果上面的是基于HTTPS的请求,会增加哪些流程呢(即HTTPS请求的流程)。HTTPS里面的对称加密的密钥是怎么发送的,能用RSA的私钥加密比它大的数据吗?
- 手撕代码1: 输入两个链表,每个链表代表一个数,对这两个链表进行加法运算,输出的和也是一个链表形式,比如1->2->3->4, 2->3->7,对这两个链表进行加操作,1234+237=1471,输出1->4->7->1。
- 手撕代码2: 镜像二叉树,递归非递归。
二面
什么是mybatis的一级缓存和二级缓存,区别?
如何实现缓存与DB的一致性?
redis有哪些数据结构,redis的持久化机制,redis的有事务吗,怎么实现的。
发生缓存击穿或者缓存穿透的情况该怎么解决。
java容器类的层次结构,分别讲一下各种容器的原理,LinkedList的删除操作怎么实现;TreeSet的add操作怎么实现的,详细一点;HashTable怎么实现线程安全;LinkedHashMap实现机制,如何保证添加元素的有序性。
LRU是什么,如何实现一个LRU缓存。
手撕快排,前后序遍历非递归,求一个二叉树的高度。
根据前序和后序遍历之后的两个字符串,求后序遍历
linux命令,你用过哪些。
分布式锁有哪些实现方式,大概讲讲怎么实现的分布式锁(ZooKeeper的实现版不记得了)。
讲讲redis哨兵机制
redis集群中如何知道某个节点挂了,心跳机制;怎么去实现心跳机制。
六、
一面
- 简单介绍自己,之后开始写代码
- 两个单链表合并
- 二叉树层序遍历
- 多个链表合并
- 给一个target在数组内找两数相加和为target的
二面
- 简单介绍,稍微问了下项目,但是项目太水增删改查没有多问。
- 一个排列组合题,脑抽没答出来,n个球放m个盒子的问题,分组讨论
- 网络,为什么三握手,两握手行不
- 编译原理,1.1+(2.2-3.3) 怎么做,应该是词法分析器吧。记不清了。不会
- 迷宫问题的化简和应用,两端并行
- 操作系统,线程和进程
七、
1.类的成员函数和数据成员分别存在哪里,类大小的计算
2.如何禁止构造函数的使用
3.如果禁止类实例化时候的动态分配方式
4.引用和指针的区别
5.实现一个类成员函数,不允许修改类的数据成员
6.那些关键字可以修饰线程安全的变量
7. TCP、UDP穿透问题(一脸懵逼,面试官解释了就是内网外网间,我说了NAT,但是NAT是网络层的,跳过了)
8. TCP断开过程
9. 场景题:中英文字符计数问题(只会简单的,复杂的没想明白)
10. 手撕代码:利用无序数组非递归方式建立BST,并迭代中序遍历输出
八、
1、Java中的集合类有哪些了解呢?
2、项目中用到过哪些缓存?
3、ArrayList和LinkedList的区别?
4、linux了解怎么样。各个用户之间的权限了解吗 ?
5、手写代码:求两个链表相交。
6、新建线程的方式,有什么区别
7、Thread的run方法和start方法的区别是什么?
8、怎么关闭线程?
9、TCP为什么是三次握手和四次挥手?
10、TCP和UDP区别?
附
虚拟机 :类装载子系统 运行时内存 字节码执行引擎
运行时数据区包含:堆 线程栈 本地方法栈 方法区 程序计数器
tcp udp :
udp 8 TCP首部开销大 固定首部20字节
不可靠连接,传输效率高,正确率低
TCP 字节流 也用缓冲区,可能半个数据包 也可能很多数据包
UDP面向报文
字符流默认使用缓冲区
集群 分布式 负载均衡(根据某些规则进行分流)
说说几种常见的线程池及使用场景
1、newSingleThreadExecutor
创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
2、newFixedThreadPool
创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
3、newCachedThreadPool
创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
4、newScheduledThreadPool
创建一个定长线程池,支持定时及周期性任务执行。
小米面试Java开发工程师(实习)相关推荐
- 22届SHEIN校招面试--JAVA开发工程师面经
这里写自定义目录标题 个人背景 性格测评+笔试 一面 8.30 同事面 二面 9.08 tl面 三面 9.13 hr面 四面 9.16 部门总监面 五面 9.25 CEO面 面试总结+实习期的感受 今 ...
- 58java面试题_58赶集总部面试java开发工程师,一道令人费解的面试题
转: 一位同学内推,帮我争取到了58赶集面试的机会.没有笔试,直接进入技术面.遇到一位工作五年的工程师翟,一脸严肃的把我带到A区四层的一个小方桌前.对于只有一年工作经验的我,小有压力. 上来自我介绍, ...
- 求职招聘之Java开发工程师校招面试都有哪些步骤和注意事项?
文章目录 Java开发工程师校招面试解析 网易案例 一般的校园招聘面试流程 业务逻辑面试(讲项目) 基础知识面试 Java开发工程师校招面试解析 网易案例 下面是一个网易Java开发工程师的基本要求: ...
- 美的美少年计划(Java开发工程师)实习面经
美的美少年计划(Java开发工程师)实习面经 已oc. 流程: 参加完恳谈会后才会显示录用签约.流程差不多25天,测评后等了10天才oc. 面试事业部: 美云智数 面试只有一面,从各方的反馈来看,面试 ...
- 数字海南Java开发工程师实习生面试全过程及反思
2020-12-7 数字海南Java开发工程师实习生面试全过程及试后反思 记录下人生第一次投递简历,正规实习求职面试,以及前前后后的准备与遇到的问题. 目录 2020-12-7 数字海南Java开发工 ...
- 微博面试Java,微博java开发工程师面试题整理
下面要给大家分享的是一个小伙伴的微博java开发工程师一面的面试题,一起来看看微博java开发工程一面面试题都有哪些吧! 面试题(一面) 1.做一个小时笔试 2.java创建对象的几种方式是什么? 用 ...
- Java开发工程师面试总结
Java开发工程师面试总结 1. Java基础 1.1 接口与抽象类的区别 1.2 重写与重载的区别 1.3 集合 1.4 多线程 1.6 反射 2. Spring框架 2.1 IOC 2.2 AOP ...
- 面试|应聘Java开发工程师的基本要求是什么?
根据技术水平不同,Java程序员可以分为初级.中级.高级.资深等.不同级别的Java程序员,企业的要求也是有区别. 下面播妞整理了初级Java程序员和中级Java程序员的应聘要求,供大家参考:(具体要 ...
- Java开发工程师面试经验总集
置顶个交流群 文章觉得海星的话,可以来群里找桃子交流技术或者普通乱聊= = 挂群:820080257 文档链接:[腾讯文档]Java开发工程师 https://docs.qq.com/doc/DQlZ ...
最新文章
- 进击谷歌:多线程下程序执行顺序怎么稳定不乱?
- idea测试连接mysql报错08001_IDEA连接MySQL错误
- 静态主席树总结(静态区间的k大)
- java servlet jsp javabean关系图_Servlet+JSP+JavaBean开发模式(MVC)介绍
- python socket编程_Python学习记录-socket编程
- java工程转maven工程_Java工程转换为Maven工程
- Mysql 8 驱动问题:报错Unknown system variable 'query_cache_size'
- 黑金花大理石_石材用上黑金花,一看就是富豪家
- 几个性能测试工具/框架的比较
- Docker基础教程
- Python实现注册账号系统密码验证模块编写
- sql server2014 企业版 百度云下载
- 小程序开发专题-项目设计-毕业设计【建议在校生收藏】
- 全国大学生英语竞赛——题型介绍
- 软件需求工程 高校教学平台 测试报告
- 南柯33的Python学习笔记第(一)部分
- JSON是什么,有什么用,怎么写json
- 请问OCP上面有没有证书编号?
- 游戏开发插件整理(亲测可用)
- java返回给前端的json数据中带有转义符号如何处理