面试题汇总

前端面试题汇总 HTML——CSS——JS——es6——Vue——微信小程序 HTML面试题 1.请至少写出5个HTML块级元素标签。 div,p,form,table,h1~h6 2.请至少写出5个行内元素标签。 span,img,input,button,a 3.写出空元素。 br,hr,link 4.写出table标签下包含哪些标签元素。 tr,th,td,tfoot,tbody 5.很... 阅读详情

一. 腾讯

二. 华为

三. 快手

1. Long 的长度和范围,为什么要减 1 (Java基础)

像 byte、short、int、long能表示的最大正数都减 1 了。这是为什么呢?这是因为在二进制补码表示法中,最高位是用来表示符号的(0 表示正数,1 表示负数),其余位表示数值部分。所以,如果我们要表示最大的正数,我们需要把除了最高位之外的所有位都设为 1。如果我们再加 1,就会导致溢出,变成一个负数。

2. 线程池配置无界队列了之后,拒绝策略怎么搞,什么时候用到无界队列 (JUC并发)

线程池配置无界队列了之后,拒绝策略其实就失去了意义,因为无论有多少任务提交到线程池,都会被放入队列中等待执行,不会触发拒绝策略。不过,这样可能堆积大量的请求,从而导致 OOM。因此,一般不推荐使用无界队列。

四. 美团

五. 阿里

六. 百度

七. 字节

八. 大疆

1. 为什么创建进程开销比线程大? (操作系统)

添加链接描述

  • 线程的创建时间比进程快,因为进程在创建的过程中,还需要资源管理信息,比如内存管理信息、文件管理信息,而线程在创建的过程中,不会涉及这些资源管理信息,而是共享它们;
  • 线程的终止时间比进程快,因为线程释放的资源相比进程少很多;
  • 同一个进程内的线程切换比进程切换快,因为线程具有相同的地址空间(虚拟内存共享),这意味着同一个进程的线程都具有同一个页表,那么在切换的时候不需要切换页表。而对于进程之间的切换,切换的时候要把页表给切换掉,而页表的切换过程开销是比较大的;
  • 由于同一进程的各线程间共享内存和文件资源,那么在线程之间数据传递的时候,就不需要经过内核了,这就使得线程之间的数据交互效率更高了;

2. 物理地址和虚拟地址 (操作系统)

我们程序所使用的内存地址叫做虚拟内存地址(Virtual Memory Address)
实际存在硬件里面的空间地址叫物理内存地址(Physical Memory Address)
那么对于虚拟地址与物理地址的映射关系,可以有分段和分页的方式,同时两者结合都是可以的。

  • 虚拟内存的作用
    第一,虚拟内存可以使得进程对运行内存超过物理内存大小,因为程序运行符合局部性原理,CPU 访问内存会有很明显的重复访问的倾向性,对于那些没有被经常使用到的内存,我们可以把它换出到物理内存之外,比如硬盘上的 swap 区域。
    第二,由于每个进程都有自己的页表,所以每个进程的虚拟内存空间就是相互独立的。进程也没有办法访问其他进程的页表,所以这些页表是私有的,这就解决了多进程之间地址冲突的问题。
    第三,页表里的页表项中除了物理地址之外,还有一些标记属性的比特,比如控制一个页的读写权限,标记该页是否存在等。在内存访问方面,操作系统提供了更好的安全性。

3. Synchronize给静态和非静态方法的区别 (JUC并发编程)

Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”;
Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。
添加链接描述

4. 匿名内部类为什么可以访问外部类的对象 (Java基础)

  • 匿名内部类
class Test {
 
    public static void main(String[] args) {
        Thread thread = new Thread(
                // 匿名内部类
                new Runnable() {
                    @Override
                    public void run() {
                        System.out.println("Thread run");
                    }
                }
        );
    }
}

匿名内部类也是不能有访问修饰符和 static 修饰符的
匿名内部类是唯一一种没有构造器的类。正因为其没有构造器,所以匿名内部类的使用范围非常有限,大部分匿名内部类用于接口回调。
添加链接描述

