- 博客(20)
- 收藏
- 关注
原创 IO、存储、硬盘、文件系统相关常识
本文介绍了计算机输入输出(IO)和存储技术的基本概念。IO涉及数据在计算机与外部设备间的传递,包括流的概念和Java中的字节流与字符流。存储技术包括机械硬盘、固态硬盘、光盘和磁带等,各有其工作原理和优缺点。文章还提到了存储管理的重要性以及存储技术的发展趋势。最后,讨论了文件系统的基本概念,包括文件类型、路径、属性、访问权限、操作、格式和编码等。这些基础知识对于理解计算机数据处理和存储机制至关重要。
2025-05-13 19:29:08
942
原创 文件操作: File 类的用法和 InputStream, OutputStream 的用法
本文介绍了Java中File类的基本操作和文件读写方法。首先,File类用于抽象描述文件或目录,提供了获取文件属性、路径、创建、删除、重命名等操作的方法。接着,文章详细讲解了文件的基本操作,包括字节流(InputStream和OutputStream)和字符流(Reader和Writer)的使用。字节流以字节为单位进行读写,适用于二进制文件;字符流以字符为单位,适用于文本文件。通过示例代码展示了如何读取和写入文件,并强调了文件操作中的资源管理(如close方法)的重要性。
2025-05-13 18:55:39
1007
原创 UDP 报文结构与注意事项总结
用户数据报协议(User Datagram Protocol, UDP)是一种简单、无连接的传输层协议,适用于那些对实时性要求较高而对可靠性要求较低的应用场景。总之,UDP以其简洁高效的特点,在特定应用场景下发挥着重要作用。然而,正是由于它的这些特性,在使用UDP时也需要特别注意上述提到的各个方面,确保应用既能够充分利用UDP的优点,又能有效地规避其带来的风险。
2025-04-28 20:25:43
546
原创 HashTable、HashMap 和 ConcurrentHashMap 之间的区别
HashTable:线程安全,但性能较差,已逐渐被淘汰,建议仅在需要兼容旧代码时使用。HashMap:非线程安全,性能优异,适用于单线程环境。:线程安全,性能优越,适用于高并发场景。通过理解这三种集合的区别,我们可以根据实际需求选择合适的工具,从而提升程序的性能和可靠性。
2025-04-27 09:26:21
1023
原创 深入理解 Java 中的 synchronized 关键字
目录1.基本概念什么是 synchronized? 可重入性2. 使用场景2.1 实例方法同步2.2 静态方法同步 2.3 代码块同步 3.锁机制3.1 对象锁 vs 类锁3.2 锁升级机制 3.3 自适应自旋锁自旋锁自适应自旋锁3.4 锁消除与锁粗化4.注意事项 4.1 避免过度同步4.2 理解锁的升级过程4.3 注意死锁问题4.4 考虑使用更高级别的并发工具在多线程编程中,确保数据的一致性和正确性是至关重要的。Java 提供了多种机制来实现这一点,其中最基础和常用的便是 关键字。本文将详细介绍 的各
2025-04-20 18:24:05
1314
原创 深入理解线程池
线程池(Thread Pool)是一种设计模式,它通过预先创建并维护一组可重用的线程来执行任务。这些线程被集中管理在一个池中,当有任务需要执行时,线程池会从池中分配一个空闲线程来处理任务,而不是为每个任务都创建新的线程。任务完成后,线程不会被销毁,而是返回到池中等待下一个任务。
2025-04-16 15:43:03
935
原创 Java 定时器的全面解析(Timer)
定时器是一种用于在指定时间或以固定间隔执行任务的工具。为什么需要定时器?提高代码效率和可维护性。实现自动化任务调度。被调度的任务可以按照指定时间执行;一个定时器可以调度多个任务,并按照最初约定的时间执行它们。1.被调度的任务可以按照指定时间执行要实现第一个条件,我们可以创建一个扫描线程来扫描任务列表,检查每个任务是否到达指定的执行时间。如果任务到达了预定的执行时间,就执行相应的代码;如果没有达到预定的执行时间,就不执行任务。2.一个定时器可以调度多个任务,并按照最初约定的时间执行它们。
2025-04-10 21:32:26
832
原创 线程安全问题的原因与解决方案总结
线程安全是指一个代码段或方法能够在多线程环境下正确地工作,即当多个线程同时访问共享资源(如变量、数据结构等)时,不会导致数据不一致或其他异常行为。具体来说,如果一段代码在被多个线程并发执行时,能够保证程序状态的一致性,避免出现竞态条件、死锁、数据损坏等问题,那么这段代码就是线程安全的。
2025-04-08 20:59:58
866
原创 Java 线程的几种状态及其切换条件
在 Java 中,线程是操作系统调度的基本单位。为了更好地理解线程的行为和生命周期,Java 定义了 6 种线程状态,这些状态由枚举类表示。本文将详细介绍每种状态的含义以及状态之间的切换条件。
2025-04-06 20:48:35
796
原创 Java 多线程编程:Thread 类的基本用法总结
在 Java 中,多线程编程是实现并发执行的重要手段。Thread类是 Java 提供的一个核心类,用于创建和管理线程。本文将总结Thread类的基本用法,并通过示例代码帮助读者掌握其核心功能。
2025-04-06 16:56:44
992
原创 进程与线程的区别与联系
进程是操作系统资源分配的基本单位,它代表了一个正在运行的程序实例。每个进程都有独立的地址空间、内存、文件句柄等资源。进程之间的资源是隔离的,相互之间不能直接访问。线程是CPU调度的基本单位,它是进程中的一个执行实体。一个进程可以包含多个线程,这些线程共享进程的资源(如内存、文件等),但每个线程拥有独立的寄存器、栈和程序计数器。
2025-04-05 21:31:29
1013
原创 进程调度的基本过程总结
进程调度是指操作系统根据某种策略选择一个就绪状态的进程,并分配CPU资源给它执行的过程。它是多任务操作系统的核心功能之一。进程调度是操作系统实现多任务处理的关键机制,其核心目标是合理分配CPU资源,提升系统的整体性能。调度的基本过程包括进程状态管理、调度时机判断、选择合适进程、上下文切换以及动态监控调整。在实际应用中,调度算法的选择需要根据具体需求进行权衡,以实现高效、公平和响应迅速的系统运行。通过对进程调度的理解,我们可以更好地优化系统性能,设计出更加高效的多任务环境。
2025-04-05 21:09:19
964
原创 深入理解HashMap
HashMap是Java中一个强大且高效的集合类,用于快速查找和存储键值对。理解其工作原理和常用操作对于提高编程效率和解决复杂问题非常有帮助。
2025-04-04 17:11:17
1123
原创 HashSet知识总结:高效无序集合
本文探讨了 Java 中的HashSet集合,涵盖了其核心概念、创建与初始化方法、基础操作流程、多种遍历手段、性能考量及使用时的注意事项,并提供了相应的示例代码。作为一款广泛使用的集合类,
2025-04-01 11:32:03
1235
原创 TreeMap中的常用方法详解
TreeMap 是 Java 集合框架 (java.util 包) 中的一个类,用于存储键值对 (Key-Value Pair) 的集合。它是基于红黑树(Red-Black Tree)数据结构实现的,能够自动根据键的自然顺序或者通过提供的比较器(Comparator)对键进行排序。由于其底层使用了自平衡二叉搜索树,TreeMap 提供了高效的插入、删除和查找操作,时间复杂度为 O(log n)。TreeMap 是 Java 集合框架中一个功能强大且高效的工具,适用于需要有序存储和访问键值对的场景。
2025-03-31 10:40:22
1322
原创 一文搞懂 Java TreeSet:特性、用法与示例
TreeSet是 Java 集合框架中一个强大的工具,特别适合需要保持元素有序且不允许重复的场景。通过理解其核心特性和灵活运用,你可以有效地管理和操作数据集,提高程序效率和可维护性。希望这篇文章能帮助你更好地掌握TreeSet的使用。
2025-03-27 22:05:29
451
原创 Java 数据结构篇-深入了解排序算法(动态图 + 实现七种基本排序算法)
排序是指将一组记录按照其中的一个或多个关键字的大小,以递增或递减的顺序进行排列的过程。换句话说,排序的目标是通过某种算法处理,使得数据集中的元素根据特定的标准有序化。例如,在一个数字列表中,可以通过排序使其按数值从小到大(升序)或者从大到小(降序)排列;对于包含复杂对象的集合,则可以根据对象的某个属性进行排序。在讨论排序算法时,“稳定性”是一个重要的概念。如果在一个待排序的记录序列中存在多个具有相同关键字的记录,那么一个排序算法被称为稳定的,当且仅当这些记录在排序前后的相对次序保持不变。
2025-03-26 21:01:38
1450
原创 JAVA中的栈和队列
理解栈和队列之间的差异及其各自适用的最佳实践,可以帮助开发者更有效地设计并优化程序,以满足特定需求和提高性能。正确选用合适的数据结构对于解决实际问题至关重要。
2025-03-24 22:22:20
628
原创 深入解析:ArrayList vs LinkedList - 如何选择最适合你的数据结构?
本文旨在通过详细比较ArrayList和LinkedList这两种常用的数据结构,帮助开发者在实际应用中做出更合适的选择。理解它们的区别对于优化性能、提高效率和减少资源浪费至关重要。
2025-03-16 17:09:36
1186
原创 用Java实现图书管理系统(控制台版)
经过对Java SE多方面的学习,对Java的基本语法也有了相当的了解。接下来,为了更好地巩固和应用这些知识,我们可以进行一个全面的实战练习。这个练习将会编写一段完整的代码,其中会涉及到接口的使用、继承机制以及其他重要的面向对象编程概念。通过这样的实践,能够帮助我们更深入地理解并记忆这部分内容。
2025-03-03 17:54:50
844
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人