随笔分类 - Java库
摘要:1、什么是Socket? 本节内容参考: TCP编程 - ShineLe - 博客园 Socket究竟是干什么的?_一人亦世界~*~的博客-CSDN博客 什么是Socket,为什么要用Socket_这个心歪了的博客-CSDN博客 TCP/IP五层标准网络架构分为:应用层、传输层、网络层、数据链路层、
阅读全文
摘要:在开发网络应用程序时,我们会遇到Socket这个概念,它是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据传输到网络: Socket、TCP和部分IP的功能都是由OS提供的,不同的编程语言只是提供了对OS调用的简单封装。例如,Java提供
阅读全文
摘要:说明 Reader、Writer是字符流,以char为单位读写; 区别于InputStream、OutputStream,后者是Byte流,以Byte为单位读写。 InputStream Reader 字节流,以byte为单位 字符流,以char为单位 读取字节(-1,0~255):int read
阅读全文
摘要:1、说明 InputStream和OutputStream是Java标准库中最基本的IO流,它们都位于java.io包中,该包提供了所有同步IO的功能。 2、模块:java.io.InputStream 、 java.io.OutputStream 3、用法 3.1、read&write 二者都不是
阅读全文
摘要:0、说明 用于读Path操作的接口(Path)与实现类(Paths) 1、模块:java.nio.file.Path、java.nio.file.Paths 2、方法 2.1、Paths 只有两个静态方法,用法:Paths.xxx( ... ) Path get( String first , St
阅读全文
摘要:0、说明 File:用于操作文件、目录的类。 Files:提供了许多静态方法用于操作文件、目录的类。 Files中全都是静态方法,只在本文第五节对这些方法加以说明,其他节都是File相关内容。 1、模块:java.io.File、java.nio.File.Files 2、字段:用法File.xxx
阅读全文
摘要:简介 IO流是一种顺序读写数据的模式,它的特点是单向流动。数据类似自来水一样在管道中流动,所以称之为IO流。 InputStream/OutputStream 最基本的IO流是InputStream、OutputStream。 IO流以byte(字节)为最小单位,因此也叫字节流。 例如,我们从磁盘读
阅读全文
摘要:说明 工具类,提供了许多静态方法,用于操作集合。 模块:java.util.Collections 方法:全是static方法,使用时直接Collections.xxx( ... ) 返回值类型 方法 说明 boolean addAll(Collection< ? super T >c, T...
阅读全文
摘要:说明 先进后出(LIFO)的栈,入栈出栈都是在一端操作; 在Java中,没有单独的Stack接口,所以我们用Deque接口来“模拟”: 入栈:push( E )、addFirst( E ); 出栈:pop()、removeFirst(); 取顶端元素(不弹出):peek()、peekFirst()。
阅读全文
摘要:说明 双端队列(Double Ended Queue,简称Deque),允许两头进两头出。 Java集合提供了接口Deque实现一个双端队列,其功能是: 可以从队尾、队首进行入队; 可以从队尾、队首进行出队。 模块:java.util.Deque Deque接口实际上继承自Queue接口。 方法 比
阅读全文
摘要:说明 PriorityQueue是优先级队列,它与Queue的区别在于,它的出队优先级与元素优先级相关——对它调用remove()或poll()方法时,返回的总是优先级最高的元素。 要使用PriorityQueue,需要给元素定义“优先级”。放入其中的元素,必须实现Comparable接口,Prio
阅读全文
摘要:说明 Queue是一个FIFO先进先出的有序表。 特点 末尾添加元素; 首部取出元素。 常用方法 int size():返回Queue的大小; boolean add( E )、boolean offer(E):尾部添加; E remove()、E poll():获取并删除首部; E element
阅读全文
摘要:说明 Set用于存储不重复的元素集合,它主要用以下几个方法: boolean add( E e ):把元素e添加到Set中; boolean remove( Object e ):移除Set中的元素e; boolean contains( Object e ):判断Set中是否包含元素e。 如果用a
阅读全文
摘要:模块:java.util.Set 说明 存储不重复的元素的集合,接口 用法:Set<E> Set <String> set = new HashSet <> (); 方法 返回值类型 方法 说明 boolean add(E e) 向Set中加入元素e,如果Set已有e则拒绝 boolean addA
阅读全文
摘要:List 模块:java.util.List 说明 List接口,表明一个序列 用法:List <E> ①直接用List承接一个ArrayList或LinkedList List <Integer> list = new ArrayList <> (); ②用List.of( ... )快速创建Li
阅读全文
摘要:每个应用程序通常都有与之相匹配的配置文件。例如,一个配置文件的设置: //上次最后打开的文件: last_open_file=/data/hello.txt //自动保存文件的时间间隔 auto_save_interval=60 配置文件的特点是,它的K-V一般都是String-String,所以我
阅读全文
摘要:对Key进行排序的Map:java.util.TreeMap 有一种Map,它在内部会对Key进行排序,这类Map称之为SortedMap。不过SortedMap是接口,它的实现类是TreeMap。 SortedMap遍历时以Key的顺序来进行排序。 例如,放入的Key是"apple"、"pear"
阅读全文
摘要:HashMap通过计算Key的hashCode(),直接定位到Value在内部数组的索引,所以效率很高。 Key是枚举类型的Map:EnumMap 如果Key是enum类型,那么就可以使用Java集合库提供的一种EnumMap,它在内部以一种紧凑的数组存储Value,并且根据enum类型的Key直接
阅读全文
摘要:Map原理 HashMap根据Key得到Value的原理,是它在内部通过空间换时间,根据Key直接计算出Value所在的索引。 在Map内部,对Key作比较是通过equals()实现的,只要两个Key用equals()比较的结果相同,这两个Key就指向同一个Value。 所以,正确使用Map必须保证
阅读全文
摘要:0、说明 Map是一种Key-Value映射表,作用是通过Key快速查找它的Value。 关于Map,假设有一个map: Map<String , Student> map = new HashMap<> (); 对它一些基本用法是: map.put( Key , Value ):map加入一个Ke
阅读全文