2023年最新大厂开发面试题(滴滴,华为,京东,腾讯,头条)

2023年最新大厂开发面试题!!!

滴滴篇

  • B+树、B-树的区别?

  • 数据库隔离级别,幻读和不可重复读的区别?

  • 有 hell, well, hello, world 等字符串组,现在问能否拼接成 helloworld,代码实现。

  • 快排算法实现

  • 线程安全的单例模式

  • 匹马赛跑,有一个赛场,只有五个赛道,没有计时器,只能通过目测来记录快慢,求出第三 3 快的马要多少场比赛?

  • kmp 算法 next 数组的求解思路

  • 数组中有三个数字出现超过 3/4,求这三个数字?

  • 1 到 n+2 个数组中缺了两个数,如何用 O(n)时间,O(1)空间找到这两个数字。

  • 一条线段长为 1,随机选两个点,将改线段分为三段,三段能成三角形的概率是多少?

  • 有一个教授,他三个学生,脑袋背后分别各写了一个数字,其中一个数字是另外两个数字的和,经过几轮后,有一个学生猜出了自己的数字请问是什么原因?

  • B+树做索引时,B+树通常高度为多少层?要参考哪些条件?

华为篇

  • static 有什么用途?(请至少说明两种)

  • 引用与指针有什么区别?

  • 描述实时系统的基本特性

  • 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

  • 什么是平衡二叉树?

  • 堆栈溢出一般是由什么原因导致的?

  • 什么函数不能声明为虚函数?

  • 冒泡排序算法的时间复杂度是什么?

  • 写出 float x 与“零值”比较的 if 语句

  • Internet 采用哪种网络协议?该协议的主要层次结构?

  • Internet 物理地址和 IP 地址转换采用什么协议?

  • IP 地址的编码分为哪俩部分?

  • 用户输入 M,N 值,从 1 至 N 开始顺序循环数数,每数到 M 输出该数值,直至全部输 出。写出 C 程序。

  • 不能做 switch()的参数类型是

  • int A[nSize],其中隐藏着若干 0,其余非 0 整数,写一个函数 int Func(int* A, int nSize), 使 A 把 0 移至后面,非 0 整数移至数组前面并保持有序,返回值为原数据中第一个元素为 0 的下标。

  • 写一个程序, 要求功能:求出用 1,2,5 这三个数不同个数组合的和为 100 的组合个数

  • 实现一个函数,把一个字符串中的字符从小写转为大写

  • 随机输入一个数,判断它是不是对称数(回文数)(如 3,121,12321,45254)。不能 用字符串库函数

  • 求 2~2000 的所有素数.有足够的内存,要求尽量快

  • A,B,C,D 四个进程,A 向 buf 里面写数据,B,C,D 向 buf 里面读数据,当 A 写完,且 B,C, D 都读一次后,A 才能再写。用 P,V 操作实现。

  • 将单向链表 reverse,如 ABCD 变成 DCBA,只能搜索链表一次。

  • 将二叉树的两个孩子换位置,即左变右,右变左。不能用递规。

  • 以下属于物理层的设备是? 在以太网中,是根据()地址来区分不同的设备的?

  • 以下为传输层协议的是?

  • 以下对 MAC 地址描述正确的是?

  • 以下属于数据链路层功能的是?

  • IEEE802.3u 标准是指?

  • 如果要将两计算机通过双绞线直接连接,正确的线序是?

  • 在 V.35 和 V.24 规程中,控制信号 RTS 表示?

  • 路由器作为网络互连设备,必须具备以下哪些特点?

  • 路由器的作用有?

  • 调用上一条历史命令的快捷键是?

  • 交换机工作在 OSI 七层的哪一层?

  • 以下对 CSMA/CD 描述正确的是?2.4.5 以下对 STORE ANDFORWARD 描述正确的是?

  • 以下对交换机工作方式描述正确的是?

  • VLAN 的主要作用有?

  • 在交换机中用户权限分为几个级别?

  • 在路由器的配置过程中查询以 S 开头所有命令的方法是?

  • 第一次配置路由器时可以使用的方法为?

  • 在何种状态下可以为路由器改名?

  • 某公司申请到一个 C 类 IP 地址,但要连接 6 个的子公司,最大的一个子公司有 26 台 计算机,每个子公司在一个网段中,则子网掩码应设为?

  • 与 10.110.12.29mask 255.255.255.224 属于同一网段的主机 IP 地址是?

  • ARP 协议的作用是?

  • 当路由器接收的 IP 报文的 TTL 值等于 1 时,采取的策略是?

  • 在 NetWare 网络中,客户需要访问某个类型的服务器时,首先要发送一个 ()广播报文来寻找服务器?

  • IPX 地址网络地址有( )个字节?

  • 对于帧中继描述正确的是?

  • 对于 INVERSE ARP 的描述正确的是?

