参加春招的小tips!字节/腾讯/华为/美团/shopee/阿里 服务端开发面经

前言

写在最前面:目前接了字节的offer,校招想来字节的可以私信我

以下面经均是以时间线排列,最好每次面试完都自我总结一下
有些问题比较少的或者没列出来的基本都是在聊项目

腾讯一面(未知部门)

  • mysql varchar和char
  • char是固定长,初始长度是多少,赋值之后就是多长
  • varchar是可变长,赋值长度与初始长度无关
  • mysql建表规则
  • hashmap和treemap
  • hashmap不会排序,treemap会根据comparator进行排序
  • ArrayList和linkedlist
  • linkedlist是双向链表非循环
  • java基本类型
  • byte 1
  • short 2
  • int 4
  • long 8
  • float 4
  • double 8
  • char 2
  • boolean 1
  • jvm
  • jvm是java虚拟机,用来运行java编译后的字节码文件(.class),做到一次编译多次运行(跨平台)
  • collection的方法
  • add remove contains iterator size isEmpty
  • static方法访问非static变量
  • 类的静态成员(变量和方法)都属于类本身,在类加载的时候就会分配内存,可以通过类名直接访问
  • java多继承
    1、若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量
    2、若一个子类继承的多个父类拥有相同方法,同时子类并未覆盖该方法(若覆盖,则直接使用子类中该方法),那么调用该* 方法时将无法确定调用哪个父类的方法。
  • 乐观锁 悲观锁
  • 悲观:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。
    乐观:总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现
  • StringBuilder StringBuffer
  • 单例
  • 懒汉和饿汉

腾讯一面(IEG)

  • 算法:删除倒数第k节点
  • tcp/udp的区别 视频/语音为什么使用udp
  • 4次挥手时的timewait
  • tcp中的流量控制和拥塞控制
  • 进程和线程
  • 进程的调度
  • 进程的通信方式
  • 大端和小端系统
  • 队列能否不使用锁进行并发
  • 队列要用多少个堆实现
  • 静态链接和动态链接
  • C++的多态(Java)
  • 僵尸进程

字节一面

  • 算法:链表反转(m到n)
  • mysql索引 最左索引
  • visitor模式
  • 进程和线程
  • 进程通信
  • 线程同步
  • java锁
  • synchronize方法和代码块
  • synchronize怎么做到可重入
  • CAS 以及哪些领域同样用到cas
  • tcp4次挥手 为什么

阿里二面(几乎都是开放性问题)

  • 进程切换

  • 进程切换分两步:

  • 切换页目录以使用新的地址空间

  • 切换内核栈和硬件上下文

  • 对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的。

  • (中断/异常等触发)正向模式切换并压入PSW/PC 。 (Program Status Word 程序状态字。program counter 程序计数器。指向下一条要执行的指令)

  • 保存被中断进程的现场信息。

  • 处理具体中断、异常。

  • 把被中断进程的系统堆栈指针SP值保存到PCB。(Stack Pointer 栈指针。Process Control Block 进程控制块。)

  • 调整被中断进程的PCB信息,如进程状态)。

  • 把被中断进程的PCB加入相关队列。

  • 选择下一个占用CPU运行的进程。

  • 修改被选中进程的PCB信息,如进程状态。

  • 设置被选中进程的地址空间,恢复存储管理信息。

  • 恢复被选中进程的SP值到处理器寄存器SP。

  • 恢复被选中进程的现场信息进入处理器。

  • (中断返回指令触发)逆向模式转换并弹出PSW/PC。

  • 页表

  • tcp如何保证可靠

  • tcp如何保证正确性 校验和原理?

  • 把伪首部添加到UDP上;

  • 计算初始时是需要将检验和字段添零的;

  • 把所有位划分为16位(2字节)的字

  • 把所有16位的字相加,如果遇到进位,则将高于16字节的进位部分的值加到最低位上,举例,0xBB5E+0xFCED=0x1 B84B,则将1放到最低位,得到结果是0xB84C

  • 将所有字相加得到的结果应该为一个16位的数,将该数取反则可以得到检验和checksum。

  • 10亿订单,每个区间取topk

  • 10亿订单存在哪里可以取出来

  • java能否多进程(多进程编程)

  • 使用Process和Runtime进行多进程编程

  • java内存管理

  • 回收机制

  • 堆的内存泄漏

  • 输入http之后的流程

  • java多线程(自己的看法)

  • 线程池设置多少合理

  • 如何让udp可靠

