- 博客(338)
- 资源 (13)
- 收藏
- 关注
原创 Java NIO(一):认识NIO
本文介绍了Java NIO的核心概念与应用场景。NIO通过缓冲区、通道和选择器三大组件,解决了传统IO在高并发和大数据量传输时的性能瓶颈。文章对比了BIO与NIO的差异,详细解析了Buffer的工作原理和Channel类型,并举例说明了Selector在多路复用中的优势。通过文件拷贝的代码示例展示了NIO的实际应用,同时从直接内存和零拷贝两方面解释了NIO的性能优势。最后指出BIO适用于简单场景,而NIO更适合高并发网络应用,并建议网络编程优先使用Netty框架而非原生NIO。全文系统性地阐述了NIO的核心
2025-12-06 22:48:00
1027
原创 Java IO(九):RandomAccessFile使用
Java中的RandomAccessFile可以让我们像操作数组一样操作文件,核心在于seek()方法可以移动文件指针。
2025-12-04 22:55:47
718
原创 Java IO(八):DataInputStream和DataOutputStream的使用
DataInputStream 和 DataOutputStream 的使用场景核心在于需要把数据以固定的二进制表示方式写入或读取,便于高效、简单地进行二进制文件存储或跨语言的数据交换。它们提供了对基本数据类型的直接读写方法,减少手动字节处理的工作量,同时要求写入与读取端保持一致的顺序与类型约定。
2025-12-01 13:53:57
644
原创 Java IO(七):ByteArrayOutputStream的使用
ByteArrayOutputStream 是一个强大的工具,可以在内存中高效地处理字节数据。它适用于需要动态收集字节流的场景,如数据传输、文件生成等。
2025-11-30 20:57:45
572
原创 Java IO(五):FileWriter使用
通过FileWriter可以写入字符、字符串、多行字符串,结合BufferedWriter还可以提高文本的写入效率。而且在上面的示例中还可以看到,写入过程非常直观。
2025-11-25 20:54:18
683
原创 Java IO(六):ByteArrayInputStream的使用
ByteArrayInputStream允许开发者将字节数组作为输入流来读取,严格来说,ByteArrayInputStream不需要关闭,因为它不持有系统资源,但为了良好的编程习惯,建议还是关闭它。
2025-11-09 22:27:01
765
原创 Java IO(四):FileOutputStream使用
FileOutputStream适用于写入任意二进制数据,如图片、音频、文件内容备份,也可以用于写入简单文本,但写入文本更推荐使用FileWriter。
2025-11-03 23:05:58
428
原创 Java IO(三):使用FileReader读取文本的方式
介绍了FileReader中两个读取字符的方法,另外,结合BufferedReader可以实现逐行读取字符的功能。
2025-10-31 22:04:09
754
原创 MyBatis-Plus(八):注释中含#{}占位符导致预编译异常
MyBatis的#{}占位符预编译机制虽然是SQL安全的基石,但其对注释内容没有区分识别的设计导致了意外的参数绑定异常。在实际开发中,养成规范的注释习惯,避免注释内写参数占位符,是解决该问题的关键。
2025-10-25 13:49:13
805
原创 Spring Boot2.x教程:(二十)非Spring容器管理的类读取配置文件中属性的问题
Spring技术栈为开发者提供了便利的访问配置的方式,比如使用@Value注解,但是在非Spring管理的类中无法使用这些注解,即便如此Spring依然预留了获取application.yml中属性的方式。
2025-10-22 12:53:11
808
原创 Spark(1):不依赖Hadoop搭建Spark环境
如果暂时没有Hadoop环境,又想使用Spark,Spark提供了Local模式、Local Cluster模式、Standalone三种模式,这三种模式允许开发者在不使用Hadoop的情况也能搭建Spark环境。
2025-09-14 23:57:10
1405
原创 Python(四):函数的定义与调用
Python函数是编程中重要的代码组织单元,通过定义和调用函数,可以实现高效的代码复用和逻辑分离,参数与匿名函数的灵活使用大大提升了编程的简洁性和表达力。正确理解和使用函数,是掌握Python编程的基础
2025-09-05 13:34:49
941
原创 Python(三):变量与数据类型
Python中的变量无需声明类型,类型随赋值动态确定。丰富的数据类型支持多样化的数据存储和操作,二进制类型适合处理非文本文件和数据流,NoneType表示缺失或无值状态。
2025-08-25 23:07:58
668
原创 Spring Boot2.x教程:(十九)入参校验
Spring Boot通过注解校验简化了数据有效性验证。使用时需引入 spring-boot-starter-validation 依赖(2.3及以后版本),它整合了hibernate-validator和validation-api。
2025-08-25 23:06:57
826
原创 Python(二):MacBook安装 Python并运行第一个 Python 程序
MacBook 上搭建了 Python 开发环境,并运行了第一个 Python 程序,接下来可以继续探索Python的语法以及丰富的生态系统。
2025-08-13 23:48:23
1171
1
原创 MacBook安装Maven
本文以apache-maven-3.9.10-bin.tar.gz为例,介绍了在Mac上手动安装Maven的步骤。
2025-06-12 23:45:00
2022
原创 MyBatis-Plus(七):<where>带你告别where 1=1的旧时代
MyBatis 的 <where> 标签提供了一种更加优雅、安全和高效的方式来构建动态 WHERE 子句。
2025-06-06 21:30:00
662
原创 MyBatis-Plus(六):SQL结果重复字段合并与一对多映射
通过resultMap和collection标签,可以轻松实现SQL查询中重复字段的合并和一对多数据的List映射。这种方式不仅代码简洁,且符合面向对象设计,极大提升开发效率和代码维可维护性。
2025-05-06 12:57:28
925
原创 Docker(六):告别系统盘空间不足修改数据存储位置
在更改存储路径之前,建议备份重要的Docker数据,确保新存储目录有足够的空间,并且具有正确的权限。
2025-04-29 12:23:46
722
原创 Docker(五):CentOS7离线安装Docker、Docker Compose
离线服务器安装Docker、Docker Compose不用愁,本篇就给你提供思路,介绍它们的安装与使用,为深入学习容器化技术打下坚实基础。
2025-04-17 18:00:00
1760
原创 Java并发编程(十八):线程安全的单例模式
Java中实现线程安全的单例模式有多种方法,每种方法都有其优缺点。在选择实现方式时,需要根据具体的需求和场景来决定。
2025-03-23 08:30:00
397
原创 Java String(二):字符串操作编译期优化剖析
了解 Java 字符串编译期优化的条件、原理以及不进行优化的情况,有助于我们编写更高效的代码,提升程序的性能和内存使用效率。在实际开发中,我们应尽量利用编译期优化的特性,避免不必要的运行时开销。
2025-03-22 21:55:56
1259
原创 Java String(一):intern()方法深度解析
Java6及以前,intern()方法在常量池不存在对应字符串时,会在方法区复制新的字符串对象。java7及以后,intern()方法在常量池不存在对应字符串时,会将堆中字符串对应的引用添加到常量池。
2025-03-20 09:46:18
641
原创 Spring Boot2.x教程:(十八)与MyBatis-Plus结合实现事务管理
Spring Boot 结合 MyBatis-Plus 实现事务管理,先阐述事务概念及 Spring 引入事务管理的原因。接着通过转账案例,从创建库表、配置 pom 文件到编写各层代码展示完整实现过程,还提及测试示例及异常回滚情况,最后说明事务相关注意事项及 @EnableTransactionManagement 注解的使用情形
2025-03-18 18:45:00
1479
原创 docker(四):search与pull命令的行为差异
理解docker search和docker pull的行为差异对于高效使用Docker至关重要。
2025-03-05 22:27:58
583
原创 PostgreSQL(四):代码层面解决pg共享内存报错问题
前端在打开页面时一次性请求这些接口,导致 PostgreSQL 数据库报错,提示无法调整共享内存段大小,原因是设备空间不足。由于数据库由统一管理,修改相关参数难以推进,只能从代码层面寻找解决方案。
2025-02-20 14:30:00
1190
原创 Java IO(一): Java 中的 IO
Java IO 为开发者提供了强大而灵活的数据处理能力,深入理解和掌握 Java IO 对于编写高效、可靠的 Java 程序至关重要
2025-02-19 21:00:00
907
原创 postgresql(三):巧用 array_agg 保留明细数据解决分组查询重复计数问题
为解决该问题,建议使用 array_agg 函数在分组时保留明细数据,如此在第二次聚合数据时,可将明细数据合并并去重,从而得到准确的机构数。
2025-02-18 18:00:00
1298
原创 RabbitMQ(一):分布式系统中的消息队列解决方案
RabbitMQ 是一种强大的消息队列解决方案,能够帮助系统实现高效的解耦、弹性伸缩和可靠的消息传递。通过合理地使用 RabbitMQ,开发者可以构建出更具弹性和可靠性的分布式系统。
2025-01-22 18:30:00
1033
原创 Java并发编程(十七):死锁
本文围绕 Java 死锁展开,介绍其概念为多线程争资源致互相等待,阐述产生死锁的互斥、请求与保持、不可剥夺、循环等待四个条件,并给出示例。还详述预防死锁方法,如锁顺序一致、用 tryLock 设置超时机制及减少锁持有时间,且分别展示了相应的代码改造示例以有效避免死锁情况。
2025-01-03 14:30:00
1880
原创 MySQL(七):前缀索引及PostgreSQL中类似功能实现
阐述了 MySQL 中创建索引时指定列字符长度(length)的语法及作用,如节省空间、提高性能等,还提及不指定 length 的情况。同时,指出 PostgreSQL 虽无直接 “前缀索引” 概念,但可通过表达式索引等变通方法,利用函数对字符串前缀创建索引来实现类似功能。
2025-01-02 17:22:38
678
原创 Java并发编程(十六):synchronized公平吗
synchronized作为Java中的内置同步机制,其默认实现为非公平锁。这一设计基于性能考虑和避免饥饿现象,是多线程编程中的一种折中方案。在大多数场景下,其性能优势足以弥补不公平性带来的潜在问题。然而,在需要严格控制执行顺序和资源分配的场合,使用ReentrantLock等其他工具可能更为合适。
2025-01-01 18:30:15
650
原创 Java并发编程(十五):读操作是否需要加锁的考虑因素
在多线程环境中,即使是读取操作,也需要通过适当的同步机制(如读写锁)来确保数据的一致性和安全性。ReentrantReadWriteLock 提供了一种高效的方式来处理这种情况,允许多个线程并发读取,同时保证在写入时的独占性。因此,虽然读取操作本身不修改数据,但在并发环境中,为了确保数据的一致性和完整性,仍然需要获取适当的锁。
2024-12-30 13:36:36
636
1
原创 Java并发编程(十四):JDK1.8中的StampedLock
StampedLock是一种灵活且高效的同步机制,特别适合于读多写少的场景。通过结合乐观和悲观策略,它能够有效地提高并发性能,同时避免传统读写锁可能出现的问题,如写饥饿等。在设计多线程程序时,合理运用StampedLock可以显著提升程序效率。
2024-12-29 20:48:02
698
原创 Java并发编程(十三):显式锁之ReentrantLock与ReentrantReadWriteLock
本文介绍了 Java 中的显式锁,包括 ReentrantLock 与 ReentrantReadWriteLock。对比了显式锁和 synchronized 的不同,阐述了 ReentrantLock 的特点、使用示例及优势,还介绍了公平锁和非公平锁的区别,最后详细讲解了 ReentrantReadWriteLock 的读写锁机制、使用场景及示例,对多线程同步机制进行了全面阐释。
2024-12-28 11:30:00
1181
原创 Spring Boot2.x教程:(十七)从奶茶店说起:轻松理解Spring Boot的Service默认单例与多线程
Spring Boot中的Service采用单例模式是一种优秀的设计,因为它可以做到节省系统资源、提高性能、方便共享状态、便于资源复用,关键是要正确处理线程安全问题,区分好什么资源可以共享,什么数据需要隔离。就像一个高效的奶茶店,一个制作间可以供多个店员使用,但每个店员都要管理好自己的订单,不能混乱。
2024-12-26 22:15:00
934
mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
2021-11-28
mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar
2021-11-28
commons-collections4-4.4-bin.zip
2020-06-07
jenkins.war
2021-06-12
jd_gui_windows_1.6.6.zip
2020-04-30
jetty-distribution-9.4.28.v20200408.zip
2020-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