自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 收藏
  • 关注

原创 面试操作系统八股文十问十答第三期

用户态(User Mode):指操作系统中进程执行时的一种权限级别。在用户态下,进程只能访问受限资源和执行受限指令集,不能直接访问操作系统核心或硬件资源。这种限制是为了保护系统的稳定性和安全性。内核态(Kernel Mode):是操作系统的最高权限级别。在内核态下,进程可以直接访问操作系统核心功能和所有硬件资源。内核态允许操作系统执行特权指令,控制整个系统的运行状态。切换用户态和内核态需要通过系统调用(System Call),这是从用户态进入内核态的唯一方式。

2024-06-20 13:37:28 356 1

原创 面试计算机网络八股文十问十答第十一期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-18 18:56:33 490

原创 面试计算机网络八股文十问十答第十期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-17 14:29:43 1043

原创 面试计算机网络八股文十问十答第九期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-16 13:29:38 1102

原创 面试计算机网络八股文十问十答第八期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-11 18:43:28 761

原创 面试 Redis 八股文十问十答第五期

渐进式 rehash 是 Redis 在进行哈希表扩容或者收缩时采取的一种策略。当哈希表的负载因子超过一定阈值或者下降到一定程度时,Redis 会触发 rehash 操作,即对哈希表进行扩容或者收缩,以保证哈希表的性能和空间利用率。而渐进式 rehash 则是指 Redis 在进行 rehash 操作时,将整个操作分解成多个小步骤逐步进行,而不是一次性完成。

2024-06-09 18:34:44 881

原创 面试 Redis 八股文十问十答第四期

缓存击穿是指一个存在的key在缓存失效的时刻,同时有大量的并发请求访问这个key,这些请求会击穿缓存直接访问数据库,导致数据库压力过大。缓存穿透是指查询一个不存在的数据,由于缓存没有命中,导致请求直接访问数据库。这种情况通常是因为恶意攻击或者错误的业务逻辑导致的。缓存雪崩是指在某个时间段,大量的缓存数据同时失效,导致大量的请求直接访问数据库,造成数据库压力过大,甚至宕机的现象。这些问题在缓存系统设计中都是需要考虑和预防的。

2024-06-07 09:13:41 1163

原创 面试 Redis 八股文十问十答第三期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-06 07:52:49 979

原创 面试 Redis 八股文十问十答第二期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-04 09:56:17 653

原创 面试数据库八股文十问十答第十期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-06-03 20:44:37 654

原创 面试数据库八股文十问十答第九期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-29 08:59:18 1046

原创 5 分钟快速上手图形验证码,防止接口被恶意刷量!

大家好,我是程序员小白条,今天来给大家介绍一个快速实现图形验证码的优秀框架 AJ-Captcha。

2024-05-28 19:20:13 809

原创 面试数据库八股文十问十答第八期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-28 10:51:42 1085

原创 面试数据库八股文十问十答第七期

MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种用于实现数据库的并发控制的技术。在 MVCC 中,每个事务在读取数据时会看到一个固定版本的数据,并且事务之间的修改操作不会互相影响。MVCC 的主要思想是为每个事务创建一个可见性视图,该视图定义了事务可以看到哪些数据版本。当事务开始时,MVCC 会为该事务创建一个时间戳,并在事务执行过程中使用该时间戳来确定事务可以看到的数据版本。当事务提交或者回滚时,MVCC 会更新事务的时间戳,并清理过期的数据版本。

2024-05-27 09:27:46 509

原创 面试数据库八股文十问十答第六期

回表指的是当通过索引查询获取到了行的主键或聚簇索引,但是需要进一步到数据页中查找其他的列数据时的操作。如果一个查询不能完全通过索引满足,需要通过主键或聚簇索引再去数据页中查询数据,这个过程就称为回表。回表会增加额外的IO操作,影响查询性能,因此在设计索引时需要考虑覆盖索引等优化手段来避免回表操作。最左匹配原则是指,在多列索引中,如果查询条件涉及到了多个列,并且使用了联合索引,那么查询时只能使用索引中的最左边连续的列。也就是说,如果查询条件中使用了索引的前缀列,索引可以被用到;

2024-05-26 12:03:54 553

原创 面试 Java 框架八股文十问十答第七期