5. 反转单链表有几种手段(数据结构与算法)

双指针,迭代法;
递归法;

6. Arrays.sort底层原理?快排如何优化?(数据结构与算法)

jdk1.8之前,Arrays.sort()方法使用的是传统快排的方式进行排序
jdk1.8后,Arrays.sort()方法使用的是双轴快排
添加链接描述
双轴快排(DualPivotQuicksort)的基本思想是:
顾名思义有两个轴元素pivot1,pivot2,且pivot ≤pivot2
将序列分成三段:x < pivot1、pivot1 ≤ x ≤ pivot2、x >pivot2
然后分别对三段进行递归
添加链接描述

7. ZGC垃圾回收器,染色指针和读屏障 (JVM)

添加链接描述

8. InnoDB 使用 B+ 树做索引,记录使用 bigint 作为主键,假定每条记录 1kb,三层 b+ 树可以表示多少条记录

添加链接描述
在这里插入图片描述

九. OPPO

1. 什么是操作系统,有什么组成 (操作系统)

  • 定义
    操作系统:负责管理计算机中各种软硬件资源并控制各类软件运行(他是介于硬件和应用软件系统之间的软件,运行在逻辑上,是人与计算机通信的桥梁)
  • 操作系统的组成
    1、进程管理:系统资源的分配单位(基本单位使进程 重点区分一下CPU调度和分派的基本单位线程)
    2、存储管理:内存分配,存储保护,虚拟存储
    3、设备管理:管理外设和接口
    4、文件管理:保存程序和数据等软件信息
    5、程序接口:提供指令或函数的调用方式,使程序能够调用系统的服务
    6、用户界面:为用户提供操作环境

2. 文件系统,IO索引 (操作系统)

添加链接描述

  • 文件系统的作用
    存储管理:将文件数据存储到物理存储介质中,并且管理空间分配,以确保每个文件都有足够的空间存储,并避免文件之间发生冲突。
    文件管理:文件的创建、删除、移动、重命名、压缩、加密、共享等等。
    目录管理:目录的创建、删除、移动、重命名等等。
    文件访问控制:管理不同用户或进程对文件的访问权限,以确保用户只能访问其被授权访问的文件,以保证文件的安全性和保密性。
  • IO索引
    Linux 文件系统会为每个文件分配两个数据结构:索引节点和目录项,它们主要用来记录文件的元信息和目录层次结构。
    索引节点,也就是 inode,用来记录文件的元信息,比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是文件的唯一标识,它们之间一一对应,也同样都会被存储在硬盘中,所以索引节点同样占用磁盘空间。
    目录项,也就是 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。多个目录项关联起来,就会形成目录结构,但它与索引节点不同的是,目录项是由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存
    在这里插入图片描述

3. 线程安全问题 (JUC并发)

synchronized方式
Lock接口下的类
threadLocal
乐观锁
Volatile

4. 对象加载过程,内存组成,访问方式 (JVM虚拟机)

在这里插入图片描述
加粗样式
在这里插入图片描述
在这里插入图片描述

5. 序列化使用场景 (Java基础)

  • 对象在进行网络传输(比如远程方法调用 RPC 的时候)之前需要先被序列化,接收到序列化的对象之后需要再进行反序列化;
  • 将对象存储到文件之前需要进行序列化,将对象从文件中读取出来需要进行反序列化;
  • 将对象存储到数据库(如 Redis)之前需要用到序列化,将对象从缓存数据库中读取出来需要反序列化;
  • 将对象存储到内存之前需要进行序列化,从内存中读取出来之后需要进行反序列化。

十. 招银科技

1. 金额、汇率怎么存?BigDecimal如何进行计算、怎么四舍五入 (java基础)

BigDecimal存浮点数 不会出现精度丢失
BigDecimal.setScale() 方法可以将 BigDecimal 对象四舍五入后保留指定小数位数,其中第一个参数表示小数点后保留的位数,第二个参数表示使用四舍五入策略。

2. .枚举对象都是单例的吗? (java基础,设计模式)

