自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java异步

在Java中,开启异步任务可以通过多种方式实现,具体取决于你的应用类型(如桌面应用、Web应用、微服务等)以及你希望使用的技术栈。

2024-09-16 13:36:06 402

原创 javaMail

在Java程序中发送电子邮件通常依赖于JavaMail API。JavaMail API是Java的一部分,用于发送和接收电子邮件。以下是一个使用JavaMail API发送简单电子邮件的基本步骤和示例代码。

2024-09-16 13:05:14 517

原创 java定时任务

选择哪种方法取决于你的具体需求以及你是否在使用Spring框架。如果你正在开发一个Spring应用,那么使用@Scheduled注解可能是最简单和最直接的方法。如果你需要更细粒度的控制或者你的应用不依赖于Spring,那么或Timer可能是更好的选择。

2024-09-16 12:54:29 345

原创 springschedule定时任务

Spring Schedule是Spring框架提供的一种强大的定时任务调度工具,它简化了定时任务的配置和管理。通过简单的注解和Cron表达式,开发者可以轻松地在Spring Boot应用中实现复杂的定时任务调度需求。同时,Spring Schedule还支持多种任务调度方案,为开发者提供了更多的选择和灵活性。

2024-09-16 12:53:52 1019

原创 明日方舟的马鹿西尔(玛露希尔)是一个强度相当不错的干员

明日方舟的马鹿西尔(玛露希尔)是一个强度相当不错的干员。以下是对她强度的详细评价:一技能:虽然基础效果相对一般,但特效设定相当不错,能在战斗中展现精灵的灵动与美感。这个技能适合用于清杂或技能循环的过渡使用,具有一定的实用性。二技能:虽然具体效果尚未完全明确,但从PV中可以推测,该技能可能与队友建立某种联系,通过机制触发类似“点燃”的效果,使敌人在受到攻击后持续受到额外的法术损伤,或者为队友提供攻击力加成。这种技能设定在团队合作中具有较高的潜力。三技能:具有范围效果和爆破特效,第二段会对群体造成伤害并附带眩晕

2024-09-03 12:44:28 1243

原创 java泛型

Java 泛型(Generics)是 JDK 5 引入的一个新特性,它提供了一种编译时类型安全检测机制,允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java 泛型是一个强大的特性,它提供了编译时类型检查,避免了类型转换的错误,提高了代码的重用性和安全性。掌握泛型的使用,对于编写高质量、易于维护的Java代码至关重要。

2024-09-03 12:41:31 379

原创 MySQL索引分类

虽然外键本身不直接创建索引,但在实践中,为了维护外键约束的性能(特别是在进行JOIN操作或检查参照完整性时),通常建议为外键列创建索引。不过,这个索引并不是由MySQL自动创建的,而是需要开发者或数据库管理员根据性能需求手动创建。:虽然AUTO_INCREMENT列本身不会自动创建索引,但它经常与主键一起使用,而主键会自动创建索引。:虽然这不是自动创建的,但值得一提的是,当你在VARCHAR或TEXT类型的列上定义FULLTEXT索引时,MySQL会创建一个特殊的索引结构,用于优化全文搜索查询。

2024-09-01 20:50:32 488

原创 Redis(Remote Dictionary Server)

Redis(Remote Dictionary Server),即远程字典服务,是一个开源的、使用ANSI C语言编写的、支持网络的、可基于内存亦可持久化的日志型Key-Value数据库。

2024-09-01 13:20:34 720

原创 MySQL多种数据类型

MySQL 支持多种数据类型,以便存储不同类型的数据。这些数据类型大致可以分为几类:数值类型、日期和时间类型、字符串(文本)类型、空间类型、JSON类型等。

2024-09-01 12:54:06 649

原创 Spring Security配置详细

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,专为基于Spring的应用程序设计。本教程将指导你如何在一个简单的Spring Boot应用程序中集成Spring Security,以实现基本的用户认证和授权功能。

2024-08-29 17:16:23 1052

原创 Spring Security 使用教程

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,专为基于Spring的应用程序设计。本教程将指导你如何在一个简单的Spring Boot应用程序中集成Spring Security,以实现基本的用户认证和授权功能。

2024-08-29 17:10:00 503

原创 Spring Security

定义:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。功能:它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(控制反转)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。Spring Security是保护基于Spring的应用程序的事实标准,它提供了全面的安全解决方案,包括认证、授权、访问控制等。

2024-08-29 17:09:30 899

原创 串行并行并发