循环依赖指的是在对象之间形成了循环的依赖关系,导致无法完成对象的初始化。例如,类 A 依赖类 B,而类 B 又依赖类 A,这样就形成了循环依赖。在 Spring 容器中,循环依赖通常指的是单例 Bean 之间的循环依赖,因为 Spring 默认情况下会尽可能地创建单例 Bean,并且在创建 Bean 的过程中解决循环依赖是比较复杂的。Spring 通过提前暴露尚未完全初始化的 Bean 实例来解决循环依赖问题,但是如果循环依赖链过长或者存在复杂的构造函数依赖关系,可能会导致循环依赖无法解决而抛出异常。

2024-05-22 08:28:59 691

原创 面试 Java 框架八股文十问十答第六期

IOC(Inversion of Control,控制反转)是一种软件设计原则,它将对象的创建和管理权利从应用程序代码转移到了外部容器中。在传统的编程模型中,应用程序类通常会负责自己的依赖项的创建和管理,而在 IOC 容器中,这些依赖项的创建和管理由容器来完成。这意味着应用程序类不再负责创建它们所依赖的对象,而是通过外部容器来注入它们。DI(Dependency Injection,依赖注入)是一种实现 IOC 的方式,它是通过外部容器来注入一个对象的依赖关系,而不是在对象内部创建或查找依赖关系。

2024-05-21 13:25:50 893

原创 面试 JVM 八股文十问十答第九期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-20 10:09:25 643

原创 面试 JVM 八股文十问十答第八期

当CMS垃圾收集器发生concurrent mode failure时,它会触发一次Full GC以尝试解决老年代空间不足的问题。稳定性和可控性:在Java虚拟机中,Full GC通常会导致较长的停顿时间,因此采用单线程执行可以更好地控制和管理这个过程,避免出现并发问题或竞态条件。简化实现:使用单线程执行Full GC可以简化实现,减少并发情况下的复杂性。这样可以降低出错的可能性,并且更容易保证Full GC的正确性和稳定性。保证可达性分析的准确性。

2024-05-19 15:59:41 702

原创 面试 JVM 八股文十问十答第七期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-17 14:12:22 577

原创 面试 JVM 八股文十问十答第七期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-15 09:32:17 371

原创 面试 JVM 八股文十问十答第六期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-14 10:35:38 332

原创 面试 Java 并发编程八股文十问十答第十六期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-13 12:16:44 800

原创 面试 Java 并发编程八股文十问十答第十五期

在多线程编程中,当一个线程试图获取一个被其他线程持有的锁时,它可能会发生阻塞,等待锁被释放。在一些情况下,等待锁的时间很短,此时采用自旋等待可能更有效率。自旋等待是指线程在尝试获取锁时不会立即进入阻塞状态,而是会反复检查锁是否可用,这样可以减少线程从用户态到内核态的切换开销。自适应自旋是一种锁优化技术,它根据锁的历史获取情况动态地调整自旋等待的策略。如果锁的获取频率较低,那么自旋等待的时间可以适当延长,以减少线程阻塞和唤醒的开销;

2024-05-11 20:44:23 1079

原创 面试 Java 并发编程八股文十问十答第十四期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-10 10:24:33 923

原创 面试 Java 并发编程八股文十问十答第十二期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-09 19:31:05 621

原创 面试 Java 并发编程八股文十问十答第十二期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-08 09:09:19 1055

原创 面试 Java 基础八股文十问十答第三十一期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-07 18:47:41 965

原创 面试 Java 基础八股文十问十答第三十期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-06 08:13:47 655 2

原创 面试 Java 基础八股文十问十答第二十九期

Java 的集合类是用于存储和操作对象的数据结构。它们提供了一种更加灵活、高效的方式来管理数据集合,相比传统的数组,集合类具有更多的功能和操作。Java 中常见的集合类包括 List、Set、Map 等,它们都位于java.util包中。允许存储重复元素,并且有序。常见的实现类有 ArrayList、LinkedList、Vector 等。不允许存储重复元素,通常用于存储不重复的对象集合。常见的实现类有 HashSet、LinkedHashSet、TreeSet 等。存储键值对,键是唯一的,值可以重复。

2024-05-05 18:23:35 984

原创 面试 Java 基础八股文十问十答第二十八期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-05-04 18:28:36 1187

原创 面试 Java 基础八股文十问十答第二十七期

内部类是定义在其他类内部的类,可以访问外部类的成员变量和方法。内部类可以分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类:定义在外部类的成员位置,可以直接访问外部类的成员,常用于实现某个功能的辅助类或者某个类的辅助类。局部内部类:定义在方法内部的类,作用域仅限于该方法内部,常用于解决一些局部性的问题。匿名内部类:没有类名的内部类,通常用于创建临时性的、一次性的类实例。