京东篇

  • 一般 sql 注入怎么发现触点的,从源码阐述 sqlmap 如何测试注入点的。

  • masscan 扫描端口时靠什么检测,为什么这么快? 请详述.

  • 你写过哪些小工具,你为你使用过的工具做过什么修改.

  • 如何提高采用 python 编写的扫描速度,谈谈对 GIL 锁的了解.

  • 你觉得你发现的那个漏洞影响比较大.

  • 常见的 web 漏洞有哪些.

  • 有没有玩过硬件安全,研究程度如何.

  • 反爬虫,如果是你如何进行反爬虫,如何绕过反爬措施。使用无头浏览器被检测到了,如何绕过

  • nmap 扫描如何进行扫描。发包与协议,握手和不握手,哪些协议握手,哪些不握手. 如 何不直接接触目标服务器探测对方端口是否开放

  • 有没有自己编写过 yara 扫描模块,如果要解决扫描{k1:v1, k2:v2, k3:v3} ,保证同时在k1 中的 v1 里出现特定值,k2 中出现 v2 特定值,以及 k3,v3。怎么实现

  • xss 什么原理,如何自己实现一个 beef 类似的 xss 平台. 既然这样实现,面临的跨域如何解决?

  • ip 频率限制, ip 信誉度模型?

  • SCTP 协议是什么?如何使用 SCTP 优化网络?

美团篇

  • java 虚拟机内存模型

  • 内存溢出一般发生在哪个区?永久代会不会导致内存溢出?

  • 动态加载类的框架了解哪些?

  • 动态代理一般有哪几种实现方式?动态代理的应用场景有哪些?

  • 栈会不会溢出?栈溢出一般抛什么异常?jvm 在哪里设置栈的大小?设置的参数是什 么?

  • 用过哪些命令查看 jvm 的状态、堆栈信息?

  • jvm 的垃圾回收机制?

  • java 类加载机制?如何实现自定义类加载器?findClass 与 loadClass 的区别?

  • String、StringBuffer、StringBuilder 的区别?对应的使用场景?

  • 如何实现不可变的类?

  • 浅复制和深复制?怎样实现深复制?

  • HashMap、HashTable、ConcurrentHashMap 的区别?

  • CAS 是一种什么样的同步机制?

  • NIO 的原理,包括哪几个组件?

  • 简单介绍一下 java 的反射机制?反射在哪些地方有应用场景?

  • spring 加载 bean 的流程?

  • java 线程池?线程池构造函数的几个参数含义?keepAliveTime 解释一下?

  • 一个接口,要去调用另外 5 个接口,每一个接口都会返回数据给这个调用接口,调用接口要对数据进行合并并返回给上层。这样一种场景可能用到并发包下的哪些类?你会怎么 去实现这样的业务场景?

  • CountDownLatch 和 CyclicBarrier 的区别?

  • 线程加锁有哪些方式?synchronized 和 lock 的区别?

  • volatile 关键字的作用?为什么使用 AtomicLong 而不使用 Long?AtomicLong 的底层是怎 么实现的?

  • mysql 的存储引擎有哪几种?

  • sql 优化有哪些着手点?组合索引的最左前缀原则的含义?

  • springmvc 处理请求的流程?

  • spring 的事务怎么使用?事务回滚?自定义异常?

  • 脏读?幻读?

  • tcp 四次挥手的过程?TIME_WAIT 为什么至少设置两倍的 MSL 时间?

  • get 和 post 请求的区别?

  • cookie 和 session 的请求?

  • 了解哪些开源的中间件?缓存?消息?分布式框架?

  • 用到过哪些设计模式?单例模式的实现?

  • 数据库的事务实现原理、操作过程、如何做到事物之间的独立性等问题

  • 数据库的脏读,幻读,不可重复读出现的原因原理,解决办法

  • 数据库的隔离级别、MVCC

  • 乐观锁、悲观锁、互斥锁、读写锁的原理实现与区别

  • 线程的生命周期

  • 一致性 hash 算法原理与应用5.4.7 CAP 原则

  • CAS 操作

  • 分布式 raft 算法

腾讯篇

