![](https://img-blog.csdnimg.cn/20191022145909375.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java-Core
文章平均质量分 78
罗汉爷
每一个不曾起舞的日子,都是对生命的辜负!
展开
-
Java利用poi实现word,excel,ppt,pdf等各类型文档密码检测
最近工作上需要对word,excel,ppt,pdf等各类型文档密码检测,对文件进行分类,有密码的和没密码的做区分。查了一堆资料和GPT都不是很满意,最后东拼西凑搞了个相对全面的检测工具代码类,希望能给需要的人带来帮助。原创 2024-06-28 10:43:56 · 858 阅读 · 0 评论 -
Java核心之细说泛型
等你使用java逐渐深入以后会了解或逐步使用到Java泛型。Java 中的泛型是 JDK 5 中引入的功能之一。"Java 泛型 "是一个技术术语,表示一组与定义和使用泛型类型和方法有关的语言特性。在 Java 中,泛型类型或方法与普通类型和方法的区别在于它们具有类型参数。原创 2024-03-09 09:00:00 · 1701 阅读 · 0 评论 -
Java 8 Supplier函数式接口介绍及代码样例
供应商接口(Supplier Interface)是 Java 8 引入的 java.util.function 包的一部分,用于在 Java 中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为 T 的值。T:表示结果的类型分配给 Supplier 类型对象的 lambda 表达式用于定义其 get(),最终产生一个值。当我们不需要提供任何值并同时获得一个结果时,Supplier 就非常有用。原创 2024-03-06 11:26:05 · 707 阅读 · 0 评论 -
Java面向对象之接口和抽象类的区别一目了然
接口是一个伟大的工具,但它们容易被滥用。接口的典型使用是代表一个类的类型或一个形容词,如 Runnable 或 Serializable,而抽象类通常是类层次结构的一部分或一件事物的类型,如 String 或 ActionHero。:接口中只能定义抽象方法(从Java 8开始也可以定义默认方法和静态方法),所有方法默认都是public的。java8开始增加默认方法的极具说服力的理由是它允许在不破坏已使用接口的代码的情况下,在接口中增加新的方法。:抽象类是一个不完全的类,它可以包含抽象方法和非抽象方法。原创 2024-02-27 14:02:55 · 832 阅读 · 0 评论 -
Java操作EasyExcel实现导入导出入门
EasyExcel是阿里巴巴开源的一个excel处理框架,。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。原创 2023-04-28 21:04:05 · 1543 阅读 · 1 评论 -
Java设计模式-职责链模式Chain of Responsibility
编写程序完成学校 OA 系统的采购审批项目:需求。如果金额 小于等于 5000, 由教学主任审批。如果金额 小于等于 30000, 由副校长审批。如果金额 小于等于 10000, 由院长审批。如果金额 超过 30000 以上,有校长审批。思路分析和图解(类图)原创 2023-01-30 08:00:00 · 472 阅读 · 0 评论 -
Java设计模式-策略模式Strategy
StrategyPatternDemo,我们的演示类使用 Context 和策略对象来演示 Context 在它所配置或使用的策略改变时的行为变化。我们将创建一个定义活动的 Strategy 接口和实现了 Strategy 接口的实体策略类。Context 是一个使用了某种策略的类。说明:从上图可以看到,客户 context 有成员变量 strategy 或者其他的策略接口。,至于需要使用到哪个策略,我们可以在构造器中指定。原创 2023-01-29 07:00:00 · 581 阅读 · 0 评论 -
Java设计模式-状态模式State
StatePatternDemo,我们的演示类使用 Context 和状态对象来演示 Context 在状态改变时的行为变化。我们将创建一个 State 接口和实现了 State 接口的实体状态类。Context 是一个带有某个状态的类。原创 2023-01-28 10:49:11 · 495 阅读 · 0 评论 -
Java设计模式-解释器模式Interpreter
我们将创建一个接口 Expression 和实现了 Expression 接口的实体类。定义作为上下文中主要解释器的 TerminalExpression 类。其他的类 OrExpression、AndExpression 用于创建组合式表达式。InterpreterPatternDemo,我们的演示类使用 Expression 类创建规则和演示表达式的解析。原创 2023-01-28 10:44:00 · 597 阅读 · 0 评论 -
Java设计模式-备忘录模式Memento
对原理类图的说明-即(备忘录模式的角色及职责)原创 2023-01-28 09:35:40 · 452 阅读 · 0 评论 -
Java设计模式-中介者模式Mediator
java.lang.reflect.Method invoke()方法。java.util.Timer类scheduleXXX()方法。java并发执行器execute()方法。原创 2023-01-19 10:10:09 · 1674 阅读 · 1 评论 -
Java设计模式-观察者模式Observer
观察者模式是行为设计模式之一。当您对对象的状态感兴趣并希望在任何更改时得到通知时,观察者设计模式非常有用。在观察者模式中,观察另一个对象状态的对象被称为观察者,而被观察的对象则被称为主体。原创 2023-01-18 20:41:44 · 1277 阅读 · 0 评论 -
Java设计模式-迭代器模式Iterator
根据GoF的定义,迭代器模式提供了一种顺序访问聚合对象的元素而不暴露其底层表示的方法。这是一种行为设计模式。顾名思义,迭代器有助于以定义的方式遍历对象集合,这对客户端应用程序很有用。在迭代期间,客户端程序可以根据需求对元素执行各种其他操作。原创 2023-01-18 10:47:12 · 678 阅读 · 0 评论 -
Java 23种设计模式的分类和使用场景
GoF是设计模式的经典名著(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者,他们分为是:Elich Gamma、Richard Helm、Ralph Johnson、以及John Vlissides。这四个人常被称为Gang of Four, 即四人组,简称GoF。原创 2023-01-18 10:18:21 · 912 阅读 · 0 评论 -
Java设计模式-访问者模式Visitor
我们将创建一个定义接受操作的ComputerPart接口。键盘、鼠标、监视器和计算机是实现ComputerPart接口的具体类。我们将定义另一个接口ComputerPartVisitor,它将定义访问者类操作。计算机用具体的访问者做相应的动作。我们的演示类VisitorPatternMo将使用Computer和ComputerPartVisitor类来演示访问者模式的使用。定义具体的访问者,实现访问者接口。创建具体的元素类,实现上面的接口。原创 2023-01-15 08:30:00 · 599 阅读 · 0 评论 -
Java设计模式-命令模式Command
前者打开文本文件,后者保存文本文件。可以清楚地看到命令对象的功能:TextFileOperation 命令封装了打开和保存文本文件所需的所有信息,包括接收器对象、要调用的方法和参数(在这种情况下,不需要参数,但可以)。在我们的示例中,很明显,必须有一个额外的组件负责调用命令对象并通过命令的 execute() 方法执行它们。命令是一个对象,其作用是存储执行操作所需的所有信息,包括要调用的方法、方法参数和实现该方法的对象(称为接收器)。调用程序是一个对象,它知道如何执行给定的命令,但不知道命令是如何实现的。原创 2023-01-14 19:24:40 · 1212 阅读 · 0 评论 -
Java设计模式-模板模式Template
选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的(红豆、花生豆浆。制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎。通过添加不同的配料,可以制作出不同口味的豆浆。原创 2023-01-13 16:57:34 · 1687 阅读 · 0 评论 -
Java设计模式-代理模式Proxy
这篇文章中主要介绍了代理模式的两种实现:静态代理以及动态代理。涵盖了静态代理和动态代理实战、静态代理和动态代理的区别、JDK 动态代理和 Cglib 动态代理区别等内容。原创 2023-01-13 15:45:29 · 640 阅读 · 0 评论 -
Java设计模式-外观模式Facade
【代码】Java设计模式-外观模式Facade。原创 2023-01-11 15:32:54 · 1115 阅读 · 0 评论 -
Java设计模式-组合模式Composite
【代码】Java设计模式-组合模式Composite。原创 2023-01-11 14:49:21 · 557 阅读 · 0 评论 -
Java设计模式-装饰者模式Decorator
装饰者模式的核心思想是通过创建一个装饰对象(即装饰者),动态扩展目标对象的功能,并且不会改变目标对象的结构,提供了一种比继承更灵活的替代方案。需要注意的是,装饰对象要与目标对象实现相同的接口,或继承相同的抽象类;另外装饰对象需要持有目标对象的引用作为成员变量,而具体的赋能任务往往通过带参构造方法来完成。原创 2023-01-11 09:54:19 · 1101 阅读 · 0 评论 -
Java设计模式-桥接模式Bridge
桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。类图Client 类:桥接模式的调用者。原创 2023-01-10 11:55:45 · 438 阅读 · 0 评论 -
Java设计模式-适配器模式Adapter
Adapter 类,通过继承 src 类,实现 dst 类接口,完成 src->dst 的适配。基本思路和类的适配器模式相同,只是将 Adapter 类作修改,不是继承 src 类,而是持有 src 类的实例,以解决兼容性的问题。即:持有 src 类,实现 dst 类接口,完成 src->dst 的适配根据“合成复用原则”,在系统中尽量使用关联关系(聚合)来替代继承关系。对象适配器模式是适配器模式常用的一种。原创 2023-01-09 21:00:57 · 1002 阅读 · 0 评论 -
Java设计模式-原型模式Prototype
当我们有一个类的实例(Prototype)并且我们想通过复制原型来创建新对象时,通常使用Prototype模式。原型模式是一种创建型设计模式。能够复制已有对象, 而又无需使代码依赖它们所属的类。原创 2023-01-09 12:08:43 · 386 阅读 · 0 评论 -
Java设计模式-单例模式Singleton
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。原创 2023-01-08 11:28:28 · 474 阅读 · 0 评论 -
UML类图入门实战
AmaterasUML 是一个用于 Eclipse 的轻量级 UML 和 ER 图编辑器。原创 2023-01-07 20:19:09 · 591 阅读 · 0 评论 -
eclipse安装UML插件
AmaterasUML 是一个用于 Eclipse 的轻量级 UML 和 ER 图编辑器。原创 2023-01-07 15:50:05 · 1978 阅读 · 1 评论 -
Java8接口中抽象方法和default和static方法的区别和使用
传统的理解是接口只能是抽象方法。但是程序员们在使用中,发现很不方便,实现接口必须重写所有方法,很麻烦。所以java设计者妥协了,在java8中,支持default和static方法,这样,实现接口时,可以选择不对default修饰的方法重写。原创 2022-11-29 21:41:44 · 1581 阅读 · 0 评论 -
Java8函数式接口Predicate实战
Java Predicate 函数式接口 Funcational Interface 是指接口范围内只允许有一个抽象方法(不包括default和static方法)的接口。Java中有一些预定义的函数接口,如Predicate、consumer、supplier等。Lambda函数的返回类型(在JDK1.8中引入)也是一个函数接口。原创 2022-11-29 21:35:22 · 318 阅读 · 0 评论 -
Java判断一个字符串中是否包含数字
本例考察以下Java知识点:运行调试原创 2022-06-17 14:22:33 · 4833 阅读 · 0 评论 -
Java利用反射实现运行时方法调用
1.介绍在这篇短文中,我们将快速了解如何在运行时使用Java反射API调用方法。2.准备工作来创建一个简单的类:public class Operations { public double publicSum(int a, double b) { return a + b; } public static double publicStaticMultiply(float a, long b) { return a * b; }原创 2021-07-01 18:09:50 · 845 阅读 · 0 评论 -
Java对象序列化
1.介绍序列化是将对象的状态转换为字节流;反序列化恰恰相反。换句话说,序列化是将Java对象转换成静态字节流(序列),然后可以保存到数据库、文件或通过网络传输。2.序列化和反序列化序列化过程是独立于实例的,即对象可以在一个平台上序列化,在另一个平台上反序列化。符合序列化条件的类需要实现可序列化的特殊标记接口Serializable。ObjectInputStream和ObjectOutputStream都是分别继承java.io.InputStream和java.io.OutputStream的高原创 2021-06-28 15:10:51 · 606 阅读 · 2 评论 -
Java中的异常处理
1.介绍1.1 什么是异常处理?为了更好地理解异常和异常处理,让我们做一个实际的比较。想象一下,我们在网上订购了一种产品,但在途中,却出现了交货失败的情况。一个好的公司可以处理这个问题,并优雅地重新路由我们的包,使它仍然按时到达。同样,在Java中,代码在执行指令时也会遇到错误。良好的异常处理可以处理错误并优雅地重新路由程序,给用户一个积极的体验。1.2 为什么这么做?我们通常在一个理想的环境中编写代码:文件系统总是包含我们的文件,网络是健康的,JVM总是有足够的内存。有时我们称之为“幸福之路”原创 2021-06-22 11:06:53 · 608 阅读 · 0 评论 -
Java中的final关键字
1.介绍虽然继承使我们能够重用现有代码,但有时我们确实需要出于各种原因对可扩展性设置限制;final关键字可以让我们做到这一点。在本教程中,我们将了解final关键字对类、方法和变量的意义。2.Final类标记为final的类不能被继承。如果我们看一下Java核心库的代码,我们会在那里找到许多最终的类。一个例子是String类。如果我们可以扩展String类,重写它的任何方法,并用特定String子类的实例替换所有的String实例,对字符串对象的操作结果将变得不可预测。考虑到String类到处都在原创 2021-06-20 21:51:59 · 330 阅读 · 1 评论 -
Java定时器(Timer)
1.介绍Timer和TimerTask是用于在后台线程中调度任务的java util类。简单地说,TimerTask是要执行的任务,Timer是调度器。2.调度一次性任务2.1 指定延迟后执行让我们从简单地在定时器的帮助下运行单个任务开始:@Testpublic void givenUsingTimer_whenSchedulingTaskOnce_thenCorrect() { TimerTask task = new TimerTask() { public void原创 2021-06-19 17:10:47 · 24736 阅读 · 0 评论 -
Java中的包装类(wrapper class)
1.介绍顾名思义,包装类是封装Java原始类型的对象。每个Java原始类型都有一个对应的包装类:基本类型包装类booleanBooleanbyteByteshortShortcharCharacterintIntegerlongLongfloatFloatdoubleDouble这些都是在java.lang包中定义的,因此我们不需要手动导入它们。2.包装类那为什么要引入包装类?这个问题也是常见的面试题。因为泛型类只原创 2021-06-17 20:21:27 · 2876 阅读 · 2 评论 -
Java中各种比较对象方式对比
1.介绍比较对象是面向对象编程语言的一个基本特征。在本教程中,我们将介绍Java语言的一些特性,这些特性允许我们比较对象。此外,我们还将研究外部库中的这些特性。2.==和!=操作符让我们从==和!=开始可以分别判断两个Java对象是否相同的操作符。2.1 原始类型(Primitives)对于原始类型,相同意味着具有相等的值:assertThat(1 == 1).isTrue();感谢自动拆箱,在将原语值与其包装类型对应值进行比较时,也可以这样做:Integer a = new Intege原创 2021-06-14 23:50:18 · 4218 阅读 · 12 评论 -
Java中的POJO是什么?
1.介绍在这个简短的教程中,我们将研究“普通Java对象”(Plain Old Java Object)的定义,简称POJO。我们将看看POJO与JavaBean的比较,以及如何将POJO转换为JavaBean。2.普通java对象2.1 何为普通java对象?当我们谈论POJO时,我们所描述的是一个简单的类型,没有任何特定框架的引用。POJO对我们的属性和方法没有命名约定。让我们创建一个基本的员工POJO。它将有三个属性;名字、姓氏和入职日期:public class EmployeePojo原创 2021-06-13 10:40:51 · 24555 阅读 · 3 评论 -
Java控制语句
1.介绍从本质上讲,程序是一系列指令。控制结构是可以改变我们如何执行这些指令的代码块。在本教程中,我们将探讨Java中的控制结构。有三种控制结构:条件分支,用于在两条或多条路径之间进行选择。Java中有三种类型:if/else/elseif、三元运算符和switch。循环;用于迭代多个值/对象并重复运行特定代码块的循环。Java中的基本循环类型是for、while和do-while。分支语句,用于改变循环中的控制流。Java中有两种类型:break和continue。2.if/else/e原创 2021-06-12 23:04:26 · 234 阅读 · 1 评论 -
java.lang.System快速指南
1.介绍在本教程中,我们将快速了解java.lang.System类及其特性和核心功能。2.IO系统类是java.lang的一部分,它的一个主要特性是让我们能够访问标准的I/O流。简单地说,它暴露了三个属性,每个流一个:outerrin2.1 System.outSystem.out指向标准输出流,将其暴露为PrintStream,我们可以使用它将文本打印到控制台:System.out.print("This is a test message.");System的一个高级用法是原创 2021-06-11 00:01:11 · 724 阅读 · 0 评论