Java文件与IO
未读
Java 缓冲流:Java IO 的读写效率有了质的飞升
本文探讨了Java缓冲流对IO读写效率的提升。通过在内存中创建缓冲区,Java的BufferedInputStream和BufferedOutputStream实现了字节流的缓冲,而BufferedReader和BufferedWriter实现了字符流的缓冲。缓冲流减少了系统调用次数,降低了磁盘读写次数,提高了数据传输效率。实验表明,使用缓冲流进行大文件复制比普通流快得多。此外,还详细解释了字节缓冲流的工作原理,包括缓冲区的填充、数据的读取和写入,以及字符缓冲流的特有方法如readLine和newLine。
Java文件与IO
未读
Java 字节流:Java IO 的基石
Java文件与IO
未读
Java 字符流:Reader和Writer的故事
Java文件与IO
未读
解决中文乱码:字符编码全攻略 - ASCII、Unicode、UTF-8、GB2312详解
本文深入探讨了中文乱码问题及其解决方法。首先,文章解释了中文乱码的成因,即字符编码不一致或处理不当。接着,详细介绍了字符编码的基本概念,包括ASCII、Unicode、UTF-8和GB2312等编码方式。最后,文章提供了避免乱码的具体实践,如使用统一的字符编码UTF-8、明确指定字符编码、在HTML和XML文档中指定字符编码,以及确保数据库和第三方服务使用相同的字符编码。
Java集合框架
未读
Java File:IO 流的起点与终点
本文深入探讨了Java中`File`类及其相关操作。核心论点包括:`File`类用于文件和目录的抽象表示,提供创建、查找和删除等操作,但不直接操作文件内容;`File`类提供了多种构造方法来创建实例,并支持获取路径、判断文件属性、创建删除文件和目录等功能。文章还介绍了`RandomAccessFile`类,它允许随机访问文件,并提供了读写操作。此外,还简要介绍了Apache Commons IO库中的`FileUtils`类和Hutool工具包中的`FileUtil`类,它们提供了更丰富的文件操作方法。
Java文件与IO
未读
Java IO 知识体系
Java集合框架
未读
Java TreeMap详解从源码分析到实践应用
本文详细解析了Java中的TreeMap数据结构,重点介绍了其基于红黑树实现的特性,包括自然排序和自定义排序,以及TreeMap在获取最大最小键、范围查询等方面的优势。文章还对比了TreeMap、HashMap和LinkedHashMap的优缺点,为读者在选择合适的数据结构时提供了参考。
Java集合框架
未读
详解 Java 中的双端队列
本文介绍了Java中的双端队列(Deque),分析了其与栈(Stack)和队列(Queue)的关系,重点讲解了ArrayDeque的实现原理。指出ArrayDeque基于数组实现,性能优于LinkedList,且支持栈和队列操作,适用于任务队列、缓存、事件处理器等场景。此外,详细剖析了ArrayDeque的关键方法,如addFirst、addLast、pollFirst、pollLast等,并解释了其扩容策略。
Java集合框架
未读
Java 优先级队列PriorityQueue
本文介绍了Java中的PriorityQueue,一个基于优先级堆实现的优先队列,其在O(log n)时间复杂度内实现元素的插入和删除操作,并能自动维护元素的优先级顺序。文章通过示例展示了其基本用法,包括创建、添加元素、按优先级顺序取出元素等。此外,详细解析了PriorityQueue的内部机制,如元素大小的评判方式、完全二叉树结构、数组存储等。最后,剖析了PriorityQueue的方法,包括add()、offer()、element()、peek()、remove()和poll()等,并进行了详细的代码解释。总结来说,PriorityQueue是一种高效维护有序集合的数据结构,广泛应用于任务调度、事件处理等场景。
Java集合框架
未读
LinkedHashMap详解
本文详细解析了Java中的LinkedHashMap,指出其作为HashMap的子类,增加了维护插入顺序的功能。通过内部的双向链表结构,LinkedHashMap保持了元素的插入顺序,并可通过构造函数设置访问顺序。文章深入探讨了LinkedHashMap的实现原理,包括其重写的newNode方法以及维护链表顺序的linkNodeLast方法。此外,还介绍了LinkedHashMap如何实现LRU缓存机制,并总结了其相较于HashMap在插入和删除操作上的性能差异。