三面网易,四面阿里,五年开发经验程序员剑指大厂,java语言程序设计与数据结构进阶篇答案

说sql调优经验

Redis:

redis的数据结构

redis淘汰策略

redis单节点和多节点

redis的数据储存

网络:

HTTP 1.1版本增加了哪些内容?有哪几种请求方式?

描述下HTTP三次握手和四次挥手过程?为什么需要四次挥手?

为什么TIME_WAIT状态需要经过两个最大报文段生存时间才能到close状态?

浏览器发起一个请求到收到响应中间经历了哪些过程?

Nginx:

Nginx模块,说说你最熟悉的

proxy_cache你是怎么配置的?缓存是存在哪里?具体是怎么命中缓存的?

Linux:

怎么查看某个进程中的线程?

怎么批量替换一个文件夹下所有文件中的一个字符?(sed命令)

有没有用过jps jmap jstack jstat 命令,分别说下有哪些常用参数。

image

阿里巴巴(蚂蚁金服部门):3轮技术面+HR面


操作系统:

进程间通信有哪些,请详细说明一下自己在哪种场景下用过哪种方式?

死锁是怎么产生的?说一下

Java中的线程有几种状态?

os中管道的实现

解释一下分段和分页

虚拟地址、逻辑地址、线性地址、物理地址的区别

协程和线程和进程的区别,你是怎样理解的?

网络:

为什么三次握手四次挥手?三次挥手可不可以?

OSI和TCP/IP的区别

http server服务,现在要做一个针对用户维度或者接口维度的频控,假设一秒100这种,问在不改变原有接口服务的情况下,你如何实现?

网络安全相关,csrf这种攻击如何防范

各种协议问我了解过没有,例如TCP/UDP/ICMP,这个问题比较常见

微服务和http服务的区别,你对两者是怎样理解的?

数据库:

你自己使用MySQL中遇到过乱码问题没有,如何解决的,产生原因是什么?

Select * From table_name where filed_name != NULL 这个sql语句是什么意思,你觉得有没有问题?

关键字where和having的区别,说一下

介绍一下MySQL数据库引擎innodb,及MySQL的四种隔离级别

用过什么索引,使用这个索引有什么要注意的

数据的分库分表会产生什么问题,如何解决?

写一个sql语句,给表t_score 字段 id(int),score(varchar),team1_id(int),team2_id (int)

给表t_team 字段id(int),name(varchar),完成输出这种效果的语句(一条完成):id:xx,team1_name:中国,team2_name:日本,score:4:1

算法:

给你一个正整数k,可能会很大但不超过integer_max,再给你一个正整数m(0-9),问1-k中间有多少个数,m出现了多少次,如给你k=12,给m=1,那么11,1,12这三个数,1一共出现了4次

一个N阶int矩阵,人从(0,0)开始走,只能往上或者往右走,矩阵内的数值是该坐标的分值,分值只能获取一次,问这个人从(0,0)走到(N-1,N-1)再走回来,往返获得的分值最大是多少

redis:

redis里的五种数据类型

解释一下redisObject和SDS

redis里的sort set为什么要用跳表不用红黑树,那跳表实现原理说一下

缓存不一致如何解决

redis持久化,aof里的文件写入和文件同步解释一下

redis持久化aof和rdb分别适用于什么场景

redis各种数据结构,操作的时间复杂度

redis的主从复制原理,有没有可能写操作写到主,读操作读到从,那么读不到最新的数据,但是我如果偏要保证一致性,那如何解决?

kafka:

概念解释,producer/consumer/partition/topic/offset/broker

kafka为什么和其它mq比起来,吞吐量高这么多,你有思考过kafka适用于什么场景吗,或者你说下你对不同mq产品的对比

kafka高可用性的cap理论,谈一下你的理解

kafka如何保证消息不被重复消费

kafka里的消息我要指定存到不同的数据源该怎么做?

拿到offer后的规划和心态


拿到offer后,下一个也有要清晰的目标。接下来的时间,是形成思维方法论和知识体系的阶段,同时也要培养自己团队协助与管理能力,提升自己的眼界,从而有更长远的发展。

至于心态,脚踏实地,不傲不馁。

最后:


1.梳理知识

一般的面试,会被问到JVM原理、多线程、数据结构和算法、高并发、设计模式等内容,这都是一名普通Java开发人员的知识结构,那么阿里P7肯定是需要具备更多的知识树,需要掌握更全面的知识体系,所以就需要对知识进行一个系统的梳理了。

对标P7,我梳理的知识体系如下:

  • 筑基必备技能:并发编程,JVM,网络编程与高效IO,Mysql,Tomcat

  • 设计思想与开源框架:SSM(Spring+SpringMVC+MyBatis)

  • 性能直线提升架构技术:ZK,Nginx,RabbitMQ,RocketMQ,Kafka,elastic

  • 高效存储让项目性能起飞:Redis,MongoDB,MySQL,Mycat

  • 分布式扩展到微服务架构:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S

image

image

2.复习知识

工作这么久要重新再去面试肯定是要将自己的知识储备重新拿出来,要把各个知识点复习到位,需要通过各个方式,选择自己最习惯的。无论是读电子书籍还是观看视频都是可以的,但要记得做好自己的学习笔记,能够起到总结的作用,再去复习起来就特别清晰了。

电子书籍:

image

学习笔记:

![image](https://img-blog.csdnimg.cn/img_convert/9edcce9bb02f183d98

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

f9efca4bb324df.png)

image

image

学习视频:

image

3.刷面试题

工作5年,虽然清楚现在流行什么技术,但对于互联网大公司会面试一些什么还真是不太清楚,所以面试之前刷一刷面试题还是很有必要的,能够做到举一反三。一线互联网的面试题,我整理了近三年的,内容还真不少。

你可能感兴趣的:(程序员,面试,java,后端)