
Java
文章平均质量分 79
DevDiary
这个作者很懒,什么都没留下…
展开
-
Java 实现定长报文模拟器(支持配置文件 & 默认值)
未提供默认值,将自动生成随机值。\t 表示制表符,比如从excel编辑数据后粘贴到txt文件会带有制表符。,按字段顺序、名称、偏移量、长度、默认值读取。,如未提供则自动生成随机字符串。,可支持 JSON 配置、变长字段等。,如未提供,则自动填充随机值。,适用于大批量报文生成。(6位,自动填充随机值),确保格式符合规范。(FIX 协议) 📌。原创 2025-03-14 23:25:37 · 383 阅读 · 0 评论 -
Web应用安全笔记:一些常见漏洞及防护措施(Java Servlet)
启用调试功能是其中一种常见的配置错误,这些功能可能在开发或测试阶段很有用,但在生产环境中启用它们会带来严重的安全风险。在这个例子中,Servlet直接从请求中获取数据并进行反序列化,没有对数据的来源或安全性进行验证。由于开发过程中需要调试信息,可能在配置文件中启用了调试模式,例如显示JSP页面的详细错误信息或启用DEBUG级别的日志记录,这在生产环境中是非常危险的。确保在生产环境中禁用了所有调试功能,使用合适的日志级别(例如INFO或ERROR,而不是DEBUG),并配置应用服务器以仅显示通用的错误页面。原创 2024-08-17 23:51:13 · 1370 阅读 · 0 评论 -
JVM垃圾回收的普遍步骤
JVM 的垃圾回收过程包括标记、清除、压缩等阶段,结合分代回收机制来高效地管理内存。不同的垃圾收集器根据不同的需求和环境进行优化,以达到最佳的性能和最小的停顿时间。了解这些步骤和原理可以帮助开发者优化 Java 应用的性能和稳定性。原创 2024-06-14 23:02:07 · 538 阅读 · 0 评论 -
深入讲解Java线程中 wait 和 notify 的用法和原理
wait:使当前线程进入等待状态,释放对象的监视器锁。notify:唤醒一个在该对象上等待的线程。notifyAll:唤醒所有在该对象上等待的线程。同步块/同步方法waitnotify和notifyAll必须在同步块或同步方法中调用,因为它们需要当前线程持有对象的监视器锁。生产者-消费者模式:经典的wait和notify用例,展示了如何协调多个线程对共享资源的访问。原创 2024-06-14 18:07:25 · 546 阅读 · 0 评论 -
ArrayList 中几个关键部分的源码解析
成为一个非常灵活的数据结构,能够有效地管理内存,同时提供快速的索引访问能力。但它也说明了为什么在添加元素时可能会发生昂贵的数组复制操作,特别是当数组大小需要频繁调整时。扩容通常增加大约 50% 的容量,但具体的增加量取决于需要的最小容量。时,它首先检查数组是否足够大,如果不够大,它需要进行扩容。是如何在运行时根据需要动态调整其存储容量的。的核心是一个动态数组,实际上是一个可调整大小的数组。这段代码定义了数组的默认初始容量,并声明了一个对象数组。方法来确保数组有足够的容量。方法完成的,该方法再调用。原创 2024-05-12 18:53:14 · 285 阅读 · 0 评论 -
Java NIO&AIO
Java NIO(New Input/Output)和 AIO(Asynchronous Input/Output)都是Java平台上处理非阻塞I/O的技术,但它们在处理I/O操作的方式和实现机制上有着显著的差异。原创 2024-05-11 18:23:59 · 1057 阅读 · 0 评论 -
Java EE/Jakarta EE范畴一览
Servlet API 提供了一种强大的方式来创建动态 Web 应用程序,通过接收、处理 HTTP 请求和生成响应。它是 Java Web 开发的基石,其他很多 Java Web 技术和框架(如 Spring MVC、JSF)都是建立在 Servlet 的基础之上。允许在HTML页面中嵌入Java代码,用于动态生成Web内容。JavaServer Pages (JSP) 是一个帮助开发者创建动态生成的web页面的技术,它允许开发者将Java代码嵌入到HTML页面中。原创 2024-05-07 21:42:27 · 1716 阅读 · 0 评论 -
Java 中用于线程同步类CountDownLatch和CyclicBarrier的区别
和都是 Java 中用于线程同步的工具类,它们虽然在某些方面类似,但在用途和工作方式上有着明显的区别。原创 2024-05-02 21:33:37 · 526 阅读 · 1 评论 -
JVM对象锁的升级过程
在Java中,锁升级是一个动态过程,JVM根据运行时的线程竞争情况自动调整锁的状态。这个过程涵盖从偏向锁到轻量级锁,最后可能升级到重量级锁。下面详细解释每个步骤以及它们之间的转换机制。原创 2024-05-01 23:15:51 · 1007 阅读 · 1 评论 -
JVM(Java虚拟机)内存管理基础理论
Java虚拟机(JVM)在运行Java程序时组织内存的方式是通过设定几个特定的运行时数据区域来实现的。这些区域有各自独特的目的和生命周期,合理的管理和优化这些区域是提高Java应用性能的关键。原创 2024-04-15 16:21:00 · 1573 阅读 · 0 评论 -
如何进行JVM的调优
进行Java虚拟机(JVM)的调优是一项关键的工作,旨在优化JVM的性能,提高应用程序的响应速度和吞吐量,并确保系统的稳定运行。JVM调优通常涉及到调整堆大小、选择合适的垃圾收集器、监控运行时性能以及分析内存泄漏等方面。原创 2024-04-15 02:45:00 · 2371 阅读 · 0 评论 -
一篇文章深入学习Java的AQS(AbstractQueuedSynchronizer)
(简称AQS)是Java并发包中的一个基础框架,它为实现依赖单个原子变量来表示状态的同步器提供了可靠的基础。这个框架被广泛用于Java标准库中许多同步器的实现,例如Semaphore和等。AQS是实现定制同步器的强大工具,其设计抽象且功能强大,允许通过简单的方式来实现复杂的同步需求。通过学习和使用AQS,可以极大地扩展Java并发编程的能力,并深入理解并发控制机制。如果你需要更深入的理解AQS,阅读Oracle官方文档关于AQS部分将提供丰富的信息和示例,帮助你更好地理解和利用这一框架。原创 2024-04-13 15:38:19 · 1633 阅读 · 1 评论 -
简述Java中synchronized关键字的底层工作原理
的底层实现复杂且高效,通过锁的不同状态和锁升级机制,JVM可以在运行时根据具体情况调整同步策略,从而提供良好的性能和线程安全保障。原创 2024-04-12 23:56:04 · 450 阅读 · 0 评论