01 2021 档案
摘要:今天读了《Thinking in Java》中的I/O流的章节,整理了下关于I/O流常用的一些类,类图如下: 常用的类大概就是这些,接下来简单的说下这些类的作用,关键的类我会加上代码的实例: 一、先说Java1.0的InputStream和outputStream 这两个类不多说,就是抽象父类。 1
阅读全文
摘要:一、Map集合框架 HashTable线程安全。 Properties是配置文件读取使用。 HashMap基于散列表的实现,插入和查询的键值对的开销是固定的, LindkedHashMap类似于HashMap,插入时有次序,插入时略慢,但是基于链表的遍历叫较快。 TreeMap基于红黑树的实现,他们
阅读全文
摘要:一、Queue的直接实现类:PriorityQueue 优先级队列 优先级队列 添加到队列中,保证基本的添加顺序,但是要进行比较,保证队列最前面的一个是最小的 实例如下: package com.example.demo.day3.test1; /** * @Author: caesar * @Da
阅读全文
摘要:一、CopyOnWriteArrayList 可以明显看出,CopyOnWriteArrayList是使用的写时复制的方法,来控制的读写分离。 get没有加锁,增删改进行加锁操作 保证了,数组在不同线程之间的可见性。 但是存在的问题就是,会出现脏读的现象,可以保证数据的最终一致性,所以最好还是在数据
阅读全文
摘要:一、数据结构 ArrayList:动态数组 LinkedList:双向链表 二、不同点 ArrayList: 查询:基于数组,直接通过索引,就可以获取到位置的值。 添加:尾部添加和LinkedList类似,效率差不多,但是可能会扩容,基于数组的复制,开销较大,中间插入的话,涉及到数组的后移,使性能降
阅读全文
摘要:java中集合有两大类,一类是基于Collection的集合,一类是基于Map的key,value集合,我整理了下常用的集合类,构置了一下框架图。 基于Collection的集合框架: 基于Map的集合框架: 两幅图已经上传到gitHub上,地址如下: https://github.com/Swee
阅读全文
摘要:synchronized这个关键字,原来的印象就是一个重量级锁,也就是悲观锁,直接锁住代码段,剩余的线程进入到阻塞队列中,效率极低,实际上呢,在jdk1.6之后,synchronized的内部进行了优化,它不再是一个简单的重量级锁,它为了试用所有的情况,有了一个锁升级流程:无锁 -》 偏向锁 -》
阅读全文
摘要:最近仔细研究了一下java中的锁,发现首先基础知识不可缺少的就是java的对象结构,因为锁的相关信息是在对象的头中的,所以我们先来了解一下对象的结构。 对象分为数组对象和普通对象,它们之间有细微的差别,如下图: 以下是对上面组成部分的解释: 一、对象头: 1、MarkWord第一部分markword
阅读全文