并发和并行都是实现多任务或多线程执行的方式,但它们在时间维度、资源需求和执行效率等方面存在明显的区别。在实际应用中,可以根据具体的需求和场景选择合适的执行方式。在计算机科学和编程中,“串行”(Serial)一词通常指的是一种操作或数据传输的方式,其中任务或数据项按照严格的顺序一个接一个地执行或传输,而不是并行(Parallel)或并发(Concurrent)地执行。在串行执行中,任何给定时间点上只有一个任务或数据项正在被处理,其他任务或数据项必须等待当前任务或数据项完成后才能开始。

2024-08-27 09:05:31 455

原创 JVM(Java Virtual Machine,Java虚拟机)

JVM(Java Virtual Machine,Java虚拟机)是Java平台的核心组成部分,它负责运行Java程序。JVM使得Java程序能够“一次编写,到处运行”(Write Once, Run Anywhere),这是Java语言的一个重要特性。JVM通过在不同的操作系统上提供统一的运行时环境来实现这一特性。

2024-08-27 08:58:08 1487

原创 Cookies、Session和Token

Cookies、Session和Token各有优缺点和适用场景。在选择使用哪种机制时,需要根据具体的应用需求、安全性要求和开发难度来综合考虑。例如,对于简单的Web应用,可以使用Cookie来保持用户的登录状态;对于需要跟踪用户状态的复杂应用,可以使用Session;而对于前后端分离的Web应用或移动应用,Token则是一个更好的选择。

2024-08-25 14:13:31 385

原创 HTTP协议

定义:HTTP是一种应用层协议,它基于TCP/IP通信协议来传送数据。HTTP1.0、HTTP1.1、HTTP2.0均为TCP实现,而HTTP3.0则基于UDP实现。作用:HTTP协议指定了客户端(如Web浏览器)可能发送给服务器什么样的消息以及得到什么样的响应。它是Web浏览器和Web服务器之间的通信基础。

2024-08-25 14:11:56 685

原创 四,接口类型和网络协议

综上所述,前后端开发中常用的接口类型/协议主要包括HTTP/HTTPS、WebSocket等网络协议以及RESTful API、GraphQL、RPC等API接口类型。这些协议和接口共同构成了前后端之间数据交换的基石,支撑着各种应用的正常运行。在前后端开发中,常用的接口类型/协议主要涉及网络协议和应用程序接口(API)两个方面。网络协议是前后端通信的基础,它们定义了数据如何在计算机网络中传输和交换。API是前后端之间数据交换的桥梁,定义了双方交互的方式和规则。

2024-08-25 14:10:37 1057

原创 三,接口分类

内部接口主要关注于系统内部的逻辑和功能实现,而外部接口则更侧重于系统的开放性和与外部系统的互操作性。内部接口主要指的是在程序内部或系统内部使用的接口,它们通常用于方法与方法之间、模块与模块之间的交互和通信。内部接口的设计和实现主要关注于系统的内部逻辑和架构,以确保系统各个部分能够顺畅地协同工作。外部接口则是指系统对外提供的接口,它们允许外部系统或用户与当前系统进行交互和通信。外部接口的设计和实现主要关注于系统的开放性和互操作性,以确保外部系统能够方便地接入和使用当前系统的功能。

2024-08-25 14:08:05 394

原创 二,接口测试

接口测试是验证系统组件间接口的一种测试活动,旨在确保不同系统或系统内部各组件之间的数据交互符合预期,从而保证系统的整体性能和稳定性。

2024-08-25 14:06:24 338

原创 一,接口概念

在前后端开发的语境中,接口(Interface)是一个非常重要的概念,它充当了前端(通常是浏览器端或移动端应用)与后端(通常是服务器端的应用程序)之间进行数据交换的桥梁。接口定义了双方交互的方式,包括数据的格式、请求的方法(如GET、POST、PUT、DELETE等)、请求的路径(URL)、请求和响应时携带的参数等。总之,接口是前后端开发中不可或缺的一部分,它使得前后端可以独立开发、协同工作,共同构建出优秀的应用程序。

2024-08-25 14:04:30 282

原创 java堆中的GC机制

在Java中,堆(Heap)是JVM(Java虚拟机)用于存储对象实例和数组等引用类型的内存区域。堆中的GC(垃圾回收)机制是JVM中一个重要的内存管理机制,用于自动回收堆内存中不再使用的对象,从而释放内存空间,防止内存泄漏和溢出。

2024-08-25 08:36:22 832

原创 Java的GC(Garbage Collection,垃圾回收)

Java的GC(Garbage Collection,垃圾回收)机制是Java虚拟机(JVM)中的一个重要功能,用于自动管理堆内存中不再使用的对象,释放其占用的内存空间,以避免内存泄漏和溢出。

2024-08-25 08:33:46 672

原创 在Java中,堆(Heap)

