
八股文
文章平均质量分 74
AIGoland之星
公众号【AIGoLand之星】
展开
-
金三银四面试题(二十七):适配器模式知多少?
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换为客户期望的另一个接口。通过适配器,原本不兼容的接口可以一起工作,从而提高系统的灵活性和可扩展性。原创 2024-05-12 10:26:13 · 441 阅读 · 0 评论 -
金三银四面试题(二十六):责任链模式知多少?
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,旨在通过将请求的处理分布在一系列对象上,从而使得多个对象可以尝试处理同一个请求。这些对象被链接成一条链,每个对象都可以对请求进行处理,如果不能处理,则将请求传递给链中的下一个对象。原创 2024-05-12 10:25:30 · 384 阅读 · 0 评论 -
金三银四面试题(二十五):策略模式知多少?
策略模式(Strategy Pattern)是一种行为型设计模式,旨在定义一系列算法,将每个算法封装到一个独立的类中,使它们可以互换。策略模式让算法的变化独立于使用它们的客户端,使得客户端可以根据需要动态地选择不同的策略。策略模式通过定义一系列策略,将每个策略封装成独立的类,使得客户端可以根据需求动态切换不同的策略,提高代码的灵活性和可维护性。原创 2024-05-06 11:39:32 · 695 阅读 · 0 评论 -
金三银四面试题(二十八):观察者模式知多少?
观察者模式(Observer Pattern)是一种设计模式,它定义了一种一对多的关系,让多个观察者对象能够同时监听一个主题对象。当主题对象的状态发生变化时,会通知所有观察者对象,使它们能够作出相应的更新。在java.swing和Spring框架中应用广泛。原创 2024-05-06 11:38:30 · 509 阅读 · 0 评论 -
金三银四面试题(二十四):享元模式知多少?
享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用,从而提高性能。它主要用于处理大量细粒度对象的情况,通过将这些对象的可共享部分(内部状态)集中起来存储,以便多个对象可以共享这些部分,从而节省内存。原创 2024-04-29 11:03:14 · 792 阅读 · 0 评论 -
金三银四面试题(二十三):装饰器模式知多少?
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许动态地向对象添加新的行为,而无需修改原始对象的结构。通过将对象包装在一个或多个装饰器对象中,装饰器模式可以增强原始对象的功能。原创 2024-04-29 11:02:10 · 814 阅读 · 2 评论 -
金三银四面试题(二十二):工厂模式知多少?
工厂模式是一种常用的软件设计模式,用于创建对象。它属于创建型设计模式,主要用于处理对象的创建而无需指定具体类。工厂模式通过定义一个创建对象的接口,但让子类决定实例化哪个类来创建对象。这样,客户端代码就不需要知道实际要实例化的类,只需要知道使用的是工厂方法即可。综上所述,工厂模式在软件设计中具有重要的作用,特别是在大型软件系统中,它可以帮助提高代码的质量和可维护性,减少代码的重复和耦合,从而使得系统更加灵活和可扩展。原创 2024-04-18 22:22:29 · 947 阅读 · 0 评论 -
金三银四面试题(二十一):代理模式知多少?
代理模式是一种结构型设计模式,其目的是为其他对象提供一种代理以控制对这个对象的访问。代理对象通常充当客户端与真实对象之间的中介,客户端通过代理对象访问真实对象,从而可以在访问前后进行一些额外的控制、管理或者操作。抽象主题(Subject):声明真实对象和代理对象的共同接口,这样客户端可以通过这个接口访问真实对象或代理对象。真实主题(Real Subject):定义了代理所代表的真实对象,客户端最终想要访问的对象。代理(Proxy)原创 2024-04-17 22:19:24 · 992 阅读 · 0 评论 -
金三银四面试题(二十):单例模式知多少?
单例模式是一种设计模式,用于确保类在应用程序中只有一个实例,并提供一个全局访问点来访问该实例。单例模式通常用于那些需要全局状态或共享资源的情况,以确保整个应用程序中只有一个实例存在,从而避免不必要的资源消耗和冲突。例子,一个应用的日志记录器(Logger)。全局一个日志器记录即可,不需要多个。私有构造函数:单例类的构造函数被设为私有,以防止外部直接创建对象实例。静态方法或静态变量:提供一个静态方法或静态变量来访问该类的唯一实例。延迟实例化。原创 2024-04-16 12:07:11 · 1254 阅读 · 0 评论 -
MySQL基础练习题:习题31-End
其实MySQL的基础面试题真的不是很复杂,基本思想就是大化小。有的时候更像是脑筋急转弯。之前还遇到过一个面试题,是学生成绩表,要求查出每门成绩都高于90的同学。直接查就会相当麻烦,所以我们逆向思考,查出哪些有成绩低于90的,然后再查询not inscore原创 2024-04-13 22:52:22 · 298 阅读 · 0 评论 -
MySQL基础练习题:习题21-25
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。原创 2024-04-12 22:07:43 · 528 阅读 · 0 评论 -
MySQL基础练习题:习题26-30
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。原创 2024-04-12 22:07:08 · 536 阅读 · 0 评论 -
MySQL基础练习题:习题16-20
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。先取出最低薪水大于1500的工作,找出工作为这些职业的职员,最后计数。唯一要注意的是,有的部门无员工,记得使用left join。列出最低薪水大于1500的各种工作及从事此工作的全部雇员人数。先取出每个部门的人数,然后将上表作为临时表与emp表连接,列出部门名称和这些部门的员工信息,同时列出没有员工的部门。列出所有岗位为clerk的姓名及部门名称,部门人数。从emp表中获取人上人的岗位。原创 2024-04-11 11:55:06 · 354 阅读 · 0 评论 -
MySQL基础练习题:习题12-15
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。原创 2024-04-11 11:52:45 · 560 阅读 · 0 评论 -
金三银四面试题(十九):MySQL中的锁
行锁只能加在索引上:MySQL的InnoDB存储引擎使用的是行级锁。当对表中的某一行进行操作(如更新或删除)时,InnoDB会尝试在该行上加锁以确保数据的一致性。然而,这种行级锁只能加在索引上。因为InnoDB使用B+树来组织索引,而行数据存储在索引的叶子节点中。因此,要锁定某行数据,必须先定位到该行所在的索引,然后在该索引上加锁。不走索引会升级为表锁:如果执行的操作不走索引,而是对整个表或者大部分行进行扫描,MySQL无法定位到要加锁的行所在的索引,因此无法使用行级锁。原创 2024-04-10 12:27:11 · 938 阅读 · 0 评论 -
MySQL基础练习题:习题7-11
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。先求各部门平均薪水的等级,再求最高等级,最后显示平均薪水等级等于最高等级的部门名称12内层查询 (子查询 c):内层查询使用了一个子查询 c,通过联结 emp 表和 salgrade 表计算每个部门的平均工资,并根据平均工资匹配相应的工资等级。子查询 c 的主要目的是找到每个部门的平均工资以及相应的工资等级。外层查询原创 2024-04-10 12:22:34 · 693 阅读 · 0 评论 -
MySQL基础练习题:习题456
这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。上期帮助大家完成了热身运动,接下来让我们继续练习。原创 2024-04-09 12:43:03 · 634 阅读 · 0 评论 -
金三银四面试题(十八):MySQL索引
官方介绍索引是帮助MySQL 高效获取数据的数据结构。更通俗地说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用树结构组织(多路搜索树,并不一定是二叉的)的索引。原创 2024-04-09 12:39:40 · 568 阅读 · 0 评论 -
金三银四面试题(十七):MySQL面试都问什么(2)
今天我们继续盘点那些高频的MySQL面试题。原创 2024-04-08 11:30:39 · 857 阅读 · 0 评论 -
金三银四面试题(十六):MySQL面试都问什么(1)
在开发岗位面试中,MySQL基本是必考环节。所以接下来我们就进入MySQL八股文环节,看看都有哪些高频考题。MySQL 中有哪些不同的表格?InnoDB 是MySQL默认的存储引擎,它提供了事务、外键和行级锁等功能。在大多数情况下,InnoDB表是推荐的选择,特别是对于需要事务支持和数据完整性的应用程序。MyISAM 是MySQL的另一种存储引擎,它不支持事务和行级锁,但具有较高的性能和较低的存储开销。MyISAM表适用于读取密集型的应用程序,例如数据仓库或报表生成。原创 2024-04-07 21:50:02 · 1024 阅读 · 0 评论 -
金三银四面试题(十五):Java基础问题(6)
这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。HashMap与ConcurrentHashMap都是key-value 形式的存储数据;HashMap 是线程不安全的,ConcurrentHashMap 是JUC 下的线程安全的;HashMap 底层数据结构是数组+ 链表(JDK 1.8 之前)。JDK 1.8 之后是数组+ 链表+ 红黑树。当链表中元素个数达到8 的时候,链表的查询速度不如红黑树快,链表会转为红黑树,红黑树查询速度快;原创 2024-04-06 21:24:47 · 455 阅读 · 0 评论 -
金三银四面试题(十四):Java基础问题(5)
这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。原创 2024-04-05 10:30:10 · 836 阅读 · 0 评论 -
金三银四面试题(十三):Java基础问题(4)
这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。原创 2024-04-04 08:16:13 · 998 阅读 · 0 评论 -
金三银四面试题(十二):Java基础问题(3)
TreeSet 要求存放的对象所属的类必须实现Comparable 接口,该接口提供了比较元素的compareTo()方法,当插入元素时会回调该方法比较元素的大小。第二种不强制性的要求容器中的元素必须可比较, 但是要求传入第二个参数, 参数是Comparator 接口的子类型(需要重写compare 方法实现元素的比较),相当于一个临时定义的排序规则,其实就是通过接口注入比较元素大小的算法, 也是对回调模式的应用( Java 中对函数式编程的支持)。由于我们的c 语言函数是按 iava 的。原创 2024-04-03 12:38:31 · 1015 阅读 · 0 评论 -
金三银四面试题(十一):Java基础问题(2)
今天继续看看Java基础部分的八股文。原创 2024-04-02 09:59:08 · 698 阅读 · 0 评论 -
金三银四面试题(十):Java基础问题(1)
这部分面试题多用于面试的热身运动,对很多找实习和准备毕业找工作的小伙伴至关重要。原创 2024-04-01 21:59:26 · 594 阅读 · 0 评论 -
金三银四面试题(九):JVM常见面试题(3)
一般情况下,JVM 的对象都放在堆内存中(发生逃逸分析除外)。当类加载检查通过后,Java 虚拟机开始为新生对象分配内存。如果Java 堆中内存是绝对规整的,所有被使用过的内存都被放到一边,空闲的内存放到另外一边,中间放着一个指针作为分界点的指示器,所分配内存仅仅是把那个指针向空闲空间方向挪动一段与对象大小相等的实例,这种分配方式就是指针碰撞。原创 2024-03-31 11:50:20 · 729 阅读 · 0 评论 -
金三银四面试题(八):JVM常见面试题(2)
如果Java堆内存中的内存并不是规整的,已被使用的内存和空闲的内存相互交错在一起,不可以进行指针碰撞啦,虚拟机必须维护一个列表,记录哪些内存是可用的,在分配的时候从列表找到一块大的空间分配给对象实例,并更新列表上的记录,这种分配方式就是空闲列表。原创 2024-03-30 22:33:56 · 411 阅读 · 0 评论 -
金三银四面试题(七):JVM常见面试题(1)
本文介绍了四道面试中经常出现的八股文,希望对大家有所帮助。往期文章金三银四面试题(一):JVM类加载与垃圾回收金三银四面试题(二):数据库缓存的数据一致性金三银四面试题(三):JVM内存模型金三银四面试题(四):Full GC 和 Minor GC金三银四面试题(五):JVM之TLAB金三银四面试题(六):对象大小知多少。原创 2024-03-29 22:54:53 · 727 阅读 · 0 评论 -
金三银四面试题(六):对象大小知多少
Java对象的内存布局也算是面试中的高频题,强烈建议学习JVM源代码特别是oops部分。参考资料往期文章金三银四面试题(一):JVM类加载与垃圾回收金三银四面试题(二):数据库缓存的数据一致性金三银四面试题(三):JVM内存模型金三银四面试题(四):Full GC 和 Minor GC金三银四面试题(五):JVM之TLAB。原创 2024-03-28 12:07:43 · 508 阅读 · 0 评论 -
金三银四面试题(五):JVM之TLAB
TLAB(Thread-Local Allocation Buffer)是Java虚拟机(JVM)中一种用于提高对象分配性能的技术。尽管TLAB存在于堆内存中,但它实际上是每个线程私有的,因此不同线程之间的TLAB是独立的。总之,TLAB是Java虚拟机中一种用于提高对象分配性能的技术,通过为每个线程分配私有的内存缓冲区,减少了线程之间的竞争,从而提高了对象分配的效率往期文章金三银四面试题(一):JVM类加载与垃圾回收金三银四面试题(二):数据库缓存的数据一致性金三银四面试题(三):JVM内存模型。原创 2024-03-27 11:29:58 · 1872 阅读 · 0 评论 -
金三银四面试题(四):Full GC 和 Minor GC
Full GC和Minor GC是Java应用程序内存管理的重要组成部分,了解它们的工作原理和影响对于优化应用程序的性能、提高稳定性和可靠性至关重要。往期文章金三银四面试题(一):JVM类加载与垃圾回收金三银四面试题(二):数据库缓存的数据一致性金三银四面试题(三):JVM内存模型。原创 2024-03-26 11:22:00 · 745 阅读 · 0 评论 -
金三银四面试题(三):JVM内存模型
JVM 定义了不同运行时数据区,他们是用来执行应用程序的。某些区域随着JVM 启动及销毁,另外一些区域的数据是线程性独立的,随着线程创建和销毁。实际上官方也在技术文档中提供了模型架构图JVM 在执行Java 程序时,会把它管理的内存划分为若干个区域,每个区域都有自己的用途和创建、销毁时间。周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》中把JVM 内存分为线程私有区和线程共享区那么接下来对上图中各个部分进行介绍总的来说,学习JVM内存模型对于Java开发人员来说是非常重要的。原创 2024-03-25 07:55:08 · 1099 阅读 · 0 评论 -
金三银四面试题(二):数据库缓存的数据一致性
例如将Redis用作MySQL数据的缓存时,由于数据在MySQL中的变更,导致Redis中的缓存数据与实际数据不一致的情况。这种不一致可能会导致应用程序读取到过期、错误或者不完整的数据,从而影响系统的正确性和可靠性。在满足实时性的条件下,不存在两者完全保存一致的方案,只有最终一致性方案:先写 MySQL,通过 Binlog,异步更新 Redis,可以通过 Binlog,结合消息队列异步更新 Redis。原创 2024-03-24 11:55:08 · 457 阅读 · 0 评论 -
金三银四面试题(一):JVM类加载与垃圾回收
JVM的类加载过程和垃圾回收是面试中几乎必问的问题,作为八股文中最经典的存在,大家一定要熟记,最好刻在DNA中。原创 2024-03-23 10:31:19 · 1901 阅读 · 0 评论