字节二面(几乎都是为什么)

  • http输入之后的过程

  • dns的解析过程

  • ip传输的过程

  • 整个请求传输的过程

  • 什么时候用tcp udp,什么场景下,为什么

  • html响应解析渲染的过程

  • html head里有什么元素

  • 什么时候要多线程,什么时候要多进程

  • 如登陆,如何保证安全性

  • 后端如何保证

  • 加密算法

  • 算法:k个一组地翻转链表

美团一面

  • HashMap的实现原理,插入如果冲突,是插入头部还是尾部

  • 是否线程安全,哪些是线程安全的

  • ConcurrentHashMap如何做到线程安全

  • ConcurrentHashMap的size()如何实现

  • LinkedHashMap的区别

  • 多线程都用什么来开发

  • ThreadPoolExcutor的参数,队列使用的是哪种,是否设置初始值,无界队列是否可以

  • ThreadPoolExcutor如何操作,原理

  • Excutors.newFixed()的缺点

  • 其他的线程池方法

  • 线程如何做到交替运行

  • 多线程如何做到顺序执行

  • 线程如何做到等待其他线程完成后执行

  • synchronized和lock的区别

  • mysql的隔离级别

  • mysql的默认隔离级别

  • 幻读是什么

  • mysql的可重复读是否可以防止幻读

  • b树和b+树的区别

  • b+树用作索引的数据结构优势在哪

  • 平衡二叉树与红黑树的区别

  • 算法:用stack实现queue

美团二面

  • 网络协议有哪些

  • ThreadLocal的作用,是否线程安全

  • 进程间的通信,java进程间的通信

  • Socket 这个方式可以实现,需要在父子进程间进行socket通信

  • 队列机制 这种方式也可以实现,需要父/子进程往队列里面写数据,子/父进程进行读取。不太好的地方是需要在父子进程之间加一层队列实现,队列实现有ActiveMQ,FQueue等

  • 通过JNI方式,父/子进程通过JNI对共享进程读写

  • 基于信号方式,但该方式只能在执行kill -12或者在cmd下执行ctrl+c 才会触发信息发生。

  • TreeMap讲解,里面有什么属性,entry里有什么属性

  • java里有哪些是不需要加锁的同步方法

  • 行锁和表锁的区别、场景

  • 组合索引的使用,eg. (a, b, c)索引,where a=x; where b=x; where a=x and b=x;哪个能使用索引

  • ArrayList和linkedlist的区别

  • 有哪些集合类是线程安全的

  • blockingqueue什么场景下使用

  • java有哪些锁

  • 算法:排好序的数组,找2个数的和为M的所有组合

  • 算法:大数据下,找出出现频率topK的ip

  • 在Hadoop/Spark下如何实现

  • 看过哪些书

字节三面

  • 最近的项目(我应该说最熟悉的那个。。)

  • 写懒加载单例 为什么里外层null判断 为什么加volatile 如何做到复用(泛型)

  • 算法:(login, logout),算出在线人数峰值

  • 算法:一组边,做成树结构(左点为父,右点为子)

  • mysql:每个班级中某科目前10,如何建立索引优化

  • 吃鸡用tcp还是udp?

  • 客户端发起10次服务调用,udp和tcp场景下,服务端调用的次数?

  • 多态的描述

  • 抽象和接口

  • 浅克隆和深克隆

  • 线程和进程的区别

  • 进程的同步

  • 死锁的条件,如何解决死锁

  • 进程句柄在内存中的结构

  • http中keep-alive的作用

  • 301 302 404 502的意义

  • CAS的原理,缺点,如何解决ABA问题

  • 静态内部类和非静态内部类