Java 基础

  • JAVA 中的几种基本数据类型是什么,各自占用多少字节。

  • String 类能被继承吗,为什么。

  • String,Stringbuffer,StringBuilder 的区别。

  • ArrayList 和 LinkedList 有什么区别。

  • 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函 数,字段,当 new 的时候,他们的执行顺序。

  • 用过哪些 Map 类,都有什么区别,HashMap 是线程安全的吗,并发下使用的 Map 是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。

  • JAVA8 的 ConcurrentHashMap 为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计。

  • 有没有有顺序的 Map 实现类,如果有,他们是怎么保证有序的。

  • 抽象类和接口的区别,类可以继承多个类么,接口可以继承多个接口么,类可以实现多 个接口么。

  • 继承和聚合的区别在哪。

  • IO 模型有哪些,讲讲你理解的 nio ,他和 bio,aio 的区别是啥,谈谈 reactor 模型。

  • 反射的原理,反射创建类实例的三种方式是什么。

  • 反射中,Class.forName 和 ClassLoader 区别 。

  • 描述动态代理的几种实现方式,分别说出相应的优缺点。

  • 动态代理与 cglib 实现的区别。

  • 为什么 CGlib 方式可以对接口实现代理。

  • final 的用途。

  • 写出三种单例模式实现 。

  • 如何在父类中为子类自动完成所有的 hashcode 和 equals 实现?这么做有何优劣。

  • 请结合 OO 设计理念,谈谈访问修饰符 public、private、protected、default 在应用设计中的作用。

  • 深拷贝和浅拷贝区别。

  • 数组和链表数据结构描述,各自的时间复杂度。

  • error 和 exception 的区别,CheckedException,RuntimeException 的区别。

  • 请列出 5 个运行时异常。

  • 在自己的代码中,如果创建一个 java.lang.String 类,这个类是否可以被类加载器加载? 为什么。

  • 说一说你对 java.lang.Object 对象中 hashCode 和 equals 方法的理解。在什么场景下需要重新实现这两个方法。

  • 在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。

  • 这样的 a.hashcode() 有什么用,与 a.equals(b)有什么关系。

  • 有没有可能 2 个不相等的对象有相同的 hashcode。

  • Java 中的 HashSet 内部是如何工作的。

  • 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。

  • java8 的新特性。

  • JVM 什么情况下会发生栈内存溢出。

  • JVM 的内存结构,Eden 和 Survivor 比例。

  • JVM 内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为 Eden 和 Survivor。

  • JVM 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要 的 JVM 参数。

  • 你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms 和 G1,包括原理,流程,优缺点。

  • 垃圾回收算法的实现原理。

  • 当出现了内存溢出,你怎么排错。

  • JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存, 工作内存等。

  • 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

  • 讲讲 JAVA 的反射机制。

  • 你们线上应用的 JVM 参数有哪些。

  • g1 和 cms 区别,吞吐量优先和响应优先的垃圾收集器选择。

  • 怎么打出线程栈信息。

开源框架

  • 简单讲讲 tomcat 结构,以及其类加载器流程,线程模型等。

  • tomcat 如何调优,涉及哪些参数 。

  • 讲讲 Spring 加载流程。

  • Spring AOP 的实现原理。

  • 讲讲 Spring 事务的传播属性。

  • Spring 如何管理事务的。

  • Spring 怎么配置事务(具体说出一些关键的 xml 元素)。

  • 说说你对 Spring 的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop 的实现原理,说说 aop 中的几个术语,它们是怎么相互工作的。

  • Springmvc 中 DispatcherServlet 初始化过程。

  • netty 的线程模型,netty 如何基于 reactor 模型上实现的。

  • 为什么选择 netty。

  • 什么是 TCP 粘包,拆包。解决方式是什么。

  • netty 的 fashwheeltimer 的用法,实现原理,是否出现过调用不够准时,怎么解决。

  • netty 的心跳处理在弱网下怎么办。

  • netty 的通讯协议是什么样的。

  • springmvc 用到的注解,作用是什么,原理。

  • springboot 启动机制。

操作系统

  • Linux 系统下你关注过哪些内核参数,说说你知道的。

  • Linux 下 IO 模型有几种,各自的含义是什么。

  • epoll 和 poll 有什么区别。

  • 平时用到哪些 Linux 命令。

  • 用一行命令查看文件的最后五行。

  • 用一行命令输出正在运行的 java 进程。

  • 介绍下你理解的操作系统中线程切换过程。

  • 进程和线程的区别。4.8.0 top 命令之后有哪些内容,有什么作用。

  • 线上 CPU 爆高,请问你如何找到问题所在。