是。
添加链接描述
「 枚举」类型不能被实例化。
在单例模式的实现中,除去 枚举 方法实现的单例模式,其它的实现都可以利用反射构造新的对象,从而破坏单例模式,但是枚举就不行,下面说说原因:
破坏单例的方式有 3 种,反射、克隆以及序列化

软件测试面试题汇总 软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容 阅读详情

相关推荐

RabbitMQ面试题汇总

RabbitMQ 是一个开源的消息代理和队列服务器,用于通过异步消息传递方式在分布式系统或服务之间进行通信。RabbitMQ 实现了高级消息队列协议(AMQP),同时也支持其他消息协议,如 MQTT 和 STOMP。它由 Erlang 语言编写,因此继承了 Erlang 所具有的高并发、高可用和容错特性。RabbitMQ 的基本架构生产者是发送消息的应用程序。它创建消息,并可以将消息发送到交换器。消费者是接收消息的应用程序。它从队列中提取消息并进行处理。

Blocking The Sky 2497

快手Java一面,全是基础

快手一面主要会问一些基础问题,也就是比较简单且容易准备的常规八股,通常不会问项目。到了二面,会开始问项目,各种问题也挖掘的更深一些。

技术专家 939

Modbus4J vs EasyModbus4J:哪个Java库更适合你的工业项目?

本文深入对比了Java领域两大Modbus通信库Modbus4J与EasyModbus4J。Modbus4J设计稳健、类型安全,适合复杂业务集成;EasyModbus4J基于Netty,在高并发场景下性能更优。文章从架构、性能、API及生产环境多维度分析,为工业物联网项目选型提供决策依据。

weixin_28475533的博客 310

Java线程池拒绝策略(JDK内置)