2024-04-30 09:58:01 775 2

原创 面试 Java 基础八股文十问十答第二十六期

序列化是指将对象转换为字节序列的过程,以便将其保存到文件、数据库或者通过网络进行传输。在 Java 中,通过实现接口,可以将对象序列化为字节流,然后可以通过反序列化将字节流还原为对象。反序列化是指将字节序列转换为对象的过程,从而可以从文件、数据库或者网络中恢复对象。在 Java 中,通过读取字节流并使用类的方法,可以将字节流反序列化为对象。反序列化的对象与序列化之前的对象相同,包括其状态和数据。不可变类(Immutable Class)是指一旦创建一个对象后,该对象的状态(即属性值)将不能被修改。

2024-04-29 20:18:28 934 1

原创 面试 Python 基础八股文十问十答第七期

Tkinter是Python的标准图形用户界面(GUI)工具包,它提供了创建桌面应用程序的基本组件和功能。Tkinter是Python内置的库,因此不需要额外安装即可使用。Tkinter基于Tk GUI工具包,Tk是用于构建跨平台GUI应用程序的工具包,它最初是为Tcl编程语言设计的,但后来也被Python所采用。Tkinter提供了诸如按钮、标签、文本框、滚动条等常见的GUI组件,开发者可以使用这些组件构建用户友好的应用程序界面。

2024-04-26 08:27:03 1162 1

原创 面试 Python 基础八股文十问十答第七期

在Python中,连接(concatenation)是指将两个或多个字符串合并成一个新的字符串的过程。你可以使用运算符来连接字符串。print(s3) # 输出:Hello world除了使用运算符外,你还可以使用str.join()方法来连接字符串。这种方法更加高效,尤其是当你需要连接大量字符串时。print(s3) # 输出:Hello world在编程中,函数是一段可重复使用的代码块,用于执行特定任务或计算,并且可以接受输入参数和返回输出结果。

2024-04-25 21:22:53 838 1

原创 面试 Python 基础八股文十问十答第六期

在 Python 中,切片是一种用于从序列(如列表、元组、字符串等)中获取子序列的方法。start表示起始索引(包含在切片中)。stop表示结束索引(不包含在切片中)。step表示步长(可选参数,默认为1)。切片操作返回一个新的序列,包含原始序列中指定范围内的元素。切片可以用于列表、元组、字符串等任何序列类型。# 获取索引 1 到索引 3 的子列表(不包括索引 3)# 获取从索引 0 开始的奇数位置元素namedtuple是 Python 标准库中。

2024-04-24 08:29:40 675 1

原创 面试 Python 基础八股文十问十答第五期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

2024-04-23 10:17:03 667

原创 面试 Python 基础八股文十问十答第四期

猴子补丁(Monkey Patching)是指在运行时动态修改类或模块的行为的一种技术。在 Python 中,由于其动态特性,可以在运行时修改已加载的类或模块的属性或方法,以实现特定的需求或修复 bug。猴子补丁常用于测试、调试或临时性修改代码,但过度使用可能导致代码难以理解和维护,因此应谨慎使用。在 Python 中,负索引是指从序列末尾开始计数的索引。通常,序列的第一个元素的索引是 0,而倒数第一个元素的索引是 -1,倒数第二个元素的索引是 -2,依此类推。

2024-04-22 08:29:36 619

原创 面试 Python 基础八股文十问十答第三期

Flask 是一个轻量级的 Python Web 应用框架,它由 Armin Ronacher 在 2010 年创建。Flask 是基于 Werkzeug WSGI 工具箱和 Jinja2 模板引擎构建的,它使用简单且易于学习的方式来构建 Web 应用程序。Flask 提供了 URL 路由、模板引擎、请求和响应对象等功能,同时也支持扩展,可以轻松地添加额外的功能,如表单验证、数据库集成等。

2024-04-21 18:39:06 1035

原创 面试 Python 基础八股文十问十答第二期

迭代器是一种对象,它能够逐个地访问集合中的元素而不暴露其内部的实现方式。迭代器对象通常通过调用iter()函数来创建,然后使用next()方法逐个访问元素,直到遍历完所有元素或发生 StopIteration 异常。生成器是一种特殊的迭代器,它可以在迭代过程中动态地生成值,而不需要在内存中保存完整的集合。生成器函数是使用关键字yield来定义的函数,每次调用生成器函数时,会返回一个迭代器对象,然后可以通过迭代器的next()方法来获取生成的值。

2024-04-20 21:12:36 851

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除