总结

最后我为大家准备了java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!
有需要的朋友点击这里备注csdn自行下载就好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35242.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【阿里三面】好险!本以为是场普通的阿里面试,没想到二面就迎来了P9大佬

前言 阿里,我是在BOSS上投的简历,之前也投过一次,简历都没通过筛选,后来让前辈帮我改了一下简历,重新投另一个部门,获得了面试机会。5月15日,中午HR打电话过来预约了下午4点半面试,…

听GPT 讲K8s源代码--pkg(四)

/pkg/controlplane、/pkg/credentialprovider、/pkg/kubeapiserver是Kubernetes中的三个核心包,它们分别实现了不同的功能。 /pkg/controlplane包 /pkg/controlplane是Kubernetes的一个包,它包含了控制平面组件的实现,例如API Server、Contro…

系统安全实验(伪造IP,输出重定向获取flag)

1.伪造ip https://blog.csdn.net/wu_tongtong/article/details/124630153学姐赛高 题目描述 这道题目主要考查的是如何伪造HTTP请求头中的IP信息,这里我们推荐使用firefox自带的simple-modify-headers插件来伪造IP;当然你也可以选择使用其他工具来伪造HTTP请求头中的…

制作游戏辅助/外挂违法吗?

不知道你们有没有过一个体验: 玩《绝地求生》的时候,我们辛辛苦苦开着车在跑毒,旁边“咻”的一下突然蹭上来一个人,徒步跑得竟然比车快? 然后吧他还跑到你旁边开麦问:“嘿!兄弟!挂…

【直播预告】我写的代码犯法吗?公益的 IT 人法律科普在线直播活动来袭!

我写的代码犯法吗?公益的 IT 人法律科普在线直播活动来袭! image-20201212183656959 虽然我们这些 it 搬砖人只是敲敲键盘,搬点砖,但是很有可能你吃完泡面后开开心心地在 4K 显示器面前敲着新买的机械键盘时,警察叔叔就…

用假名印名片犯法吗_用简单的javascript学习假名

用假名印名片犯法吗 Learn Hiragana and Katakana charaters with some help from plain old JavaScript. 在普通的旧JavaScript的帮助下学习平假名和片假名角色。 We are making a single html page that will display a random Kana — a random Hiragana and its Katakana …

nft在国内到底合法吗

大家都比较关注这个问题接下来我就跟大家一起聊一聊 国内允许对虚拟硬币的投机和交易以及采矿进行打击,但也鼓励和支持区块链技术的发展,包括不涉及虚拟硬币投机的NFT。 对大多数人来说,NFT这个词让每个人既陌生又有些熟悉。陌生感是因为日常…

Python版实现12306抢票功能,真的能帮你抢到春运回家的票吗?

背景 每逢佳节倍思亲,年关将近,思乡的情绪是不是愈发强烈了,筒子们是不是又要准备开始抢票了,还是在找黄牛吗?但是,今年在考虑是否能抢到票以外,还需要考虑是否能回得去,没错&#…

python爬虫音乐犯法么_Python爬虫实战之爬取QQ音乐数据!QQ音乐限制太多了

def open_url(url): pass def find_attribute(url): pass def main: pass 复制网页链接 复制网页链接将链接用列表进行保存下来。如果想要同一时间获取多个网页里面的数据,自行书写for循环遍历列表即可。以下只以一个网页进行讲解。 def main: # 用列表进行存储网页链接 url =…

Python爬虫 | 写在系列博客的第一篇,爬虫到底犯法吗?看完再开始爬虫!!!

一、 什么样的爬虫是非法的? 爬虫不能涉及个人隐私! 如果爬虫程序采集到公民的姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等个人信息,并将之用于非法途径的,则肯定构成非法获取公民个人信息的违…