什么是拒绝策略? 拒绝策略是一种处理机制,当无法再继续接收和执行任务时,对于新提交的任务,需要做出回应,是丢弃还是继续等待执行? Java线程池拒绝策略触发时机 当提交的任务数量大于maximumPoolSize + wordQueue时,Java会执行相应的拒绝策略,对于当前提交的任务进行处理。 JDK内置了那些拒绝策略 JDK1.5之后引入了线程池,同时也提供了4中拒绝策略,拒绝策略的接口定义如下 public interface RejectedExecutionHandler { void

JIANtype的博客 679

DSH-Work:一个让DeepSeek下载即用的Harness客户端

使用大模型工具时,环境配置往往比模型本身更让人头疼。DeepSeek Harness作为一类封装层,将模型调用、上下文管理、参数控制等复杂细节统一收拢,对外提供简洁操作入口。开源的DSH-Work正是这样一款Harness客户端,它通过自带运行时与保守默认配置,实现了下载即用、免配环境的目标,让使用者无需掌握Python、CUDA等专业知识即可快速连接DeepSeek云端或本地服务。对于非技术背景的用户,它降低了AI工具的使用门槛;对于开发者,它把时间从环境排错中解放出来,更专注于提示词调优与工作流设计。无

weixin_29048309的博客 343

Codex Skill:AI编程助手的专项能力扩展与实战指南

在AI编程助手领域,Skill(技能)是一种标准化的能力扩展机制,它通过封装特定任务所需的指令、资源和脚本,解决AI模型在专项任务上的能力局限。其核心原理是将专业知识和工作流程模块化,让通用AI助手能够像领域专家一样执行复杂任务。从技术价值看,Skill不仅提升了代码生成的准确性,更重要的是实现了业务流程的自动化集成,如代码规范检查、API文档生成等具体场景。这种机制特别适用于需要结合内部工具链和特定业务逻辑的企业环境,能够显著提升开发效率和质量。通过安装PPT生成、SpringBoot项目创建等专项Ski

weixin_33672109的博客 413

Vuex面试题汇总

vuex面试题汇总

sunny1660的博客 1万+

HDR标准核心参数全解析:从PQ/HLG到元数据,一篇搞懂技术选型

本文全面解析HDR标准的核心参数,包括PQ/HLG传输函数和元数据机制,帮助读者理解技术选型的关键因素。通过对比主流HDR标准的技术细节,提供从内容创作到硬件适配的实用指南,助力实现更真实的视觉体验。

weixin_31766003的博客 300

GoLang面试题汇总

GoLang面试题汇总

DkSakura的博客 214

设计原则:面向对象设计原则详解

我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。面向对象设计原则和设计模式也是对系统.........

黄规速博客:学如逆水行舟,不进则退 4万+

华为OD机考双机位C卷 - 斗地主之顺子 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 斗地主之顺子(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 9692

java面试题汇总

java面试题汇总,附件已上传。写的很好啊!

陈正的博客 297

Qt C++ + Qt 3D 的数字孪生工厂

以下是一个基于 **Qt C++ + Qt 3D** 的数字孪生工厂完整源码示例,集成了 **Qt 3D** 产线建模和 **WebSocket** 实时数据交互。ui->qualifiedProductsLabel->setText(QString("合格产品: %1").arg(data.qualifiedProducts));ui->totalProductsLabel->setText(QString("总产量: %1").arg(data.totalProducts));

寒寒豆豆软件公司的博客 149

【面试题】2021最新Vue面试题汇总

面试题(2020)Vue面试题汇总 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 1、对于MVVM的理解 MVVM 是 Model-View-ViewModel 的缩写。 Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。 View 代表UI 组件,它负责将数据模型转化成UI 展现出来。 ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对

归子莫的博客 5万+

【100%通过率】华为OD机试真题 Python 实现【最多组合直角三角形个数】【2023 Q1 | 100分】

有N条线段,长度分别为a[1]-a[n]。 现要求你计算这N条线段最多可以组合成几个直角三角形。 每条线段只能使用一次,每个三角形包含三条线段。

MISAYAONE的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android面试题汇总

面试题。

龙飞飞的博客 173

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JAVA面试题汇总其一

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。

我有故人折剑去,斩尽春风不曾归 2530

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java基础面试题汇总

java基础面试题整理

个人博客,欢迎收藏。 1万+

Nginx 面试题汇总

【代码】Nginx 面试题汇总。

m0_57836225的博客 2084

CSS面试题汇总

在前端面试中,CSS 相关的知识点往往是面试官重点考察的内容。为了帮助大家更好地准备面试,本文汇总了一些常见的 CSS 面试题,并提供了详细的解答和分析。

前端小巷子的博客 1296

Spring Boot面试题精选汇总

Spring Boot面试题精选汇总

感谢阅读 1743

kubernetes面试题汇总

kubernetes面试题汇总

qq_41490913的博客 608

java面试题总结汇总

java面试题总结汇总 Java面试总结汇总,持续更新中… 序号 内容

更阑一霎的博客 747

Redis高频面试题汇总

redis 的主从复制是设置一个主节点多个从节点 , 其中主节点负责写 , 从节点负责读哨兵模式本质上也是一个redis集群, 通常集群数为2n+1. 通过搭建哨兵集群并把绑定主从集群的主节点 , 哨兵集群可以实现, 当主节点宕机, 通过民主选举的模式自动选择出新的主节点, 当节点信息发生修改也可以发送信息进行通知哨兵模式的民主选举也就是通过raft算法, 民主投票的方式 当选票超过n/2+1时即可当选同时选举也会有一定的规则, 会通过节点断开时长, 节点offset偏移量大小, 节点权重等进行选举。

几许的博客 1862

Spring 面试题汇总

Spring AOP 的底层实现是基于代理模式实现的。Spring 通过生成代理对象,在代理对象中拦截目标方法的执行,并在目标方法执行前后添加切面逻辑。Spring AOP 支持两种代理方式:JDK 动态代理和 CGLIB 动态代理。如果目标对象实现了接口,则使用 JDK 动态代理;如果目标对象没有实现接口,则使用 CGLIB 动态代理。

m0_57836225的博客 2590

算法面试题汇总 leetcode

算法面试题汇总 leetcode

用文字记录下每一个瞬间的感动和每一次思考的火花 9万+
上一篇: 面经:安卓学习笔记
下一篇: 测试开发面经
戴墨镜的非洲猴子先生
博客等级 码龄8年 2811粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值