_面经问题_
一、Java编程语言
Java语言有哪些特点?
JVM vs JDK vs JRE
什么是字节码?
采用字节码的好处是什么?
为什么不全部使用AOT呢?
为什么说Java语言"编译与解释并存"?
Oracle JDK vs OpenJDK
Java和C++的区别?
注释有哪几种形式?
标识符和关键字的区别是什么?
Java语言关键字有哪些?
自增自减运算符
移位运算符
continue、break 和return的区别是什么?
Java中的几种基本数据类型了解么?
基本类型和包装类型的区别?
包装类型的缓存机制了解么?
自动装箱与拆箱了解吗?原理是什么?
为什么浮点数运算的时候会有精度丢失的风险?
如何解决浮点数运算的精度丢失问题?
超过long整型的数据应该如何表示?
面向对象和面向过程的区别?
创建—─个对象用什么运算行?对家头平与对象引用有何不同?
对象的相等和引用相等的区别类的构造方法的作用是什么?
如果一个类没有声明构造方法,该程序能正确执行吗?
构造方法有哪些特点?是否可被override?
面向对象三大特征?
接和抽象类有什么共同点和区别?
深拷贝和浅拷贝区别了解吗?
什么是引用拷贝?
Object常用方法?
Exception和Error有什么区别?
Checked Exception和 UncheckedException有什么区别?
Throwable 类常用方法有哪些?
try-catch-finally 如何使用?
finally 中的代码一定会执行吗?
如何使用try-with-resources 代替try-catch-finally?
异常使用有哪些需要注意的地方?
什么是泛型?有什么作用?
泛型的使用方式有哪几种?
项目中哪里用到了泛型?
何谓反射?反射的优缺点?反射的应用场景?
何谓SPI?SPI和API有什么区别?SPI的优缺点?
什么是序列化?什么是反序列化?如果有些字段不想进行序列化怎么办?
常见序列化协议有哪些?
为什么不推荐使用JDK自带的序列化?
Java lO流了解吗?
I/O流为什么要分为字节流和字符流呢?
Java lO中的设计模式有哪些?BIO、NIO和AIO的区别?
什么是语法糖?
Java中有哪些常见的语法糖?
说说List, Set, Queue,Map四者的区别?
集合框架底层数据结构总结如何选用集合?
为什么要使用集合?
ArrayList和Vector的区别?
ArrayList 与LinkedList区别?
说—说ArrayList的扩容机制吧
comparable和Comparator的区别无序性和不可重复性的含义是什么?
比较HashSet、LinkedHashSet和TreeSet三者的异同?
Queue与Deque的区别?
ArrayDeque 与LinkedList 的区别?
说—说 PriorityQueue?
HashMap和Hashtable 的区别?
HashMap和HashSet区别?
HashMap和TreeMap 区别?
HashSet 如何检查重复?
HashMap的底层实现?
HashMap的长度为什么是2的幂次方?
HashMap多线程操作导致死循环问题?
HashMap有哪几种常见的遍历方式?
ConcurrentHashMap 和 Hashtable 的区别?
ConcurrentHashMap线程安全的具体实现方式/底层具体实现
JDK 1.7和JDK 1.8的ConcurrentHashMap实现有什么不同?
什么是线程和进程?
情简要描述线程与进程的关系,区别和优缺点?
程序计数器为什么是私有的?
虚拟机栈和本地方法栈为什么是私有的?
—句话简单了解堆和方法区?
并发与并行的区别
同步和异步的区别为什么要使用多线程?
使用多线程可能带来什么问题?
说说线程的生命周期和状态?
什么是上下文切换?
什么是线程死锁?
如何避免死锁?
如何预防和避免线程死锁?
sleep()方法和wait()方法对比
为什么wait()方法不定义在Thread中?
可以直接调用Thread类的run方法吗?
volatile 关键字
如何保证变量的可见性?
如何禁止指令重排序?
volatile可以保证原子性么?
什么是悲观锁?使用场景是什么?
如何实现乐观锁?
乐观锁存在哪些问题?
synchronized是什么?有什么用?如何使用synchronized?
构造方法可以用synchronized 修饰么?
synchronized 底层原理了解吗?
JDK1.6之后的synchronized 底层做了哪些优化?
synchronized和volatile有什么区别?
ReentrantLock是什么?
公平锁和非公平锁有什么区别?
synchronized和 ReentrantLock有什么区别?
可中断锁和不可中断锁有什么区别?
ReentrantReadWriteLock是什么?
共享锁和独占锁有什么区别?
线程持有读锁还能获取写锁吗?
读锁为什么不能升级为写锁?
StampedLock是什么?
StampedLock 的性能为什么更好?
StampedLock 适合什么场景?
StampedLock的底层原理了解吗?
ThreadLocal有什么用?如何使用ThreadLocal?
ThreadLocal 原理了解吗?
ThreadLocal内存泄露问题是怎么导致的?
什么是线程池?
为什么要用线程池?
如何创建线程池?
为什么不推荐使用内置线程池?
线程池常见参数有哪些?
如何解释?
线程池的饱和策略有哪些?
线程池常用的阻塞队列有哪些?
线程池处理任务的流程了解吗?
如何给线程池命名?
如何设定线程池的大小?
如何动态修改线程池的参数?
Future类有什么用?
Callable和 Future有什么关系?
CompletableFuture类有什么用?
AQS是什么?
AQS的原理是什么?
Semaphore有什么用?
Semaphore的原理是什么?
CountDownLatch有什么用?
CountDownLatch的原理是什么?
用过CountDownLatch么?什么场景下用的?
CyclicBarrier有什么用?
CyclicBarrier的原理是什么?
二、操作系统
什么是操作系统?
系统调用?
进程和线程的区别?
进程有哪几种状态?
进程间的通信方式?
线程间的同步的方式?
进程的调度算法?
什么是死锁?
死锁的四个必要条件?
解决死锁的方法?
常见的几种内存管理机制快表和多级页表?
分页机制和分段机制的共同点和区别?
逻辑(虚拟)地址和物理地址?
CPU寻址了解吗?
为什么需要虚拟地址空间?
什么是虚拟内存(Virtual Memory)?
局部性原理?
虚拟存储器?
虚拟内存的技术实现?
页面置换算法?
目录切换命令
目录的操作命令(增删改查)
文件的操作命令(增删改查)
压缩文件的操作命令
Linux的权限命令
Linux用户管理
Linux系统用户组的管理
为什么要学Shell?什么是 Shell?
三、计算机网络
OSI七层模型是什么?每一层的作用是什么?
TCP/IP四层模型是什么?每一层的作用是什么?
为什么网络要分层?
应用层有哪些常见的协议?
TCP与UDP的区别(重要)?
什么时候选择TCP,什么时候选 UDP?
HTTP基于TCP还是UDP?
使用TCP的协议有哪些?使用UDP的协议有哪些?
TCP三次握手和四次挥手(非常重要)?
TCP如何保证传输的可靠性?(重要)
从输入URL到页面展示到底发生了什么?(非常重要)
HTTP状态码有哪些?
HTTP和HTTPS有什么区别?(重要)
HTTP 1.0和HTTP 1.1有什么区别?
HTTP是不保存状态的协议,如何保存用户状态?
URI和URL的区别是什么?
什么是Mac地址?
ARP协议解决了什么问题地位如何?
ARP协议的工作原理?
四、数据结构
什么是数据结构?
解释一下顺序存储与链式存储?
头指针和头结点的区别?
线性结构的特点?
数组和链表的区别?
单链表结构和顺序存储结构的区别?
栈和队列的区别?
括号匹配是怎么实现?
朴素的匹配算法和KMP算法?
如何构造哈夫曼树?
最小生成树算法实现?
最短路径的算法?
介绍一下深度优先搜索和广度优先搜索是如何实现的?
介绍一下拓扑排序以及是如何实现的?
各种查找方法?简要描述?
哈希表的概念、构造方法、冲突的解决办法?
各种排序算法?简要描述?
五、Redis
什么是 Redis?
Redis为什么这么快?
分布式缓存常见的技术选型方案有哪些?
说一下 Redis和 Memcached的区别和共同点?
为什么要用 Redis/为什么要用缓存?
Redis除了做缓存,还能做什么?
Redis可以做消息队列么?
如何基于Redis 实现分布式锁?
Redis常用的数据结构有哪些?
String 的应用场景有哪些?
String还是Hash存储对象数据更好呢?
String 的底层实现是什么?
购物车信息用String还是Hash存储更好呢?
使用 Redis 实现一个排行榜怎么做?
使用Set实现抽奖系统需要用到什么命令?
使用Bitmap 统计活跃用户怎么做?
使用HyperLogLog统计页面UV怎么做?
Redis单线程模型了解吗?
Redis6.0之前为什么不使用多线程?
Redis6.0之后为何引入了多线程?
Redis 给缓存数据设置过期时间有啥用?
Redis是如何判断数据是否过期的呢?
过期的数据的删除策略了解么?
Redis内存淘汰机制了解么?
怎么保证Redis挂掉之后再重启数据可以进行恢复?
什么是 RDB持久化?
RDB创建快照时会阻塞主线程吗?什么是AOF持久化?
AOF日志是如何实现的?AOF重写了解吗?
如何选择RDB和AOF?
Redis 4.0对于持久化机制做了什么优化?
如何使用Redis事务?
Redis事务支持原子性吗?
如何解决 Redis事务的缺陷?
Redis bigkey?
大量key集中过期问题?
使用批量操作减少网络传输?
缓存穿透?
缓存击穿?
缓存雪崩?
如何保证缓存和数据库数据的一致性?
相关文章:
_面经问题_
一、Java编程语言 Java语言有哪些特点? JVM vs JDK vs JRE 什么是字节码? 采用字节码的好处是什么? 为什么不全部使用AOT呢? 为什么说Java语言"编译与解释并存"? Oracle JDK vs OpenJDK Java和C的区别? 注释有哪几种形式? 标识符和关键字的区别是什么? Jav…...