学习ChatGPT,AI绘画引入人类反馈会怎样?

来源:机器之心 本文约2400字,建议阅读5分钟本文介绍了研究人员在文本到图像模型中引入人类反馈。 NLP 领域使用的技术不断地向其他领域扩展,如 CV 和多模态,鸿沟正在被打破。本文中谷歌研究院和加州伯克利的研究人员在文本到图像模…

(十三)AI作画、AI绘画、AIGC本地大模型

(十三)AI作画、AI绘画、AIGC本地大模型 AI作画近期很火,涌现出了很多AIGC(AI内容生成)的网站、平台,但这些平台都是使用的云上的算力,基本都有使用的各种限制等。 一、本代码自动将大模型下载本地,可以无-限-使-用。但是对硬件的…

健身房会员管理系统

开发工具(eclipse/idea/vscode等):idea 数据库(sqlite/mysql/sqlserver等):mysql 功能模块(请用文字描述,至少200字):涉及到的技术 SpringBoot Mybatis Thymeleaf mysql题目描述:健身房管理系统是对健身房会员,员工的管…

健身房管理系统分析

主要功能: 1、经理权限&#xff1a; <1>会员的添加和移除&#xff1b; <2>会员基本情况的查询功能&#xff1b; <3>会员的消费记录查询功能&#xff1b; <4>会员续卡功能&#xff1b; <5>教练的在职和当班情况&#xff1b; <6>教练的排班…

让 ChatGPT 来担任这个召之即来挥之即去的私人健身教练

健身教练 和ChatGPT聊天可以运用在各种正式、非正式&#xff0c;工作、休闲场合&#xff0c;让我们再来看一个场景&#xff0c;也是年轻人群体中非常热门的话题&#xff1a;健身。健身已经是年轻人最流行的活动&#xff0c;既可以是私密的个人健身&#xff0c;也可以是呼朋唤友…

chatgpt赋能python:如何使用Python快速打包iOS应用程序

如何使用Python快速打包iOS应用程序 如果你是iOS应用程序开发者&#xff0c;那么你一定知道打包iOS应用程序的繁琐和耗时。在iOS应用商店上发布应用程序需要遵守特定的规则&#xff0c;并且必须打包成IPA文件。如果你想在你的开发流程中更快地打包应用程序&#xff0c;那么你可…

腾讯云控制台详细介绍及使用教程

腾讯云控制台是用户通过网页端管理和使用云产品的入口&#xff0c;用户通过控制台对腾讯云产品和服务进行选购、查看、使用等各种操作。掌握了控制台的使用就是操作腾讯云产品的第一步。 一、控制台总览页 在控制台总览页&#xff0c;查看所有腾讯云产品入口、使用文档入口、在…

使用腾讯云轻量应用服务器搭建网站教程(也太简单了)

码笔记一直想搭建个人网站博客&#xff0c;腾讯云轻量应用服务器还不错&#xff0c;公网带宽也够用&#xff0c;想着用搞台轻量服务器搭建个网站&#xff0c;没想到通过应用镜像&#xff0c;也太简单了&#xff0c;把全部教程分享给大家&#xff1a; 本文是以轻量应用服务器上…

登陆注册实现腾讯云短信验证功能

目前比较流行的短信登陆注册&#xff0c;因为腾讯提供的sdk每月有100条免费短信&#xff0c;下面博主将和大家分享实现的过程&#xff01; 第一步 腾讯云短信功能注册&#xff1a; 然后配置短信签名和短信正文来确认发送短信的默认格式 需要注意的是&#xff0c;两个花括号为…

腾讯云SSL证书配置(nginx)

申请SSL证书 下载证书 下载完证书之后解压&#xff0c;因为腾讯云选择的是nginx服务器&#xff0c;所以我们只需要下载nginx并解压。 配置Nginx服务器 我们需要把刚才解压的nginx证书文件拷贝到nginx的conf路径下面—也就是服务器中/etc/nginx/conf路径下面的。 ssl_cert…