乐视 Java 后台工程师,一面,二面,HR面

上一次写了美团面经,期间也面过几家,没什么营养,就不写了。

面试前准备,先查看面试要求,根据对应要求复习,在查看看准网与牛客网上真实乐视面经,准备其中内容。

今天面试乐视,感觉挺好的,约的是下午两点,我一点就到了,HR就接待了我,我也直接就面试了,很赞

介绍项目,我写的三个项目,就说了一个,也就是主要准备的这一个,慕课网的Java秒杀系统方案优化 高性能高并发实战,个人感觉到处都是亮点,跟面试官聊了一会。

这个项目简历上是这样写的:

项目名称:以诺秒杀商城

项目技术:SpringBoot、MyBatis、JDK1.8、Druid、Redis、RabbitQM、JSR303、Log4j、Thymeleaf 、Bootstrap、jQuery、Ajax

开发工具:Eclipse、MySQL5.7、Tomcat7、Linux、Maven、Git、Navicat、JMeter

项目描述:该项目的侧重点主要就是秒杀这个功能,并对其做了高并发方面的优化,后台个人独立搭建,主要包含以下功能:用户登录、商品列表、商品详情、商品秒杀、订单详情

项目优化:分布式Session,页面静态化,对象缓存,RabbitMQ队列缓冲,异步下单,秒杀接口隐藏,数学公式验证码,接口防刷

项目地址:

https://github.com/Ethanim/seckill

首先有了这个项目,就能很加分,接着对该项目的一些内容进行了询问。

MD5 前台固定盐值,后台随机盐值,MD5 破解,准备一个超级大的库,存放常用 MD5 加密后的值,就可以比对加密后的密码,推导出加密前的密码。当两次 MD5 后,已经不算常用范围内。

项目中用到 RabbitMQ,发送处理过程?

生产者发送给消费者消息,报异常出错了,怎么保证消息正确发送?

消费者发给生产者确认内容,生产者确认,没确认,重新发送(没答上,面试官告诉的)

MyBaties 二级缓存?

(我答:只知道有一个缓存,第二个项目中,用到 Ehcache)

Git 分支命令?

(我答:master,具体都是用可视化工具)

Redis 集群?

(答:不会)

Redis 熟悉哪种数据类型?

(答:熟悉 String,但有五中数据类型,List,Hash,Set,zSet)

你以后还会学到更多的?

(这个以前看到过,确实支持别的类型)

Redis 一次取多个数据?

(答:mget)

不用这种呢?

(答:不会,面试官说了另一个种方式,没接触过,就没记住)

Redis 持久化?