在Java中,堆(Heap)是JVM(Java虚拟机)中用于存储对象实例的内存区域,与栈(Stack)主要用于存储局部变量和基本数据类型的值不同。堆上的对象可以被JVM中的任何线程访问,而栈上的数据则通常是与特定线程关联的。当我们谈论“堆中的引用”时,我们实际上是在谈论存储在栈或其他内存区域(如方法区中的静态变量)中的引用变量,这些引用变量指向堆上的对象实例。这些引用变量是Java用来访问和操作堆上对象的桥梁。

2024-08-25 08:30:38 273

原创 关于类加载的问题

在Java中,类加载(Class Loading)是一个复杂但关键的过程,它负责将类的二进制数据读入JVM(Java虚拟机)中,并在JVM中创建对应的对象,以便之后能够创建该类的实例或调用其方法。关于类加载过程中是否先加载父类和接口的问题,实际上并不是这样直接理解的。

2024-08-24 17:55:05 492

原创 打破双亲委派机制

打破双亲委派机制的使用场景主要出现在一些特殊需求或复杂环境中,当标准的双亲委派机制无法满足这些需求时,开发者可能会选择打破这一机制。

2024-08-24 17:35:03 719

原创 类加载器(ClassLoader)

自定义类加载器通常通过继承类并重写其方法来实现。类提供了几个关键的方法用于类的加载,但通常只需要关注和两个方法。:这是类加载的入口方法。首先,它会检查请求的类是否已经被加载过(通过调用方法)。如果没有,它会根据委托模型(Delegation Model)尝试让父类加载器来加载这个类。如果父类加载器无法加载这个类(返回null),那么就会调用方法来查找并加载这个类。如果找到了类,并且resolve参数为true,那么还会调用> c)方法来链接这个类。

2024-08-24 17:29:34 878

原创 字节码文件

字节码文件是Java程序编译后的二进制表示,它由多个部分组成,每个部分都承载着特定的信息,共同构成了JVM执行Java程序的基础。通过对字节码文件的解析和执行,JVM能够实现在不同操作系统上运行Java程序的目标。

2024-08-22 15:30:55 358

原创 JVM(Java Virtual Machine,Java虚拟机)

JVM是Java程序能够跨平台运行的关键,它通过加载、链接、初始化、执行Java字节码的方式,在不同的操作系统上实现Java程序的运行。JVM的架构和组成部分确保了Java程序的高效、安全和可靠运行。

2024-08-22 15:29:07 370

原创 JVM(Java Virtual Machine,Java虚拟机)

但是,需要注意的是,JIT编译是JVM内部的一个可选功能,不是JVM执行Java字节码的先决条件。然而,在讨论JVM的上下文时,我们可能会遇到几个与编译相关的概念,这些概念虽然不是JVM直接提供的,但与Java程序的执行过程密切相关。:在某些情况下,Java程序可能会在运行时动态地生成并编译新的代码(例如,使用Java的反射API、动态代理,或者通过代码生成库如ASM、CGLib等)。综上所述,JVM本身不直接提供编译功能,但它能够执行编译后的Java字节码,并且可以通过JIT编译器在运行时优化执行效率。

2024-08-22 13:17:10 426

原创 java线程休眠和线程礼让的区别

线程休眠线程礼让定义当前线程停止执行,让出CPU资源,并进入到阻塞状态,但不会释放锁。当前线程主动让出CPU资源,让其他线程先占用CPU进行运行。状态阻塞状态仍然处于可运行状态时间控制可以精确指定休眠时间没有指定的时间间隔异常处理需要捕获异常不会抛出异常锁行为休眠期间不会释放锁礼让期间不会释放锁调度依赖线程在指定的时间后自动恢复依赖于操作系统的线程调度器综上所述,线程休眠和线程礼让在Java并发编程中各有其用途和特点。在实际应用中,应根据具体需求选择适当的机制来控制线程的执行顺序和状态。

2024-08-21 20:40:27 473

原创 如何看待“低代码”开发平台的兴起?

这种新兴技术正在挑战传统软件开发模式,引发了IT行业的广泛讨论。低代码平台是提高效率的利器,还是降低了编程门槛导致质量下降?让我们一起探讨低代码开发的机遇与挑战。提示:介绍低代码平台的基本概念、主要特点和市场现状。分析几个主流低代码平台的优缺点,探讨它们在不同场景下的适用性。提示:讨论低代码平台如何提高开发效率,同时探讨可能存在的质量和安全隐患。分析低代码平台在企业应用开发中的利弊。提示:探讨低代码平台带来的挑战和机遇,分析低代码平台在开发过程中可能遇到的问题,以及开发者应如何应对这些挑战。

2024-08-21 16:04:31 162

原创 如何看待“低代码”开发平台的兴起?