刷题记录(2023.3.6 - 2023.3.11)
我很喜欢这周的感觉,前两道题对着 wp 简略复现了一下,由于以前都是自己学习,对一些稍微多、稍微难的题都会马上避开,笨小孩逃避太久了,有些事逃不掉,总得面对,开始往往很难,多花点时…...

14 Day:同步锁与操作系统输入输出
前言:在上一期的线程章节中,我们的线程输出貌似有大问题,今天我们便要来学习同步锁来解决这个问题,同时再次基础上拿下键盘输入,实现操作系统的输入和输出。从今天开始我们的操作系统不在是一块“看板”了!…...

Gradle 的下载安装教程
Gradle 8.0.1 下载安装教程笔者的环境: Java 17.0.1 Gradle 8.0.1 Windows 10 教育版 64位 在继续阅读本教程之前,需要先完成 JDK 的安装。JDK 需要选择 8 及以上的版本。关于 JDK 的安装,可见笔者的另一篇博客: Java 的下载安…...
「Python 基础」常用模块
文章目录1. 内建模块datetimecollectionsnamedtuple()dequedefaultdictOrderedDictChainMapCounterbase64structhashlib摘要算法摘要的应用hmacitertoolscontextlib\_\_enter\_\_ 和 \_\_exit\_\_contextmanagerclosingurllibGETPOSTHandlerXMLDOMSAXHTMLParser2. 第三方模块Pi…...

