![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进阶
文章平均质量分 58
taowithsnow
这个作者很懒,什么都没留下…
展开
-
2021.12.18学习记录
一、UDP协议 是一种无线连接的协议,每个数据对象都是一个独立的信息,没一个数据对象的都有一个唯一的地址保存 两个实现类:DatagramePacket、DatagrameSocket 二、MINA框架 实际意义为一个简易的TCP通信JAVA框架,服务端与客户端建立连接,但是服务端不需要保证每条信息都被客户端接收,客户端接受的每一条消息也不需要向服务端说明已接收 设计思想: 创建连接、设计过滤规则、编写消息处理器 三、反射与内省 对于任何一个类,都可以在外部设计一个类,来获取目标类的内部属性原创 2021-12-18 21:47:00 · 676 阅读 · 0 评论 -
2021.12.15学习记录
一、线程死锁 线程死锁问题,即在多个线程之间,当线程都需要先获取资源再释放资源时,就会发生死锁问题 为了避免线程发生死锁,应尽量控制线程在获取资源对象时,即对资源上锁后,不在调用其他对象 注:线程死锁问题不能解决,只能避免出现 二、线程生命周期与线程池 每一个线程在被创建时即赋有生命,在此线程结束使用后,生命消失。在程序中,创建一个新的线程是一个非常消耗性能的操作,而每一个线程的任务可能很短就结束生命周期。为了让线程循环使用,避免浪费性能,因此创立线程池 线程池:将创立的线程放入其中,然后使得线原创 2021-12-15 21:27:22 · 462 阅读 · 0 评论 -
2021.12.14学习记录
一、线程实现的两种方式 线程实现的两种方式: 1)直接继承Thread类,实现线程 使用方法: public class MyThread extendsThread{ 代码块} Thread t = newMyThread() t.start 2)实现Runnable接口 使用方法: public class MyRunnable implementsRunnable{ 代码块} MyRunnable mr = newRunnable() ...原创 2021-12-14 21:17:18 · 50 阅读 · 0 评论 -
2021.12.13学习记录
一、Guava开发源组件 一个拓展组件,具有以下特点: 1、不可变集合:提高防御性和编程能力 2、新集合类型:mutilists,mutilmap,tables等 3、强大的集合工具类:提供collection集合类没有的接口 4、拓展工具类:让拓展变得更容易 二、线程的并发与并行 进程:一个程序,是一个静态的事物,当这个程序开始运行,变为动态的,此时的程序即为进程 进程包含三种状态,分别是阻塞,就绪,运行;并依次进行 线程:当一个进程执行以后,里面的程序又可以划分为若干个进程,进线程是依原创 2021-12-13 21:02:55 · 157 阅读 · 0 评论 -
2021.12.12学习记录
一、Collections工具类 Collections工具类内部提供了大量针对Collection/Map的方法,都为静态方法。总体分为以下四类: 1、排序操作(针对List接口): 1)reverse(List list):指定元素进行序列反转 2)shuffle(List list):对集合中的元素进行随机排序 3)sort(List list):对集合进行升序操作 4)sort(List list,Comparator com):自定义比较器升序操作 5)swap(List list.原创 2021-12-12 23:24:35 · 151 阅读 · 0 评论 -
2021.12.11学习记录
一、Map接口 内部包含映射键值对,其中,键不能重复,但是值可以 使用方法: Map<key的数据类型,vaule的数据类型> map = new xxMap<>() (因为Map是一个接口,不能具体是实现,因此只能用来接收) 当键相同时,后添加的键的值会覆盖前面的值,但是键不会改变 其具体实现类有以下几个: HashMap、HashTable、LinkedHashMap、TreeMap 二、HashMap实现类 基于Hash表与Map接口实现,提供所有可选择的..原创 2021-12-11 17:14:44 · 466 阅读 · 0 评论 -
2021.12.9学习记录
一、HashSet集合 HashSet集合,是Set接口下面的一个具体实现类,在HashSet里面的具体实现是靠HashMap, 在HashSet内部,是一个hash函数(内部存储方式是一个数组,在数组的每个位置又有一个链表来存储) 在HashSet集合里面的数据,可以包含NULL,但是不能包含重复的元素,判定不能重复的元素是因为内部有两个比较方法 1)hashcode方法:判断两个对象的hashcode值是否相等(内部是一个算法,主要是判定位置是否相同),如果位置不相同,则判定为不重复元素,否则就原创 2021-12-09 21:12:04 · 251 阅读 · 0 评论 -
2021.12.8学习记录
一、NIO与缓冲区 NI,是new IO,在JDK1.4以后加入,目的是为了实现高速IO,减少原来IO流技术,减轻代码负担,用较少的代码代替之前的一堆代码 实现:其实质还是通过缓冲区,通过NIO对象,直在缓冲区进行操作,从而提升速度 每个数据类型(除了布尔类型),都有一个缓冲类型 CharBuffer ByetBuffer IntBuffer LongtBuffer ShortBuffer FloatBuffer DoubleBuffer 二、通道文件 通道,Channel 对象,类原创 2021-12-08 22:11:16 · 215 阅读 · 0 评论 -
2021.12.6学习记录
一、RandomAccessFile 是IO的包类,从Obect类直接继承而来,只能对文件操作,可以进行读和写操作;在其中可以写入,模式,为 r(只读),w(只写),rw(读写),当且仅当使用模式r时,文件会异常 在JDK1.4以后,被memory-mapped files取代 使用方法: RandomAccessFile raf = newRandomAccessFile("文件","模式") 二、Properties 配置文件,之前在程序国际化中讲过,但是此时在IO流之中,不仅可以读取,还.原创 2021-12-06 21:20:00 · 145 阅读 · 0 评论 -
2021.12.05学习记录
一、打印流 可以使得程序中的效果很方便的经行输出 字节打印流:PrintStream 字符打印流:PrintWriter 二、对象流与序列化 对象流的两个类 1、ObjectOutputStream:将对象进行序列化,写入到文件中 2、ObjectInputStream:将之前序列化的文件进行反序列化到程序中 对象序列化:就是把对象写入到输出流之中,,用来存储或船宿,反序列化就是将其读取出来 通常将序列化的对象以数组的方式进行保存 transient关键字:当某个对象或者属性的值不需要序原创 2021-12-05 21:36:57 · 36 阅读 · 0 评论 -
2021.12.03学习记录
一、字节输入输出流 流:一切对象数据传输的总称或抽象 1、输出:从程序中向文件访问输出 类:OutputStream,时所有字节输出流的父类,通常使用其子类FileOutputStream类实现 OutputStream out= new FileOutputStream() 2、输入:从文件中向程序访问输入 类:InputStream,时所有字节输出流的父类,通常使用其子类FileInputStream类实现 InputStream in= new FileInputStream() ..原创 2021-12-03 21:12:15 · 164 阅读 · 0 评论 -
2021.12.02学习记录
一、Lambada表达式: 用于实现接口中的方法,前提是接口中只有一个方法 1、表达式 (参数1,参数2,。。。) -> {代码} 1)当没有参数是使用表达式,可以直接使用 2)带参数时,直接将参数传入,可以不用写参数类型, 3)代码只有一句时,可以省略掉大括号 4)代码如果有多句,不能省略大括号 5)有返回值时,直接写入返回的值,不用写return 6)参数用finnal修饰时,则必须照写接口方法中的参数 注:接口类中的静态方法和构造方法不会影响表达式的使用 二、file类的使原创 2021-12-02 20:54:56 · 29 阅读 · 0 评论 -
2021.12.1学习记录
一、Cloneable接口 将对象复制一份,称为对象的克隆。为了实现一些短暂显示的,而又不得不实现的对象设计的一个类,比如飞机大战中的子弹 如果某个类要实现Cloneable。 1)必须实现其接口 2)重写Object中的clone方法 然后直接调用方法 二、System与Runtime类 System类中,常用有输入(System.in),输出(System.out)和错误输出(System.erro),会显红 System.arrayCopy是常用的拷贝方法 Runtime类的使用,可原创 2021-12-01 21:36:33 · 546 阅读 · 0 评论