我的软帝学习周记《三》


我的软帝学习周记《三》

时间过的飞快,转眼已经到了我在软帝学习的第三周了,前两个星期学习的状态挺好的,进步很大,但是依旧有很多地方存在不足需要自己努力,这次周围的同学更换了很多,他们都是很努力积极上进的人,我还要跟着他们一起共同进步,好好学习天天向上,争取在这四个月的学习里,从一个学渣变成一个高级程序员,柴老师讲的还不错,比较容易听懂,以后会继续努力,希望以后变得像柴佬一样牛逼,成为高富帅,梦想虽然很难,但是说不定万一实现了呢,还三个多月,继续加油吧!

Collection

Collection是集合框架的顶层接口,大多数的集合类,接口都是直接或者间接从Collection继承或者实现

List接口

List接口直接从Collection接口继承而来,List集合是一个有序集合(元素在集合中的存储顺序是有序的,获取的时候根据存储的位置获取),List允许重复元素,List接口包含三个比较常用的实现类:ArrayList、LinkedList、Vector(jdk1.0)

Set集合

Set集合也是从Collection接口继承而来,set集合是一个无序集合(存储顺序与元素的添加顺序无关),set集合不允许出现重复元素(重复元素会覆盖第一次出现的元素),不允许存在e1.equals(e2)的情况(针对HashSet的实现),set集合中的元素无法通过索引获取;Set集合有两个常用的实现类:HashSet、TreeSet

Map集合

Map集合是一种键值对结构,不同与List与Set;Map集合中的元素通常由key-value构成,一个键可以指向一个值,但是键不允许重复,但是值可以,Map集合的出现是为了取代老式的Dictionary类,Map集合常用的两个实现类:HashMap,TreeMap

Collections类

jdk1.2引入集合框架后,同时也新增了一些类用于方便的对集合进行处理(排序,查找等),这些功能主要包含在java.util.Collections类中,Collections类中的所有方法都是静态方法,所以调用起来比较简单

JDK8流式处理集合

JDK8引进了新的用于对集合处理的解决方案-流式处理,可以通过链式编程,函数式接口,lambda表达式简单便捷的对集合完成,过滤,排序,截取等操作。

流的分类

jdk中提供了各种不同的流用于处理不同的输入输出源,根据流性质划分分为以下类型

按流向分(站在程序角度考虑)

输入流(input)

输出流(output)

按类型分:

字节流(InputStream/OutputStream)

字符流(Reader/Writer)

按功能分:

节点流(低级流:直接跟输入输出源对接)

FileInputStream/FileOutputStream/FileReader/FileWriter/PrintStream/PrintWriter...

处理流(高级流:建立在低级流的基础上)

转换流

缓冲流

缓冲流

由于节点流操作输入输出源的效率相对较低,因此jdk提供了一些用于提高输入输出效率的流(缓冲流),这些流通过装饰器模式(java常用23种设计模式之一),提供对节点流的包装,同时这些高级流也支持mark和reset操作,并且缓冲流中也提供了节点流中没有的方法,比如,BufferedWriter提供newLine()方法用于输出一个换行标记;BufferedReader提供readLine()方法用于读取一行文本内容(以换行标记为结束)。

对象序列化

对象序列化是一种用于在文件或者各种其他输入输出设备中存储java对象的机制,通过将实现过序列化结构的对象存储到指定的输出源,可以完整的保存对象数据;对象序列化机制一般常用于大型项目中的缓存技术,以缓存经常需要使用到的对象数据;java中实现对象序列化通常包含两种方式:

实现Serializable接口

实现Externalizable接口

完成对象序列化的过程必须包含以下步骤:

需要完成序列化的对象对应的类必须实现Serializable接口

通过对象输出流将对象存储到指定的输出源(文件,网络)中(通过ObjectOutputStream)

若需要将文件或者其他输入输出设备中的java对象读取出来,可以通过ObjectInputStream完成对象反序列化

端口(Port)

端口号是应用程序在主机中的唯一标识,是当前应用与外部应用通信的通道,其中包含一些数据结构和IO缓冲区,端口的取值范围为0~65535之间;通常端口分为三类

公认端口(Well Known Ports):从0到1023,它们紧密绑定(Binding)一些服务

注册端口(Registered Ports):从1024到49151。它们松散地绑定一些服务

动态和/或私有端口(Dynamic and/or Private Ports ):从49152到65535。理论上不应为服务分配这些端口

Socket通信

Socket通信包含TCP/IP和UDP协议的通信机制,其中TCP/IP协议为安全可靠协议,需要保证服务器和客户端正常建立连接之后方可通信,java中为TCP/IP协议提供的Socket通信工具主要由java.net.ServerSocket和java.net.Socket完成,常用构造器如下:

我的软帝学习周记《三》

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章