(答:快照持久化,AOF,并解释了优缺点,详情可看

Redis 学习笔记

微信红包算法,保证每个人分的钱不会太多也不会太少?

(开始回答:一上来就随机分配好每个人的钱。该方法不能保证不会太多也不会太少)

如不用这种方式,每次请求计算一次?

(答:钱取到分,除以人数,获取每个人平均应分多少,在这基础上在随机加减一些,下个人在根据剩余钱与人数重新计算。之前看过红包算法,但是没认真思考,都忘的差不多了,还好没在深入问,问边界,随机加减怎么弄,就不好办了)

有多个群,发多个红包,这是一个接口,怎样保证不冲突?

(答:每一个红包 UUID 生成一个为一减,存在 Redis 中,对该键指向的红包进行操作)

一人抢到红包,但还没把最新值更新回去,下一个人取钱会不正确,怎么处理?

(答:虽然 Redis 支持事物不强,但也可以用事物)

如果不用这种方式呢?

(答:利用 RabbitMQ,排队,面试官说,也可以,面试官应该另有算法)

Linux Sell 命令?

(开始以为写那种 Sell 脚本,答不会,后来聊到不是,面试官解释了下,Sell 脚本很丰富,但每人记,里面放写 Linux 命令就行)

Linux Windows 查看端口被占用?

(没答上,百度后:netstat -tunlp,查看所有端口占用情况 netstat -tunlp|grep 3306,查看 3306 端口占用情况)

Linux 查看内存、硬盘剩余容量?

(答:top,不准确,百度后:查看内存使用情况:free -f,查看硬盘使用情况:df -h)

TCP UDP 却别,效率?

(答的一般,具体百度吧)

HTTP 怎么保证消息传输的准确性?

(答:三次握手)

HTTP HTTPS SSL证书?

(答的一般,具体百度吧)

HTTP 是基于 TCP、UDP 哪个上的?

(应该是这题,面试官问给了我一个两个选项的选择题,但我确实不知道,就说不知道,面试官告诉是基于 HTTP 是 TCP 的)

GET POST 却别?

(很基础的题)

重载,重写区别?

(很基础的题)

进程线程区别?

(答:一个操作系统有多个进程,一个进程有多个线程,JVM就是一个进程,其中最少有一个线程?线程内存共享,进程内存不共享)

了解堆栈吗?

(我把 JVM 内存模型的 5 块区域都说了,再说堆栈,这样比较加分吧)

问锁?

(我说,Lock,不会,就没继续往下问了,遇到不会到说不会就好,不转到下一个问题,不会装会,强行解释,反而不好)

线程创建有哪几种方式?

(答:三种,继承 Thread 类,实现 Runnable 接口,线程池,推荐使用实现 Runnable 接口和线程池,由于 Java 是单继承,实现 Runnable 接口后还可以继承其他类,线程池的四种也都说了)

给你时间学习 Golang,基础语法,不算框架多长时间?

(答:一个星期。个人感觉还是可以达到的,因为我还学过 PHP)

是否接受加班?团队其他人都完成了,就剩你没完成,是否自愿加班?

(答:接受加班,尽量避免这种情况)

问题卡了好几天,怎么办?

(答:应该请教同事)

同事也不会,比如 RabbitMQ,就你自己做,自己会,怎么办?

(答:技术群讨论。面试官主要就是想问你是否接受加班,愿意为公司付出,个人打算进IT行业时,就有了心里准备,感觉加班很正常,都是小事)

问题大概就这些,面试官让我等会,等二面,说看我能不能过。他有一张纸,给我打的都是满分,感谢

二面面试官来了,说一面面试官对我挺满意的,就没问我技术问题,跟我聊下乐视,建议我转 Golang,但不强制,说做电视上的软件用 Golang 比较好

接着 HR 面,由于两位面试官觉得我还不错,也没为难我,跟我聊了下乐视以前和现在的情况,前一阵下跌的比较厉害,现在属于一个上升阶段

你期待在什么样的公司工作?

(答:希望在一个大平台,以后可以有更好的发展)

你 3-5 年职业规划是怎样?

(答:个人比较喜欢技术,希望在技术上有所提升,3-5 年内争取成为公司开发团队的核心人员)

HR:

乐视之前属于一线二线之间的企业,现在属于二线互联网企业,介绍了下同事,技术还是有的,可以满足你大平台的要求

总结:

虽然面试过了,但走流程需要一到二周,还没具体 offer,所以继续学习,学习 Golang,不断学习

面试时给大家建议,不会就说不会,不要随便说

面试官问你一道题?正确答案是 A,你要 A、B、C、D 都答上来

比如问我

Redis 持久化?将优缺点,再讲建议使用哪个

线程创建方式?把该说的说了,再说把线程池也都给说了

问堆栈?把内存模型都说了,再说堆栈

面试时间是固定的,你说的多了,问你的相应就会少,但你说的,肯定都是你会的,而且还能展现出你懂的比较多

最后,祝大家也拿到心仪的 offer

点击作者姓名与作者大佬交流~

作者:虚空的虚空,凡事都是虚空

来源:

牛客网(www.nowcoder.com)

- 互联网名企笔试真题

- 校招求职笔经&面经

- 程序员/产品/运营求职实习信息

- 程序员/产品/运营学习交流社区

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

设计模式实战 - 中介者模式

以终端销售商(以服务最终客户为目标的企业,如超市)为例,采购部门要采购IBM的电脑,它根据以下两个要素来决定采购数量。

954
来自专栏微信公众号:Java团长

一个Java高级工程师的进阶之路

一、 Java。要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级) 工程师,...

541
来自专栏美团技术团队

“小众”之美——Ruby在QA自动化中的应用

1953
来自专栏Golang语言社区

关于多核编程的一点想法

Nim语言有很多语言上先进的特性和接近Python的语法,Rust定位成C++的直接竞争者。 但是请认真思考:这两个语言从一出生开始,都没有解决,而且以后也很难...

3945
来自专栏腾讯技术工程官方号的专栏

TDSQL 全时态数据库系统--核心技术

2943
来自专栏IT技术精选文摘

ZStack 的伸缩性秘密(一)异步架构

ZStack 核心架构设计使得 99% 的任务异步执行,因此确保了单个的管理节点能够管理十万级的物理服务器,百万级的虚拟机,数万级的并行任务。

1072
来自专栏陈树义

【超实用】面对枯燥的源码,如何才能坚持看下去?

一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果他还没学会阅读源码,那么他就会遇到瓶颈。因为到了这个时候的开发,他应该不仅仅只会做那些 CURD...

1455
来自专栏腾讯Bugly的专栏

Luakit的前世今生

最近发布了一个跨平台的app开发框架Luakit。那怎么会想到做这样一个东西呢?

3204
来自专栏java一日一条

13个不容错过的Java项目

GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自有代码或者学习编程技能。无论如何,开发工作当中我们几乎不可能绕得开GitHub...

4261
来自专栏DevOps时代的专栏

软件测试金字塔

? “测试金字塔”是一个隐喻,它告诉我们将软件测试分成不同颗粒度的桶,也给出了我们应该在这些组中进行多少次测试的想法。尽管测试金字塔的概念已经存在了一段时间,...

4185

扫码关注云+社区