首先,可能会限制了一些高级功能和定制化需求,因为平台的设计和约束。其次,可能会出现安全和稳定性的问题,因为开发者可以更轻易地进行应用程序开发,但缺乏对底层技术的深入了解。总的来说,低代码开发平台的兴起为应用程序开发带来了许多好处,但也需要权衡其中的挑战和限制。最重要的是,企业需要在选择和使用低代码平台时进行仔细评估,确保其满足他们的需求,并能够实现长期的业务和技术目标。这种平台以简化和加速应用程序开发为目标,通过提供图形化界面和预置模块,使开发者能够以更少的编码和更少的时间创建应用程序。

2024-08-21 13:05:54 212

原创 如何高效记录并整理编程学习笔记?

总体来说,高效记录和整理编程学习笔记需要有良好的组织和总结能力,同时也需要根据个人习惯和喜好选择合适的工具和方法。使用数字化工具:使用笔记软件或在线笔记工具,例如Evernote、OneNote、Notion等,可以方便地记录和整理学习笔记,并提供多种组织和搜索功能。及时整理和归档:定期回顾和整理学习笔记,删除过时或不再需要的内容,保持笔记的整洁和高效。建立清晰的目录结构:在笔记软件中建立清晰的目录结构,例如按主题、语言、技术等分类,以便快速找到和浏览相关内容。这样可以快速查阅和复用代码。

2024-08-21 13:05:14 395

原创 单例模式详细

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。

2024-08-21 13:03:31 927

原创 中介者模式

中介者模式的核心思想是将对象之间的交互逻辑封装在中介者对象中,从而使得对象之间不再直接相互通信,而是通过中介者进行通信。这样一来,当一个对象发生变化时,只需要通知中介者即可,中介者再根据对象之间的交互关系,将消息传递给其他相关对象。总之,中介者模式通过引入一个中介者对象,将对象之间的交互关系集中管理,降低了对象之间的耦合性,使得系统更加灵活和可扩展。具体同事类(ConcreteColleague):实现了抽象同事类的接口,负责实现自己的业务逻辑,并在需要的时候通过中介者对象来进行通信。

2024-08-21 13:02:43 510

原创 中介者模式

中介者模式的核心思想是将对象之间的交互逻辑封装在中介者对象中,从而使得对象之间不再直接相互通信,而是通过中介者进行通信。这样一来,当一个对象发生变化时,只需要通知中介者即可,中介者再根据对象之间的交互关系,将消息传递给其他相关对象。总之,中介者模式通过引入一个中介者对象,将对象之间的交互关系集中管理,降低了对象之间的耦合性,使得系统更加灵活和可扩展。具体同事类(ConcreteColleague):实现了抽象同事类的接口,负责实现自己的业务逻辑,并在需要的时候通过中介者对象来进行通信。

2024-08-21 12:04:32 318

原创 RESTful API

通过使用不同的HTTP方法来执行不同的操作,例如GET用于获取资源,POST用于创建资源,PUT用于更新资源,DELETE用于删除资源。此外,还需要考虑安全性、性能和可伸缩性等方面的问题。返回合适的HTTP状态码和响应数据:根据处理的结果,返回合适的HTTP状态码和响应数据给客户端,例如成功时返回200状态码和对应的数据,失败时返回对应的错误码和错误信息。定义API的请求方法:根据应用程序的需求,定义出每个URL对应的HTTP方法,例如GET用于获取用户信息,POST用于创建新用户等。

2024-08-21 11:48:04 392

原创 依赖倒置原则的精髓

依赖倒置原则的精髓就是:“高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。” 简单来说,就是“针对接口编程,不要针对实现编程”,让系统更加灵活,易于维护和扩展。依赖倒置原则(Dependency Inversion Principle, DIP)在软件开发中的应用非常广泛,它有助于降低模块间的耦合度,提高系统的可扩展性和可维护性。

2024-08-21 11:32:43 250

原创 PhpStorm环境配置与应用

通过修改phpstorm.vmoptions文件调整PhpStorm的内存分配以提高性能。设置排除不需要索引的目录以减少项目的索引时间。禁用不常用的插件以减少启动时间和内存占用。自定义快捷键以提高工作效率。通过以上配置和应用,PhpStorm能够极大地提高PHP开发者的开发效率和工作质量。

2024-08-21 11:26:04 1064

原创 依赖倒置原则

依赖倒置原则的精髓就是:“高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。” 简单来说,就是“针对接口编程,不要针对实现编程”,让系统更加灵活,易于维护和扩展。依赖倒置原则(Dependency Inversion Principle, DIP)在软件开发中的应用非常广泛,它有助于降低模块间的耦合度,提高系统的可扩展性和可维护性。

2024-08-21 11:20:12 150

空空如也

空空如也

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

TA关注的人

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