Java【二叉搜索树和哈希表】详细图解 / 模拟实现 + 【Map和Set】常用方法介绍
文章目录前言一、二叉搜索树1、什么是二叉搜索树2、模拟实现二叉搜索树2.1, 查找2.2, 插入2.3, 删除3、性能分析二、模型三、哈希表1、什么是哈希表1.1, 什么是哈希冲突1.2, 避免, 解决哈希冲突1.2.1, 避免: 调节负载因子1.2.2, 解决1: 闭散列(了解)1.2.3, 解决2: 开散列/哈希桶…...
如何用 C 语言实现文本特征提取?
文本特征提取是一种将文本转换为数字或向量表示的技术,它是自然语言处理中的重要步骤。以下是一些用 C 语言实现文本特征提取的基本方法:基于词袋模型的特征提取词袋模型是一种将文本表示为单词频率的方法,可以通过以下步骤实现:将…...
ESD静电保护器件分类简介及场景应用
文章目录 1. ESD介绍1.1 ESD简介1.2 ESD产生原理1.3 ESD危害2. 器件级ESD模型2.1 人体模型(HBM)2.2 机器模型(MM)2.3 带电器件模型(CDM)3. 系统级ESD模型3.1 介绍3.2 防护器件分类简介3.2.1 TVS二极管3.2.2 MLCC陶瓷电容3.2.3 ESD抑制管3.2.4 MOV压敏电阻3.2.5 比较4. ES…...