头条篇

  • 个人去一个海岛寻宝,最后一共找到了 100 枚金币。他们约定了一个分配方案。

  • 给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。

  • 一个环有 10 个节点,编号 0-9。从 0 点出发,走 N 步又能回到 0 点,共有多少种走法?

  • 一个乱序数组,求第 K 大的数。排序方式使用字典序。

  • 一棵二叉树,求最大通路长度。(即最大左右子树高度之和)

  • 进程和线程的区别,使用线程真的能节省时间?

  • go 协程的调度方式,使用协程真的能节省时间?

  • 水平触发边沿触发的区别?在边沿触发下,一个 socket 有 500 的数据,已读取 200 然 后不再处理,是不是剩下的 300 就永远无法读取?

  • 有函数如下,输入 1,返回什么?

  • 设计 http 协议,A 端发送 AAAA,至少让 B 端知道 AAAA 已发送完成。

  • 流量总入口为 api_gateway,api_gateway 挂了会导致全部挂挂,用什么机制增大可用 性?

  • mysql 为什么要用 b+树,不用平衡二叉树做索引结构?

  • 创建数据库索引应该怎么考虑?

  • 使用 int 做 primary key 和使用 string 有什么优劣?

  • 数据库分表的方法?

  • 表结构,订单纪录如下,写一个语句,求卖的最好的 top 10 product_id。

  • 微服务,A 服务请求 B 服务 B1 接口,B1 接口又请求 A 服务 A2 接口。会不会有问题?

  • 不使用高级工具,只使用 Linux 自带的工具,你会如何 debug?

  • 如何预估一个 mysql 语句的性能?

  • go 函数中,返回值未命名,发生了 panic,但是在函数内 recover 了。函数返回什么值?

  • socket 中,在 tcp 协议层面,数据分为 10 个报文发放。1-7 次很顺利,第 8 次丢失。这次通信一定失败吗?如果第 8 次数据会重发,那在接收端是不是:先读取到 1-7 次的数据,然后读取到 8-10 次的数据?还是 9-10 次的数据会先到达?

  • free -h,buffers 和 cached 有什么不同

  • 后台进程有什么特点,如果要你设计一个进程是后台进程,你会考虑什么

  • 僵尸进程是什么,如果产生一个僵尸进程,如何查找僵尸进程

  • 孤儿进程是什么

  • 一个进程有 20 个线程,在某个线程中调用 fork,新的进程会有 20 个线程吗?

  • tcp/ip 流量控制和拥塞控制

  • 301/302 有什么区别?应用上有什么异同。

  • 50X 相关错误码的内涵是什么?

  • close wait 和 time wait 是什么?如何排查?有什么意义?

  • http req 和 resp 的中数据有哪些

  • 什么是连接的半打开,半关闭状态

  • 假如一个业务依赖单点 redis,此 redis 故障将导致业务不可用,如何改进

  • redis sharding 有哪些做法

  • 当大量数据要求用 redis 保存,单机单点难以满足需要,设计(换寻找)一个负载均衡的方案6.4.5 当 redis 采用 hash 做 sharding,现在有 8 个节点,负载方案是 pos = hash(key) % 8,然后保存在 pos 节点上。这样做有什么好处坏处?当 8 个节点要扩充到 10 个节点,应该怎么办?有什么更方便扩充的方案吗?(一致性 hash, presharding)

  • 如何保证 redis 和数据库数据的一致性。比如用户名既保存在数据库,又保存在 redis 做缓存。有如下操作 update_db(username); update_redis(username)。但是执行 update_db 后故障,update_redis 没有执行。有什么简单办法解决这个问题。

  • ** 个人去一个海岛寻宝,最后一共找到了 100 枚金币。他们约定了一个分配方案。

  • 给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。

  • 一个环有 10 个节点,编号 0-9**。从** 0 点出发,走 N 步又能回到 0 点,共有多少种走法?

  • 一个乱序数组,求第 K 大的数。排序方式使用字典序。

  • 一棵二叉树,求最大通路长度。(即最大左右子树高度之和)

  • 进程和线程的区别,使用线程真的能节省时间?

  • go 协程的调度方式,使用协程真的能节省时间?

  • 水平触发边沿触发的区别?在边沿触发下,一个 socket 500 的数据,已读取 200 然后不再处理,是不是剩下的 300 就永远无法读取?

  • 有函数如下,输入 1,返回什么?

  • 设计http协议,A端发送 AAAA,至少让 B 端知道 AAAA 已发送完成。

  • 流量总入口为 api_gateway,api_gateway 挂了会导致全部挂挂,用什么机制增大可用性?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT枫斗者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值