自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的异常处理机制

异常处理是Java编程中的一个重要概念,正确地使用异常处理机制可以提高程序的健壮性和可维护性。希望这篇文章能帮助你更好地理解和使用Java中的异常处理。如果你有任何问题或想要进一步讨论,欢迎在评论区留言。

2024-12-27 00:07:13 470

原创 了解Axios:初学者看懂这篇博客就够了

Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js。它允许你发送异步HTTP请求,并且处理返回的数据。Axios的主要特点从浏览器中创建 XMLHttpRequests从 Node.js 发出 http 请求支持 Promise API转换请求和响应数据客户端支持防御 XSRF异步HTTP请求是一种在不阻塞用户界面的情况下,与服务器进行数据交换的技术。在Web开发中,这意味着用户可以继续与页面交互,而不必等待服务器响应。同步请求。

2024-11-12 16:02:59 1274 1

原创 软件工程视角:Git 基础与实践

Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理项目版本管理。它允许开发者在本地保存项目的所有历史记录,这意味着即使在没有网络连接的情况下,开发者也可以提交更改、查看历史记录和比较差异。Git是一个强大的工具,它不仅改变了我们管理代码的方式,还促进了团队协作和软件开发流程的优化。

2024-11-11 21:14:15 1096

原创 在Java中,什么时候应该使用自动装箱和拆箱?

在Java中,自动装箱和拆箱是非常方便的特性,它们允许基本数据类型和它们对应的包装类之间的无缝转换。

2024-11-08 14:39:09 831

原创 软件工程中的创建型设计模式:工厂方法模式与抽象工厂模式

抽象工厂模式则更为复杂,它提供了一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定它们的具体类。这种模式适用于对象族的创建,其中对象之间存在一定的依赖关系。设计模式是软件工程中的重要工具,它们帮助我们写出更加优雅、可维护和可扩展的代码。工厂方法模式和抽象工厂模式是创建型设计模式中的两个重要成员,它们在不同的场景下发挥着关键作用。理解这些模式的核心概念和应用场景,将有助于我们在面对复杂的对象创建问题时,做出更合理的设计决策。

2024-11-07 16:54:54 1544

原创 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?

在软件工程中,设计模式和代码结构的选择对于构建可维护、可扩展的系统至关重要。抽象类(Abstract Class)和接口(Interface)是两种核心的工具,确保代码的一致性和可重用性。本文将探讨这两种机制的异同,并拓展一些相关知识。

2024-11-06 15:40:55 621

原创 【Java SE语法】重载(overload)和重写(override)一样吗?它们的区别是什么?

