文章目录
- 前言
- 一、自我介绍
- 1.Java和python的特点
- 2.你学python干了哪些事?
- 3.介绍下深度学习
- 二、项目
- 4.讲一下猫眼影院项目功能、技术
- 5.Zipkin干啥用了?原理了解不?
- 6.为什么用dubbo?微服务有啥好处?
- 7.外卖项目担任队长,怎样管理的?
- 三、编程基础
- 8.有哪些数据结构?
- 9.数组、链表的区别?
- 10.讲一下HashMap
- 11.为什么红黑树占用的内存比链表要大?
- 12.讲一下垃圾回收算法
- 三、算法
- 13.你最近做算法都哪些方面的?
- 14.平时喜欢跑步?
- 总结
前言
这次面试的节奏感觉非常好,之前是面试官拉着我走,这次基本上就是我引导面试官问我想回答的问题
一、自我介绍
面试官针对自我介绍里面的内容问了一些问题
1.Java和python的特点
答:我更多使用Java,python很久没用了。Java面向对象、代码复用、各种框架SpringBoot dubbo SpringCloud、代码规范整洁。python给我第一感觉是代码简单、随意,python有很多库,比如numpy、pandas、matplotlib,深度学习tensorflow大都用python
2.你学python干了哪些事?
答:了解基础语法,深度学习
3.介绍下深度学习
(谈了一些图像识别、卷积神经网络的内容)
二、项目
4.讲一下猫眼影院项目功能、技术
答:五大模块用户、影片、影院、订单、支付
Dubbo微服务框架、Zookeeper服务注册发现、链路监控、服务熔断、服务降级、流量控制…
5.Zipkin干啥用了?原理了解不?
答:用Zipkin进行链路监控,比如当项目上线之后,可以用zipkin进行调参,比如负载均衡。但是不了解底层原理
6.为什么用dubbo?微服务有啥好处?
(结合纯SpringBoot开发的仿饿了么外卖项目进行了对比。主要回答的方向就是扩容:将大的服务拆分,不同的服务可以部署在不同机器上,解决单体架构的瓶颈)
7.外卖项目担任队长,怎样管理的?
答:按照标准的软件工程开发流程,前期有需求分析、系统设计等文档,每人负责一个模块,开发过程中使用腾讯会议每天开个小会,总结每日工作情况。
三、编程基础
8.有哪些数据结构?
答:数组、队列、栈、链表、堆、树、二叉树
9.数组、链表的区别?
之前的博客中专门搞过 LoL
数据结构专栏:
我讲完区别之后,特意提了一下HashMap综合了两者
10.讲一下HashMap
(先讲了HashMap的结构,又特意说了在JDK1.7和JDK1.8中hashMap的区别(加入了红黑树))
11.为什么红黑树占用的内存比链表要大?
(之前看过红黑树源码,手写了一点代码)我猜的:因为红黑树的每个结点有parent
父节点的指针、color、left、right,而链表只是一个next
12.讲一下垃圾回收算法
(我个人认为,要讲好垃圾回收这个题目,只说一个算法是远远不够的,甚至算法都没必要说,重点是讲垃圾回收的结构,发生垃圾回收的时机)
答:垃圾回收算法包括标记清楚、标记整理、复制。要说清楚垃圾回收,还要从JVM的内存结构说起,垃圾回收主要回收的是对象,对象是存在堆中的,而堆里面结构分为两大部分:老年代、新生代。新生代分为三部分:eden伊甸园区、from、to,当对象来的时候,先进Eden,当它满了,就发生一次小垃圾回收,活的进from,当from满了,活的就进to,to满了,就再进from,之后就一直这样循环,直到 ①某个对象岁数达到(好像是15),就直接把这个老不死对象放进老年代 ②当新生代全满了,进老年代。当老年代满了,就发生最大的垃圾回收,STW,让整个程序停止。
\
三、算法
13.你最近做算法都哪些方面的?
答:没有刻意去练习某个方面的算法题,我平时刷算法主要是为了锻炼自己解决问题的能力和思路,我更注重的是一个题目有多少个解决方案。
14.平时喜欢跑步?
问到这里,瞬间就轻松了,哈哈哈哈
总结
继续努力,继续复习计网、操作系统、JVM
再做一点业务代码,练下感觉