硅谷银行倒闭的几点启示
摘要:本文从公开资料分析一下硅谷银行对信息科技行业的我们有一些什么启示。硅谷银行“拔网线”了,想创业的您,该注意了。1.硅谷银行是谁我们从其官网的说明来看看。The financial partner of the innovation economy.(翻译成中文…...

【AWS入门】IAM基本应用-2023/3/4
目录IAM概述根用户和IAM用户参考IAM概述 IAM(Identity Access Management)是身份和访问管理服务,要访问AWS服务和资源,就要使用IAM进行身份验证和授权。当我们通过控制台,CLI,或API访问AWS服务时,都需要通…...

RabbitMQ系列(1)--RabbitMQ简介
1、RabbitMQ概念RabbitMQ是一个消息中间件,不对消息进行处理,只对消息做接收、存储和转发。2、RabbitMQ四大核心概念(1)生产者产生数据发送信息的程序(2)交换机交换机是RabbitMQ中一个非常重要的部件,接收来着生产者的消息并把消息推送到队列…...

aws dynamodb 使用awsapi和PartiQL掌握dynamodb的CRUD操作
总结一下 dynamodb通常和java等后端sdk结合使用使用的形式可以是api或partiql语法调用dynamodb的用法不难,更重要的是维护成本,所需的服务集成,技术选型等和大数据结合场景下有独特优势 之后可能再看看java sdk中DynamoDBMapper的写法&…...

【C++学习】类和对象(上)
前言: 由于之前电脑“嗝屁”了,导致这之前一直没有更新博客,今天才拿到电脑,在这里说声抱歉。接下来就进入今天的学习,在之前我们已经对【C】进行了初步的认识,有了之前的知识铺垫,今天我们将来…...

一文带你深入理解【Java基础】· Java反射机制(下)
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...

JVM的几种GC
GC JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~ 新生代GC(minor GC): 指发生在新生代的垃圾回收动作,因为Java对象大多都具备朝生夕灭的特点,所以minor GC发生得非…...

掌握Shell脚本的if语句,让你的代码更加精准和高效
前言 大家好,我是沐风晓月,本文首发于csdn, 作者: 我是沐风晓月。 文章收录于 我是沐风晓月csdn专栏 【系统架构实战】专栏中的【shell脚本入门到精通】专栏。 本专栏从零基础带你层层深入,学会shell脚本,不是梦。 &…...

音质好的蓝牙耳机有哪些?音质最好的蓝牙耳机排行
说起当代人外出必备是数码产品,蓝牙耳机肯定存在。不管是听歌还是追剧,蓝牙耳机在音质上的表现也是越来越好了。下面,我来给大家推荐几款音质好的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 参考价:259 蓝牙版…...
一次Android App NDK崩溃问题的分析及解决
文章目录小结NDK崩溃的问题通过logcat查看崩溃日志提取tombstone的记录通过ndk-stack来输出日志取得的日志分析并解决分析使用add2line定位具体报错的行数解决参考小结 最近碰一次Android App NDK崩溃的问题,这个NE(Native Exception)是从ND…...

因果图判定表法
因果图&判定表法 在了解了等价类和边界值比较适宜搭档的测试用例方法之后 接下来我们来了解另外一队就是因果图和判定表 因果图会产生判定表法 因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件而不考虑输入条件的各种组合、输入条件之间的相互制约关系。例…...
Oracle 数据库相关信息清单列表
Oracle 数据库相关信息清单列表 一、设置Oracle安装目录 Oracle基目录(ORACLE_BASE):D:\databases\oracle\oracle_11g\app\Administrator 软件位置(ORACLE_HOME):D:\databases\oracle\oracle_11g\app\Administrator\product\11.2.0\dbhome_1 数据库文件位置:D:\databa…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...