自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java设计模式 —— 【行为型模式】迭代器模式(Iterator Pattern)详解

迭代器模式是一种行为模式,它提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。

2025-03-03 20:12:19 406

原创 Java设计模式 —— 【行为型模式】中介者模式(Mediator Pattern)详解

中介者模式是迪米特原则的经典体现:它要求一个对象应该对其他对象保持最少的了解。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

2025-02-26 20:06:26 1047

原创 Java设计模式 —— 【行为型模式】观察者模式(Observer Pattern) 详解

观察者模式又被称为发布-订阅(Publish/Subscribe)模式,是一种行为模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

2025-02-25 20:12:59 832

原创 Java设计模式 —— 【行为型模式】状态模式(State Pattern) 详解

应用程序中的有些对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态会发生改变,从而使得其行为也随之发生改变。

2025-02-24 20:50:34 728

原创 Java设计模式 —— 【行为型模式】责任链模式(Chain-of-responsibility Pattern) 详解

责任链模式又名职责链模式,它是一种对象行为的设计模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。职责链可以是一条直线、一个环链或者是一个树结构的一部分。

2025-01-08 21:32:57 890

原创 Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解

命令模式是一个行为模式,它是将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。

2025-01-07 21:08:36 1217

原创 Java设计模式 —— 【行为型模式】策略模式(Strategy Pattern) 详解

策略模式是一种行为模式,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

2025-01-06 21:18:24 1087

原创 Java设计模式 —— 【行为型模式】模板方法模式(Template Method Pattern) 详解

模板方法模式是一种行为模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。

2024-12-30 21:23:33 1503

原创 Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解

享元模式也叫蝇量模式,是运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。

2024-12-25 21:53:33 1451

原创 Java设计模式 —— 【结构型模式】组合模式(透明组合模式、安全组合模式)详解

组合模式又名整体-部分模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

2024-12-24 22:26:08 1276

原创 Java设计模式 —— 【结构型模式】外观模式(Facade Pattern)详解

外观模式又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

2024-12-23 21:39:12 927

原创 Java设计模式 —— 【结构型模式】桥接模式(Bridge Pattern)详解

桥接模式是将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

2024-12-18 21:44:43 884

原创 Java设计模式 —— 【结构型模式】装饰者模式(Decorator Pattern)详解

装饰者模式指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。

2024-12-17 21:19:35 1216

原创 Java设计模式 —— 【结构型模式】适配器模式(类的适配器、对象适配器、接口适配器)详解

适配器模式最大的作用还是将原本不兼容的接口融合在一起工作;将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无须修改原有结构;增加了类的透明性和复用性,将具体的业务实现过程封装在适配者类中,对于客户端类而言是透明的,而且提高了适配者的复用性,同一个适配者类可以在多个不同的系统中复用;灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”。

2024-12-16 21:05:11 1483

原创 Java设计模式 —— 【结构型模式】代理模式(静态代理、JDK动态代理、CGLIB动态代理)详解

由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。以此保护目标对象。

2024-12-11 22:15:37 1208

原创 Java设计模式 —— 【创建型模式】建造者模式(Builder Pattern)详解

建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式;它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节;由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配算法的解耦,实现了更好的复用。

2024-12-09 21:17:43 1789

原创 Java设计模式 —— 【创建型模式】原型模式(浅拷贝、深拷贝)详解

创建新的对象比较复杂时,可以利用原型模式简化对象的创建过程,同时也能够提高效率;不用重新初始化对象,而是动态地获得对象运行时的状态;如果原始对象发生变化(增加或者减少属性),其它克隆对象的也会发生相应的变化,无需修改代码;需要注意浅拷贝的成员变量数据类型是引用数据类型(对象)的时候;在实现深克隆的时候可能需要比较复杂的代码建议使用序列化方式;

2024-11-27 20:41:27 1700

原创 Java设计模式 —— 【创建型模式】工厂模式(简单工厂、工厂方法模式、抽象工厂)详解

工厂模式的主要目的是将对象的创建过程封装在工厂类中,客户端代码只需要关心从工厂获取对象的过程,而不需要了解对象的创建细节。这样可以降低代码的耦合度,提高代码的可维护性和可扩展性

2024-11-25 20:33:16 1682

原创 Java设计模式 —— 【创建型模式】单例模式(八种创建方法)详解

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

2024-11-21 21:41:13 1438

原创 Java设计模式 —— Java七大设计原则详解

编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的拓展性与维护性,由此才一步步发展出了设计模式,而设计模式又遵循着七大设计原则......

2024-11-18 21:27:10 1769 2