重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。这里既然提到了里氏替换原则,那接下来就给大家补充一下面向对象设计的七大设计原则(同时也是软考中级软件设计师单一职责原则:要设计目的单一的类;开发——封闭原则:对扩展开发,对修改关闭;子类可以替换父类;依赖倒置原则:要依赖于抽象。

2024-11-05 19:53:33 562

原创 【Java SE语法】& 和 && 一样吗?它们的区别是什么?

&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为username!username.equals(""),二者的顺序不能交换,更不能用&运算符,逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的值才是 true。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

2024-11-03 09:05:29 413

原创 面向对象编程的核心特性:封装、继承、多态与抽象

备注:默认情况下面向对象有3大特性,封装、继承、多态,如果提及到4大特性,那么我们就把抽象加上去。

2024-11-02 21:00:00 547

原创 SpringBoot、Spring、SpringMVC三者之间的关系与区别

SpringBoot是一个脚手架,可以帮助我们快速地构建基于Spring的应用,通过“约定大于配置”的方式,帮助我们去简化了那些繁琐的配置,从而让我们能够开箱即用。那Spring呢,是一个框架,可以帮助我们管理项目当中所有的业务对象,通过IOC的方式将业务对象之间进行解耦。总的来说,Spring Boot 可以看作是 Spring 框架和 Spring MVC 的“开箱即用”版本,它集成了 Spring 的核心功能和 Spring MVC 的 Web 功能,并通过自动配置和起步依赖进一步简化了开发过程。

2024-11-02 16:28:17 1318

原创 【Java SE基础】深拷贝与浅拷贝

由上一节的内容可以得出如下结论:如果想要深拷贝一个对象,这个对象必须要实现Cloneable接口,实现clone方法,并且在clone方法内部,把该对象引用的其他对象也要clone一份,这就要求这个被引用的对象必须也要实现Cloneable接口并且实现clone方法。由于age是基本数据类型,那么对它的拷贝没有什么疑议,直接将一个4字节的整数值拷贝过来就行。根据原Person对象中的name指向的字符串对象创建一个新的相同的字符串对象,将这个新字符串对象的引用赋给新拷贝的Person对象的name字段。

2024-11-01 16:35:36 516

原创 【Java SE基础】如何理解clone对象?

分配完内存之后,再调用构造函数,来填充对象的各个域,这一步叫做对象的初始化,构造方法返回后,一个对象就创建完毕了,可以把他的引用(地址)发布到外部,在外部就可以使用这个引用来操作这个对象了。而clone在第一步和new是相似的,也是先分配内存,在调用clone()方法时,分配的内存和原对象(即调用clone方法的对象)相同,然后再使用原对象中对应的各个域,来填充新对象的域,填充完成之后,clone()方法返回,一个新的相同的对象被创建,同样可以把这个新对象的引用发布到外部。(对象在堆空间分配)

2024-11-01 10:13:50 1150

原创 SpringBoot的自动配置是如何实现的?

Spring Boot的自动配置是其核心特性之一,它允许开发者以最少的配置启动和运行Spring应用。这一特性主要通过和。开发者可以创建自己的自动配置类,通过在文件中添加对应的配置来实现。这允许开发者为特定的场景提供定制化的自动配置。

2024-10-31 10:56:48 1322

原创 SpringBoot最大的优势是什么?

在当今快节奏的软件开发世界中,效率和简洁性是至关重要的。Spring Boot,以其独特的优势和特性,为开发者提供了一种快速、简洁的方式来构建企业级应用程序。

2024-10-30 19:33:11 413

原创 Java 集合框架的基础接口有哪些?

Java集合框架提供了丰富的接口和类,使得我们能够根据不同的需求选择合适的数据结构。了解这些接口和它们的实现,能够帮助我们写出更高效、更优雅的代码。

2024-10-29 15:50:52 618

原创 Java集合框架中的泛型有什么优点?

泛型是Java语言中一种支持类型参数化的技术,它允许在编译时提供类型信息,从而使得代码更加灵活、可重用,并且类型安全。泛型的主要目的是允许开发者编写与数据类型无关的代码,同时又能保持操作数据的类型安全。在Java中,泛型被广泛应用于集合框架中,如ListSetMap等接口及其实现类。使用泛型可以避免在集合操作中进行类型转换,减少运行时错误。

2024-10-28 16:36:53 694

原创 Java 集合框架是什么?集合框架的优点有哪些?

它提供了一系列的接口和类,这些接口和类可以帮助我们以一种高效和标准化的方式存储、访问和操作数据集合。随着集合的广泛使用,Java1.2 提出了囊括所有集合接口、实现和算法的集合框架。集合框架中的类都是由经验丰富的开发者设计和实现的,它们经过了严格的测试,确保了性能和稳定性。集合框架提供了现成的、经过优化的数据结构,开发者可以直接使用这些数据结构,而不需要从头开始实现自己的集合类。:Java 5 引入了泛型,这使得集合可以指定它们可以存储的元素类型,从而提供了编译时类型安全,减少了类型转换的错误。

2024-10-27 09:02:08 1010

原创 二十三种设计模式之命令模式

命令模式是一种行为设计模式,它将操作封装成对象。这样做的好处是,我们可以根据不同的请求对客户进行参数化,对请求进行排队或记录日志,甚至支持撤销操作。简而言之,命令模式让我们能够以一致的方式处理各种请求。命令模式是一种强大且灵活的设计模式,它能够帮助我们构建更加健壮和可维护的软件系统。通过将操作封装成对象,我们能够以一致的方式处理各种请求,提高系统的可扩展性和可维护性。

2024-10-26 18:07:39 797

原创 排序算法在最坏情况下的性能差异:深入分析

插入排序:通过构建有序序列,对未排序数据进行插入。归并排序:采用分治法,将序列分成两半,分别排序后再合并。快速排序:同样采用分治法,通过一个基准元素将数据分为两部分,然后递归排序。堆排序:利用堆数据结构,通过构建最大堆或最小堆进行排序。排序算法的选择和优化是软件工程中的一个重要课题。了解不同排序算法在最坏情况下的性能差异,可以帮助我们在设计和实现系统时做出更合理的决策。通过适当的优化策略,我们可以提高算法的效率,确保系统在各种情况下都能保持良好的性能。

2024-10-24 18:49:30 666

原创 深入理解左值和右值:软件工程中的基本概念

左值,顾名思义,是指可以出现在赋值操作左侧的表达式。它代表了内存中的一个存储位置,这意味着左值可以被重新赋值。在C和C++中,左值通常与变量相关联,它们指向具体的内存地址。int a = 10;// 'a' 是一个左值,因为它指向一个具体的内存位置a = 20;// 'a' 可以被重新赋值在这个例子中,变量a就是一个左值,因为它指向了内存中的一个位置,并且这个位置可以被赋予新的值。与左值相对的是右值,它代表一个临时的、不可被重新赋值的表达式。右值通常出现在赋值操作的右侧,例如字面量、函数返回值等。

2024-10-22 19:13:17 611

原创 Spring Boot:如何实现JAR包的直接运行

Spring Boot是由Pivotal团队提供的,基于Spring框架的项目,它旨在简化Spring应用的创建和部署过程。它通过提供一系列的“Starters”来自动配置Spring和第三方库,从而让开发者能够以最少的配置启动和运行Spring应用。

2024-10-21 21:21:54 1397

原创 软件工程中的建造者模式:用于构建复杂对象

建造者模式是一种创建型设计模式,它允许你分步骤创建复杂对象,同时隐藏这些步骤的具体实现。这种模式特别适用于那些需要构建复杂对象,而这些对象的创建过程可能会变化的情况。

2024-10-21 20:04:31 526

原创 如何防止SpringBoot中的jar反编译?解决相关报错及踩到的坑

在单模块中使用此方案的话,还算是简单,但是如今的项目基本上都是多模块的,一个模块依赖多个公共的模块,这样的话,使用此方案就得不偿失了,不仅用起来比较麻烦,而且各模块之间的调用在是否混淆时也是极容易出错。最近要将项目部署到其它公司的服务器上,但是呢,又不想要将自己的源码给泄露出去,要求对正式环境的启动包进行安全性的处理,从而防止客户直接通过反编译工具将代码给反编译出来,这里有两个方案。这些工具可以通过重命名类、方法、变量等,删除注释和空格,代码优化等操作来达到混淆的效果,增加反编译的难度。

2024-10-20 20:41:09 2142 1

原创 jasypt的版本问题:从2.0升级为3.0版本会发生报错:Failed to bind properties under ‘spring.datasource.password……

由于昨晚写完一篇关于SpringBoot集成jasypt对敏感信息进行加密的文章后,又踩到坑啦。

2024-10-20 10:08:11 822

原创 SpringBoot配置文件敏感信息如何加密?及踩坑总结(全面讲解)

在软件开发中,保护敏感信息如数据库密码、API密钥等是至关重要的。Jasypt(Java Simplified Encryption)提供了一种简单而有效的方式来加密和解密这些敏感数据。在Spring Boot应用中集成Jasypt,不仅可以提高安全性,还能保持代码的整洁和可维护性。

2024-10-19 21:13:22 1338

原创 Spring Boot启动原理:餐厅运营的比喻

Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring的应用程序,通过提供一系列的“约定大于配置”的特性来简化Spring应用程序的创建和开发过程。

2024-10-19 09:14:30 945

原创 Java字符串处理:String、StringBuffer与StringBuilder详解

目录1. String:不可变的字符串2. StringBuffer:线程安全的可变字符串3. StringBuilder:非线程安全的可变字符串4. 拓展知识:字符串池5. 结论 在Java编程语言中,字符串处理是日常开发中最常见的任务之一。Java提供了三种主要的字符串处理类:、和。了解它们之间的区别和适用场景对于编写高效、可维护的代码至关重要。本文将深入探讨这三个类的异同,并提供一些实用的编程建议。类在Java中是不可变的,这意味着一旦创建了一个对象,它的内容就不能被改变。任何对对象的修

2024-10-18 20:37:10 819

原创 HTTP: GET vs POST

在软件工程领域,HTTP协议是构建Web应用的基石。GET和POST是HTTP请求中最常用的两种方法,它们在数据传输和服务器交互中扮演着关键角色。本文将深入探讨GET和POST请求的区别、设计原则,以及它们在实际Web开发中的应用案例。

2024-10-18 19:47:34 843

原创 Java中的反射机制,如何应用反射?

Java的反射机制是指在运行时获取类的结构信息(如方法、字段、构造函数),并操作对象的一种机制。反射机制提供了在运行时动态创建对象、调用方法、访问字段等功能,而无需在编译时知道这些类的具体信息。

2024-10-17 19:31:11 919

原创 MySQL查询优化:提升数据库性能

MySQL查询优化是一个涉及多个层面的复杂过程,需要我们从索引设计、查询语句编写、数据类型选择、服务器配置等多个角度进行综合考虑。通过不断学习和实践,我们可以逐渐掌握这门艺术,从而提升我们的数据库性能,为用户提供更快更好的服务。优化是一个持续的过程,随着数据量的增长和查询模式的变化,我们需要不断地回顾和调整我们的优化策略。

2024-10-17 18:58:27 1126

原创 Java中的hashCode()和equals()方法,它们与 == 操作符有什么区别?

或者。

2024-10-16 20:40:52 1676

原创 Java中的面向对象编程与面向过程编程:核心区别与实践应用

在软件工程领域,编程范式是构建软件的基石。Java,作为一种广泛使用的编程语言,以其面向对象的特性而闻名。然而,Java也支持面向过程的编程方式。在这篇文章中,我们将探讨Java中的面向对象编程(OOP)和面向过程编程(POP)的核心区别,并讨论它们在实际应用中的适用场景。

2024-10-16 16:24:59 551

原创 跨域问题及解决方案详解:同源策略与CORS机制

跨域问题在Web开发中非常常见,理解和掌握同源策略和CORS机制对于构建安全、可靠的Web应用至关重要。随着Web技术的不断发展,新的跨域解决方案也在不断出现,但安全性始终应该是我们考虑的首要因素。

2024-10-13 09:39:55 1309

原创 KMP算法:高效字符串匹配

KMP算法由Donald Knuth、Vaughan Pratt和James H. Morris在1977年提出,它通过预处理模式字符串来避免在不匹配时的无效回溯,从而大大提高了匹配的效率。KMP算法的核心思想是构建一个“部分匹配表”(也称为“前缀函数”或“最长公共前后缀表”),这个表记录了模式字符串中每个位置之前的子串的最长公共前后缀的长度。KMP算法以其高效的字符串匹配能力和简洁的实现,成为了软件工程领域中一个不可或缺的工具。

2024-10-12 19:14:51 788

原创 为什么5个字符至少需要3位二进制数表示?

在软件工程和计算机科学的许多领域,有效的数据表示是一项基础且关键的任务。二进制编码是其中一种核心方法,它影响着数据存储、传输和处理的效率。在本文中,我们将探讨为什么表示5个不同的字符至少需要3位二进制数,并拓展相关知识,以加深对数据表示和编码理论的理解。

2024-10-10 20:09:11 904

原创 理解汇编语言:从基础到应用

然而,对于想要深入了解计算机系统底层工作机制的软件工程师来说,掌握汇编语言是一项宝贵的技能。汇编语言是一种强大的工具,它为软件工程师提供了深入了解和控制计算机硬件的能力。虽然它的使用场景相对有限,但对于那些希望优化性能、开发操作系统或深入了解计算机工作原理的工程师来说,掌握汇编语言是非常有价值的。:每条指令由操作码和操作数组成,操作码定义了要执行的操作,操作数指定了操作的对象。:汇编语言与特定的硬件平台紧密相关,不同的CPU架构需要不同的汇编语言。:在资源受限的环境中,汇编语言可以帮助优化性能和内存使用。

2024-10-08 20:43:24 780

原创 为什么Java不支持多重继承?

菱形继承的问题在于,如果类A中有一个属性或方法,类B和类C都继承了这个属性或方法,那么类D将从B和C继承两次相同的属性或方法,这会导致数据冗余和潜在的歧义。类B和类C都继承自类A,然后类D继承自类B和类C。在Java8之前,对于接口,是无法定义具体方法实现的,所以即使有多个接口,必须子类自己去实现,所以并不会发生歧义。那么在Java8之后呢,就出了默认方法,但新问题出现了,此时不就又出现了多继承的菱形继承问题了吗?所以Java强制规定,如何多个接口内有相同的默认方法,子类必须重写这个方法。

2024-10-07 17:18:28 771

原创 一个月冲刺软考——病毒与木马的了解、认证与加密、加密技术的分类

其目的是阻止发送的报文被篡改。报文摘要是用来保证数据完整性的。传输的数据一旦被修改,那么计算出的摘要就不同,所以只要对比两次摘要就可确定数据是否被修改过。PKI(Public Key Infrastructure,公钥基础设施)是一种用于管理和保护密钥的系统,它使用公钥加密技术来安全地交换数据。PKI的核心是公钥和私钥的配对使用,其中公钥用于加密数据,私钥用于解密数据。这种机制广泛应用于互联网安全、电子邮件加密、电子签名等场景。证书颁发机构(CA):负责颁发和管理数字证书的机构。

2024-10-05 08:29:27 1145

原创 Spring Boot DevTools:如何关闭自动重启功能

Spring Boot DevTools是Spring Boot的一个开发工具,它能够加速开发和调试过程。自动重启:当代码发生变化时,自动重启应用程序。实时编辑:在某些情况下,支持类的热交换,无需重启。快速应用:通过跳过一些步骤来加速应用程序的启动。

2024-10-04 22:46:18 1572

原创 Java中参数传递:按值还是按引用?

Java 中的参数传递机制是一个复杂但有趣的话题。理解它是掌握 Java 编程的关键。基本数据类型是按值传递的,而对象引用是按引用传递的。这种机制确保了数据的安全性和灵活性。

2024-10-03 23:33:17 1140

空空如也

空空如也

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

TA关注的人

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