
java
文章平均质量分 84
wljslmz
网络技术联盟站是一个涵盖网络技术、网络安全、云计算、大数据、数据库、运维、弱电、前后端开发等多领域技术的平台,旨在分享优质干货,创造有内容、有深度的交流空间。为技术人员提供学习和交流的机会,帮助他们提升专业技能,解决实际工作中遇到的问题。
展开
-
Java如何对List进行排序?
如果List中存储的是自定义对象,那么可以通过实现Comparable接口来定义对象的比较规则,或者使用Comparator来提供自定义的比较器。示例:自定义对象的排序// 构造函数、getter和setter省略 @Override public int compareTo(Student other) {// 使用Collections.sort方法对包含Student对象的List进行排序 Collections . sort(students);原创 2024-07-01 13:48:17 · 1182 阅读 · 0 评论 -
Java中的不同Bean作用域
自定义作用域允许开发者根据特定需求创建新的作用域,提供更大的灵活性和控制。原创 2024-06-21 15:21:15 · 929 阅读 · 0 评论 -
Nginx如何反向代理后端服务?
反向代理是一种代理服务器,位于客户端与服务器之间。客户端将请求发送到反向代理服务器,反向代理服务器再将请求转发给后端的实际服务器,后端服务器处理请求后将响应发送回反向代理服务器,反向代理服务器再将响应返回给客户端。与正向代理不同的是,反向代理对客户端是透明的,客户端并不需要知道后端服务器的存在。Nginx作为反向代理服务器,具有高性能、灵活性和丰富的功能。通过合理的配置,Nginx可以实现负载均衡、提高安全性、缓存内容、支持SSL/TLS和HTTP2、处理WebSocket等多种功能。原创 2024-06-17 22:56:03 · 836 阅读 · 0 评论 -
如何在 Java 8 中创建和使用线程池?
可以使用类创建自定义线程池。该类提供了更多的配置选项,如核心线程数、最大线程数、空闲线程存活时间、任务队列等。i < 20;原创 2024-06-13 12:59:43 · 1168 阅读 · 0 评论 -
通过AOP记录操作日志:提升应用可追踪性与安全性的利器
AOP(Aspect-Oriented Programming)的原理基于在程序运行时动态横切关注点,以达到对关注点的统一管理和复用。它的核心思想是将横切关注点从业务逻辑中分离出来,通过切面(Aspect)来统一管理和实现这些关注点。通过本文的介绍,我们深入探讨了AOP在记录操作日志方面的使用案例,以及实现方式和最佳实践。AOP作为一种常用的编程范式,能够帮助我们实现各种与核心业务逻辑无关但又必需的功能,如日志记录、性能监控等。希望本文能够帮助读者更好地理解和应用AOP技术,提升应用的安全性和可追踪性。原创 2024-05-01 21:15:39 · 847 阅读 · 0 评论 -
Java中如何克隆一个对象?
要实现对象的深拷贝,可以自定义一个深拷贝方法,在该方法中递归复制对象中的所有引用类型成员变量所指向的对象。// 构造方法和getter/setter方法省略// 使用MyObject的拷贝构造方法在上面的示例中,我们定义了一个deepCopy()方法,通过手动复制每个引用类型成员变量所指向的对象来实现深拷贝。在Java中,对象克隆是一个重要的概念,它允许我们创建一个与原始对象具有相同状态的全新对象。本文介绍了两种常见的对象克隆方法:浅拷贝和深拷贝。原创 2024-04-21 20:14:27 · 2323 阅读 · 0 评论 -
什么是Java内部类,为什么使用它?
Java内部类是指定义在另一个类内部的类。内部类可以访问外部类的成员变量和方法,就像访问自己的成员一样。// 外部类成员变量和方法// 内部类成员变量和方法在上面的示例中,InnerClass就是定义在OuterClass内部的内部类。Java内部类是一种定义在另一个类内部的类,具有与外部类密切相关的特性,并可以访问外部类的成员变量和方法。根据内部类的位置和使用方式,可以将其分为成员内部类、静态内部类、局部内部类和匿名内部类等几种类型。原创 2024-04-21 20:13:56 · 657 阅读 · 0 评论 -
一文带你了解cookie、session、token区别
Cookie是由服务器发送到用户浏览器并保存在用户本地计算机上的小型数据片段。它通常用于跟踪和识别用户,以实现用户个性化的体验。HttpOnly;Secure在这个例子中,服务器发送了一个名为sessionid的Cookie给客户端。该Cookie包含了一个唯一标识符abc123,并设置了过期时间为。此外,还设置了HttpOnly和Secure标志,以增加安全性,确保该Cookie只能通过HTTP协议传输,而且只能在HTTPS连接中使用。Session是在服务器端保存的一种数据结构,用来跟踪用户的状态。原创 2024-04-16 10:19:11 · 600 阅读 · 0 评论 -
如何优雅地重构 Java 中的 if-else
在Java中优雅地重构if-else语句,我们可以采用多种方法,包括使用设计模式、映射表和函数式编程等。选择合适的重构方法取决于具体的场景和需求,但无论采用何种方法,重构的目的都是提高代码质量、可读性和可维护性,使得代码更加简洁优雅。原创 2024-04-15 09:44:27 · 917 阅读 · 0 评论 -
如何使用Docker中构建Java jar包,并且实现开启自启
这里假设你的应用程序将在容器内部的8080端口运行,并且你希望将容器的8080端口映射到主机的8080端口。这样就可以在Docker容器中成功构建和运行你的Java应用程序的JAR包了。这样,容器会在启动时自动启动,并且如果容器因任何原因停止,Docker也会自动重新启动它。这样,当你的系统启动时,Docker服务会自动启动,并且在Docker服务启动后,命令之前已经构建了你的Java应用程序的JAR包,并将其放置在适当的位置。是你希望给你的Docker镜像起的名称。这将使容器在后台以守护进程模式运行。原创 2024-04-03 17:57:18 · 650 阅读 · 0 评论 -
JAVA 中的字符串模板的基本用法,以及如何在代码中灵活应用它?
首先,需要定义一个字符串模板,其中通过符号来标记要插入的变量或表达式。在上述字符串模板中,$name和$day是要在生成字符串时替换的变量。原创 2024-03-12 11:46:49 · 1417 阅读 · 0 评论 -
Spring 和 Spring Boot 的区别
Spring和Spring Boot是Java开发领域中最为流行的两个框架之一。它们都由Spring团队开发和维护,目的是为了简化企业级Java应用的开发过程。然而,它们在设计理念和使用方式上存在一些显著的区别。Spring框架提供了丰富的模块和组件,允许开发者根据项目需求选择合适的组件,从而实现灵活的应用设计。Spring拥有庞大而成熟的生态系统,提供了各种工具和模块,适用于不同类型的企业级应用。传统的Spring项目可以通过手动配置实现对各个组件的细粒度控制,适用于特定需求的项目。原创 2024-02-13 13:17:54 · 3571 阅读 · 1 评论 -
Java和JavaScript区别与联系
Java是一种强大而多用途的编程语言,由Sun Microsystems在1995年首次发布。James Gosling和他的团队设计了Java,目的是为了创建一种能够跨平台运行的语言。Java程序可以在不同的操作系统上运行,只需在目标系统上安装Java虚拟机(JVM)。Java是一种纯粹的面向对象编程语言,所有的代码都必须写在类中。这种设计风格使得Java更加模块化和可维护。Java是一种静态类型语言,变量的类型在编译时就已经确定,这有助于提高代码的健壮性。原创 2024-02-11 14:13:31 · 941 阅读 · 0 评论 -
Spring Boot集成Netty-SocketIO
Netty-SocketIO是基于Netty的一个开源框架,用于构建实时、双向通信的应用。它基于SocketIO协议,为开发者提供了轻松构建实时Web应用的能力。在Spring Boot中集成Netty-SocketIO可以使得我们更方便地处理实时通信需求。在传统的Web应用中,基于HTTP的通信模式存在一定的限制,特别是在处理实时数据时。Netty-SocketIO通过提供全双工通信、实时事件处理等特性,使得开发者能够更容易地构建具有实时性要求的应用,例如在线聊天、协同编辑等。原创 2024-01-15 21:20:48 · 2474 阅读 · 0 评论 -
Java编程模型:VO,BO,PO,DO,DTO
Java编程模型中的VO,BO,PO,DO,DTO提供了一种结构化和组织代码的方法。通过合理运用这些概念,可以使代码更具可读性、可维护性和可扩展性。在实际项目中,根据需求和架构设计,合理选择和运用这些概念将有助于构建清晰、高效的Java应用程序。原创 2024-01-08 23:05:03 · 1121 阅读 · 0 评论 -
如何在SpringBoot集成mapstruct实现类型转换?一篇文章搞定!
MapStruct是一款用于生成Java bean映射代码的代码生成器。它通过使用注解处理器,在编译时生成映射代码,避免了手动编写重复且容易出错的映射逻辑。MapStruct的生成代码非常高效,接近手动编写的性能,同时提供了丰富的注解配置,支持灵活的映射规则。MapStruct使用@Mapper注解标识接口,通过在接口的抽象方法上添加@Mapping等注解来配置映射规则。MapStruct在编译时生成映射代码,消除了运行时的性能开销,同时提高了代码的类型安全性。原创 2023-12-25 11:16:21 · 3541 阅读 · 0 评论 -
如何在Spring Boot中优雅地重试调用第三方API?
现在,我们可以开始定义需要重试的方法了。在Spring Boot中,我们可以使用@Retryable注解来标记需要重试的方法。该注解可以应用于类级别或方法级别,具体取决于您的需求。// 调用第三方API的代码 } }// 调用第三方API的代码 } }// 调用第三方API的代码 } }// 调用第三方API的代码 } }Retryable;import org// 调用第三方API的代码 } }// 调用第三方API的代码 } }Service;@Service。原创 2023-12-21 17:33:01 · 486 阅读 · 0 评论 -
Java开发者的利器:深度解析Guava功能丰富的模块
在上述例子中,我们提供了一条自定义的错误消息,以便更好地描述发生的问题。这有助于在出现错误时更容易定位问题。Guava的类提供了多个方法,支持不同的前置条件检查,您可以根据具体情况选择合适的方法来保证代码的健壮性。Guava的集合库是对Java标准库集合的扩展和增强,提供了更多的功能和更丰富的操作。Guava引入了不可变集合的概念,这些集合在创建后不能被修改,确保了线程安全性和更好的性能。原创 2023-12-06 10:34:58 · 605 阅读 · 0 评论 -
资深Java开发者保姆级教你如何学习Java,如何在职场中脱颖而出?
根据权威机构statista的统计,2022年全球开发人员最常用的编程语言中,Java稳居前六宝座:JavaScrip:主要用于前端开发;HTML/CSS:主要用于前端开发;SQL:主要用于数据库开发;Python:主要用于机器学习、数据分析、脚本开发;TypeScript:主要用于前端开发;那么Java主要用于什么场景?答案是Web后端开发、安卓开发、大数据开发等,所以在Java的应用领域中,它的强大和社区生态仍然是其他语言无法比拟的。原创 2023-08-24 09:31:34 · 257 阅读 · 0 评论 -
什么是 Git 远程分支?如何从 GitHub 查看远程分支?
Git 中的分支是一个独立的、安全的、与主项目相分离的开发区域。分支允许开发人员开发和测试新的功能,修复错误,实验新的想法,并减少破坏代码库中稳定代码的风险。原创 2023-08-21 09:57:09 · 536 阅读 · 0 评论 -
Java中的JavaBean到底是个什么东东?为啥JavaBean体现出了Java重要特性
JavaBean 是一种用 Java 编程语言编写的可移植的、平台无关的模型,简单来说,它们不过是将多个对象封装在一个对象中的类,可以从多个地方访问对象,并包括几个元素,即构造函数、getter/setter 方法等。它由事件、方法、持久性、属性组成。软件开发的一个基本原则是“不要重复自己”,JavaBean 是一个可重用的软件组件,可以在 Java 应用程序的所有地方使用,遵循 DRY 原则。JavaBean 属性是对象的用户可以访问的命名属性,该属性可以是任何 Java 数据类型,包括您定义的类。原创 2023-08-18 10:42:47 · 157 阅读 · 0 评论 -
Java8流是什么?有哪些常用操作?
Java 流支持对元素流进行函数式操作,流是按某种顺序应用于数据的不可变函数集合的抽象,流不是可以存储元素的集合。流和结构之间最重要的区别是流不保存数据,例如,您不能指向流中存在特定元素的位置,您只能指定对该数据进行操作的函数,并且在对一个流进行操作时,会影响到原来的流。请注意,不要将本文中的流与 Java I/O 包中的流(如 InputStream、OutputStream 等)混淆。原创 2023-08-18 10:30:14 · 83 阅读 · 0 评论 -
Java中的异常处理是什么样的?
Java 中的异常处理是处理运行时错误以保持应用程序正常流程的有效手段之一,异常是不需要的或意外的事件,它发生在程序执行期间,即在运行时,它会扰乱程序指令的正常流程。程序可以捕获和处理异常。当方法中发生异常时,它会创建一个对象。该对象称为异常对象。它包含有关异常的信息,例如异常的名称和描述以及发生异常时程序的状态。出现异常的主要原因错误表示不可恢复的情况,例如 Java 虚拟机 (JVM) 内存耗尽、内存泄漏、堆栈溢出错误、库不兼容、无限递归等,错误通常是程序员无法控制的,我们不应该试图去处理错误.原创 2023-08-17 11:52:13 · 83 阅读 · 0 评论 -
这10个流行的Java框架,很强!
框架的核心是一组预制代码,优先考虑程序中的易用性和一般可重用性。框架通常包括多种类型的现成代码,如类、函数和 UI 组件,使开发人员能够进一步扩展 Java 的功能。适当的框架使开发人员能够创建可靠且健壮的应用程序,而无需编写和完善每一行代码。此外,许多开发人员使用 Java 测试框架来确保一致和可靠的测试结果。本文将给大家介绍 10 个最流行的 Java 框架。原创 2023-08-17 11:19:13 · 2327 阅读 · 0 评论 -
5分钟带您快速了解Java19新特性:虚拟线程,倍儿爽!
线程池引入的跨任务“线程共享”的想法可能有助于提高吞吐量,但与“每个请求一个线程”风格相比,它可能有明显的缺点。虚拟线程的目标是保持“thread-per-request”风格,使代码执行清晰并保持可理解的线程结构。作为Java程序员,大家都知道线程是后端应用的瓶颈,对于每个传入请求,都需要一个线程来处理该请求。一个 Java 线程对应一个操作系统线程,它们非常耗费资源,假如有成百上千万的线程同时工作,可见系统的负担得有多重。本文给大家介绍了java19的虚拟线程,主要内容有:为啥需要虚拟线程?原创 2023-08-09 18:44:27 · 271 阅读 · 0 评论 -
Java基础:变量(声明、赋值、引用)、基本数据类型、作用域
byteshortintlongfloatdoublecharboolean然后给大家介绍了final变量,一旦被声明为final变量,之后这个变量就不能再被修改值,最后给大家介绍了变量的作用域,同时用代码直观的演示了一下作用域的作用范围到底是怎样的。希望本文对您有所帮助,有任何问题欢迎在下方评论区与我讨论!原创 2023-08-09 18:38:11 · 970 阅读 · 0 评论 -
Java基础:如何编写并执行入门级别程序 Hello World
本文主要给大家介绍了如何编写入门程序“Hello World”,从编写到编译再到最后的执行,都给大家做了详细的介绍。希望本文对您有所帮助,有任何问题欢迎在下方评论区与我讨论!v。原创 2023-08-09 18:37:06 · 214 阅读 · 0 评论 -
Java基础:Linux环境下安装最新JDK19(CentOS7)
本文主要给大家介绍了如何在Linux安装JDK19,本文是以CentOS7为例,其实也适用于各个Linux发行版。希望本文对您有所帮助,有任何问题欢迎在下方评论区与我讨论!原创 2023-08-09 18:35:55 · 916 阅读 · 1 评论 -
Java基础:Windows环境下安装最新JDK
本文给大家详细介绍了JDK19如何在Windos上安装,以及安装的时候可能会有哪些坑,如何切换JDK版本。希望本文对您有所帮助,有任何问题欢迎在下方评论区与我讨论!原创 2023-08-09 18:35:13 · 721 阅读 · 0 评论 -
Java基础:Java 的工作原理和 Java 开发环境
本文给大家介绍了Java基础中的Java工作原理和 Java 开发环境,希望本文对您有所帮助,有任何问题欢迎在下方评论区与我讨论!原创 2023-08-09 09:31:12 · 232 阅读 · 0 评论 -
在Java中如何给List进行排序?这7种方法都可以轻松实现!
以上我介绍了7种列表排序的方法,在 Java 8 之前,我们使用 for-each 循环遍历 List 并打印列表的每个内容,Java 8以后就可以使用forEach() 方法对于lambdas的应用非常实用。从文中介绍的排序方法,可以看出在 Java 8 中使用 lambda 表达式对列表进行排序会使得代码简洁且富有表现力,希望大家在遇到排序场景的时候,多使用lambda 表达式。原创 2023-08-08 16:08:53 · 6799 阅读 · 0 评论 -
如何在 Rocky Linux 上安装 MinIO 存储?
最后,您通过 MinIO Web 管理仪表板创建存储桶和上传文件,了解了 MinIO 的基本用法,您还学习了如何安装 MinIO 客户端命令行及其基本用法,用于添加 MinIO 服务器、创建存储桶、检查存储桶上的列表文件以及将文件上传到特定存储桶。在本教程中,我们将引导您完成在 Rocky Linux 服务器上安装 MinIO 对象存储的过程,您还将使用 MinIO 创建一个新的对象存储,并配置 Linux 客户端机器来管理 MinIO 对象存储服务器。您还将拥有用于管理 MinIO 的客户端计算机。原创 2023-08-06 18:23:45 · 210 阅读 · 0 评论 -
还担心接口乱糟糟?快来试试“斯瓦格”在线文档管理平台!
本文将分享一款在线接口文档管理工具:“斯瓦格”,同时我将用华为AppCloud进行搭建,每一步都会记录下来,如果你想了解一下“斯瓦格”和AppCloud搭建过程,希望你好好看看本文,让我们直接开始。在此页面,你可以简单了解一下“斯瓦格”基本知识、所用技术、支持的环境以及“斯瓦格”的预览图。原创 2023-08-06 18:22:48 · 190 阅读 · 0 评论 -
JVM是什么?Java程序为啥需要运行在JVM中?
确保.class文件的正确性,即检查该文件是否正确格式化并由有效的编译器生成,如果验证失败,我们会得到运行时异常java.lang.VerifyError,此活动由组件 ByteCodeVerifier 完成,一旦这个活动完成,那么类文件就可以编译了。Java 的特别之处在于,它结合了编译和解释,因此,在 Java 中,源代码首先被编译为带有字节码的类文件,然后这个类文件用解释器或 JIT 编译器执行。:在堆区,保存所有对象的信息,每个 Java 虚拟机还有一个堆区,它也被认为是共享的资源。原创 2023-08-05 12:10:57 · 201 阅读 · 0 评论 -
一文带你入门微服务,通俗易懂
但是,在正确配置的基于微服务的应用程序中,面临停机的功能应该能够将流量重新路由到自身之外,同时允许其连接的服务继续运行,通过监控微服务并在出现故障时尽快恢复它们,也很容易降低中断风险。使用微服务架构构建的应用程序失败并不容易,当然,个别服务可能会失败,这无疑会影响运营,毕竟,在微服务环境中,众多不同且独特的服务相互通信以进行操作,并且在某些时候必然会发生故障。风格,应用程序被划分为更小的、流程驱动的服务,这些服务松散耦合、可独立部署,并且能够通过定义良好的 API 进行通信,这些服务是为业务功能而构建的。原创 2023-08-02 16:21:01 · 74 阅读 · 0 评论 -
最火的物联网技术MQTT,其服务质量QoS的三个级别分别是什么意思,本文一定对您有帮助!
如果你不知道怎么理解主题,那你就把主题看作是一个通道或者你就把其中一个主题看成我的公众号【网络技术联盟站】,在看文章的你,微信中关注的公众号肯定是有限的,你作为订阅者,我是作者,所以相当于是消息的发布者,而微信服务器相当于是Broker,我觉得这个概念你是理解的吧?MQTT 定义了三个级别的服务质量,也就是QoS,这三种级别分别代表什么意思,估计很多使用MQTT的小伙伴没太关注,有时候你遇到问题了,特别是那种诡异的问题,更不会朝这个上面想,今天瑞哥就带大家详细的了解一下MQTT的QoS,让我们直接开始!原创 2023-08-01 16:07:15 · 666 阅读 · 0 评论 -
Java中的自旋锁和适应性自旋锁是什么意思?其分类依据是啥?
我们知道在多线程的情景下,多个线程去访问资源的时候,操作系统不是说真的在同一时刻去让多个线程同时操作某个资源,这个是不现实的,一般都是控制线程的处理时间点,然后频繁的切换线程,只是说这种切换时间对于我们来说极其的短,几乎感知不到,但是对于操作系统来说就显得很重要了。废话,线程没有被阻塞我自旋它干啥,所以当资源访问失败,即被锁住的时候,需不需要阻塞就成了判断依据了,不需要阻塞,那就是自旋锁,假如还能自行判断自旋次数的,那么就是适应性自旋锁,是不是很简单?这里大家一定很奇怪,既然有自旋锁,不应该有非自旋锁吗?原创 2023-07-30 22:14:20 · 156 阅读 · 0 评论 -
Java中的悲观锁和乐观锁是什么意思?其分类依据是啥?
相信很多Java开发的朋友都会被java中的各种锁所迷惑,你是不是经常听到“可重入锁”、“互斥锁”、“轻量级锁”等关键词,其实Java中的锁的分类很多,不过这种分类都是针对场景的,好多人分不清或者记不住,是因为不知道这些锁为啥是这样的分类,本文瑞哥就用简洁的语言带大家走入Java中的锁,让我们直接开始!乐观锁,字面意思“乐观”,想象一下生活中那些乐观的人,他们总是将事情想的很顺利,对什么事情都是往好的方向想,一般都是这样:管他呢,啥后果不后果的,万一成功了呢,先干再说。2.4 悲观锁和乐观锁的使用场景。原创 2023-07-30 22:13:25 · 74 阅读 · 0 评论 -
Java中Interface天天都在写,你知道其背后的原理是什么吗?
如果我们需要在接口中添加一个新方法,可以在接口中添加方法而无需实现,但是这个不太现实,因为你一旦在接口中定义了一个新的方法,那么所有实现这个接口的实现类必须要重写这个新的方法,这肯定不是我们想要的结果。接口是java中非常重要也是很常用的,本文介绍了接口的定义、优缺点、使用,还有java8新引入的概念:默认方法、静态方法,希望本文对您学习接口有所帮助,有任何问题,欢迎在下方评论区与我讨论。Java 接口是方法名称的集合,只是名称,没有函数体,这些函数是作为接口定义的工作的一部分执行的。本文一一给大家介绍。原创 2023-07-30 22:07:32 · 158 阅读 · 0 评论 -
Java中只有8大数据类型吗?看了本文,你会收获颇丰
Java中最重要的、最基础的概念就是数据类型了,除了8大基本数据类型外,还有一些引用类型,本文简单的介绍了Java中的数据类型,希望对您有所帮助,有任何疑问,欢迎在下方评论区与我讨论。非原始数据类型不能将变量的值直接存储在内存中,存储的是变量的内存地址,非原始数据类型是用户定义的可以赋值为 null。long占用64位,取值范围为-2^63到2^63 -1,默认值为 0L,long以“L”或“l”结尾。在数据类型后面加上 [] 来声明,数组中的变量是有序的,每个变量都有一个从 0 开始的索引。原创 2023-07-30 22:06:09 · 90 阅读 · 0 评论