原创 Java8 新特性 —— LocalDateTime,Instant(时间戳),DateTimeFormatter(格式化),Duration和Period(时间对比),时区详解

Java8 提供了全新的日期时间API中的类都是线程安全的,这意味着可以在编译时捕获许多常见的日期时间错误。与传统日期时间类不同,新的日期时间API中的类是不可变的,这使得更容易编写高质量的代码。

2024-11-06 21:50:45 1826

原创 Java8 新特性 —— Optional API 详解

Optional类是Java8新引进的一个主要用于解决的问题是空指针异常(NullPointerException)的一个类。尽量减少if...else...跳转结构,使代码变得简洁优雅

2024-11-04 23:13:19 1132

原创 Java8 新特性 —— Stream API 详解

Stream作为Java 8的一大亮点,它专门针对集合的各种操作提供各种非常便利、简单、高效的API,Stream API主要是通过Lambda表达式完成,极大的提高了程序的效率和可读性,同时Stram API中自带的并行流使得并发处理集合的门槛再次降低,使用Stream API编程无需多写一行多线程的代码就可以非常方便的写出高性能的并发程序。使用Stream API能够使代码更加优雅。

2024-10-31 23:23:31 1511

原创 Java8 新特性 —— Lambda 表达式、函数接口以及方法引用详解

本系列主要深入学习Java8新特性,本文是Lambda表达式,函数接口以及方法引用的学习,在平时工作学习中,有助于提升我们的编程能力,使代码变得简洁优雅。

2024-10-30 23:35:37 1694

原创 Java虚拟机(JVM)(10)—— 详解Class常量池、运行时常量池以及字符串常量池

本文主要讲解Class常量池、运行时常量池以及字符串常量池的关系以及各自的作用,希望对各位小伙伴在常量池方面有所帮助。

2024-10-25 22:54:25 1272

原创 Java虚拟机(JVM)(9)—— 内存泄漏和内存溢出

本文主要概述内存溢出以及内存泄漏产生的原因,以及如何在代码层面尽量避免内存泄漏,希望对大家的日常工作有所帮助。

2024-10-23 21:37:04 1950

原创 Java虚拟机(JVM)(8)—— 垃圾回收(2)

本文主要讲解垃圾回收器的分类,以及不同垃圾回收器之间的组合使用及其作用,希望对大家有所帮助。

2024-10-21 22:46:45 1070

原创 Java虚拟机(JVM)(7)—— 垃圾回收(1)

垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。

2024-10-17 23:10:50 1028

原创 Java虚拟机(JVM)(6)—— 类的生命周期

本文主要介绍类的生命周期,以及在各阶段所执行的任务,希望对大家的日常工作有所帮助☺

2024-10-15 23:47:57 884

原创 Java虚拟机(JVM)(5)—— 类加载器

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。类加载器会通过二进制流的方式获取到字节码文件的内容,接下来将获取到的数据交给Java虚拟机,虚拟机会在方法区和堆上生成对应的对象保存字节码信息。上述原理我们可以看出在加载类的时候,是在方法里面上父类进行委托,所以我们只需要重实现自己加载即可。//使用commons io 从指定目录下加载文件try {try {

2024-10-14 21:16:31 1145

原创 Java虚拟机(JVM)(4)——运行时数据区

本文主要目的在于了解JVM运行时数据区以及内存结构,以便在学习类加载以及垃圾回收的时候能够如鱼得水。

2024-10-11 22:32:15 1288

原创 Java虚拟机(JVM)(3)—— 字节码指令

Java字节码对于虚拟机,就好像汇编语言对于计算机,属于基本执行指令。Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。由于 Java 虚拟机采用面向操作数栈而不是寄存器的结构,所以大多数的指令都不包含操作数,只有一个操作码。由于限制了 Java 虚拟机操作码的长度为一个字节(即 0~255),这意味着指令集的操作码总数不可能超过 256 条。

2024-10-10 21:43:16 1133

原创 Java虚拟机(JVM)(2)—— 字节码文件

因为JVM针对各种操作系统和平台都进行了定制,无论在什么平台,都可以通过javac命令将一个.java文件编译成固定格式的字节码(.class文件)供JVM使用。之所以被称为字节码,是因为.class文件是由十六进制值组成的,JVM以两个十六进制值为一组,就是以字节为单位进行读取。

2024-10-09 23:15:34 930

原创 Java虚拟机 (JVM)(1) —— 初识JVM

Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。JVM是java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

2024-10-09 00:04:52 880

空空如也

空空如也

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

TA关注的人

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