
java
Enpong
我是小小白
展开
-
Java多线程的中断操作
InterruptedException如果一个线程处于阻塞、限期等待或无限期等待状态时,调用该线程的interrupt()方法中断线程,就会抛出InterruptedException,从而提前结束该线程;(注意:不能中断IO阻塞和Synchronized锁阻塞)Interupted如果一个线程的run()方法执行一个循环体,并且循环体中没有会抛出InterruptedException...原创 2019-03-06 15:33:09 · 324 阅读 · 0 评论 -
JAVA中BitSet
JAVA中BitSet就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用bit位上的1或0来表示;一个bit具有2个值:0和1,正好可以用来表示false和true。对于判断“数据是否存在”的场景,我们通常使用HashMap来存储,不过hashmap这个数据结构KEY和Value的保存需要消耗较多的内存,不适合保存较多的数据,即大数据场景;比如在有10亿条URL中判定一个(www.ba...转载 2019-03-02 19:10:27 · 288 阅读 · 0 评论 -
JavaIO---字符操作
编码与解码编码就是把字符转换为字节,而解码是把字节重新组合成字符。如果编码和解码过程使用不同的编码方式那么就出现了乱码。GBK 编码中,中文字符占 2 个字节,英文字符占 1 个字节;UTF-8 编码中,中文字符占 3 个字节,英文字符占 1 个字节;UTF-16be 编码中,中文字符和英文字符都占 2 个字节。UTF-16be 中的 be 指的是 Big Endian,也就是大端...转载 2019-02-28 18:59:12 · 182 阅读 · 0 评论 -
装饰者模式
定义在不改变原类文件以及不使用继承的情况下,动态地将责任附加到对象上,从而实现动态拓展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象组成部分抽象构件(Component)它是具体构件和抽象装饰类的共同祖先,声明了具体构件需要实现的业务方法具体构件(ConcreteComponent)它是抽象构件的子类,用于定义具体的构件对象,实现了在抽象构件中声明的业务...原创 2019-02-28 18:47:23 · 142 阅读 · 0 评论 -
java基础
基本数据类型,byte/8、short/16、char/16、int/32、float/32、long/62、double/16、boolean(只有两个值,可以用1bit来表示,但是具体大小没有明确规定,JVM在编译时期将boolean类型的数据转成int类型)包装数据类型,基本数据类型都有对应的包装数据类型,两者之间的转换过程为装箱拆箱,装箱:基本数据类型–>包装数据类型;缓存池:...原创 2019-02-28 17:18:03 · 132 阅读 · 0 评论 -
Java并发---互斥同步
Java提供两种锁机制控制多线程对互斥资源的互斥访问,一种是JVM实现的synchronized,一种是JDK实现的RentranLock.synchronized同步一个代码块;只作用于一个对象,如果调用两个不同的对象上的同步代码块,不会进行同步;public class SynchronizedExample { public void func1() { ...原创 2019-02-28 11:18:58 · 504 阅读 · 0 评论 -
面向对象思想
三大特性封装继承多态编译时多态:主要指方法的重载运行时多态:三个条件(继承,重写,向上转型)类图泛化关系:描述继承关系,extend实现关系:实现一个接口,implement聚合关系:整体和部分不是强依赖,整体不存在,部分可以存在组合关系:整体和部分强依赖,整体消失,部分跟着消失关联关系:表示不同类对象之间的关联,这是一种静态关系,与运行过程无关,如1对1,1对多…依...转载 2019-02-27 22:16:43 · 115 阅读 · 0 评论 -
Arrays.asList()的坑
避免使用基本数据类型数组转换为列表 public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } asList接收的参数是一个泛型的变长参数,因为基本数据类型是无法泛型化的,也就是说8个基本类型无法作为asList的参数,要想作为泛型参数必须使用对应的包装类型...原创 2018-12-18 22:27:01 · 183 阅读 · 0 评论 -
Vector与ArrayList
Vector的实现 - 与ArrayList的实现类似,但是使用了synchronized进行同步。ArrayList的实现 public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] =...原创 2018-12-18 21:59:53 · 189 阅读 · 0 评论 -
ArrayList源码分析
ArrayList类的定义,父类及实现的接口:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable - 继承AbstractLi原创 2018-12-18 21:35:22 · 147 阅读 · 0 评论 -
迭代器模式与Java容器
迭代器模式 迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示,属于行为型模式。 把在元素之间游走地责任交给迭代器,而不是聚合对象,并可以以不同方式来遍历整个聚合对象。 优点: 1.支持以不同方式遍历一个聚合对象; 2.将存储数据和遍历数据地职责分离,简化了聚合类; 3.在同一聚合上可以拥有多个遍历。 缺点: 1.将存储数据和遍历数据地职...原创 2018-12-18 17:48:10 · 177 阅读 · 0 评论 -
UML各种线的含义
原文:http://www.cnblogs.com/me115/p/4092632.html 内容目录:从一个示例开始类之间的关系时序图附录:《图说设计模式》看懂UML类图和时序图这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流...转载 2018-12-18 16:38:06 · 681 阅读 · 0 评论 -
Java实现LRU策略缓冲
1.基于"双向链表+HashMap“实现:访问某个节点时,将该节点从双向链表中原位置删除,并重新插入链表头。这样可以保证链表尾部节点就是最近最久未被使用的,当节点数量大于缓存空间就淘汰链表尾部节点;为了能在O(1)时间内从链表删除某个节点,不能通过遍历链表查找该节点。需要借助HashMap存储key与节点的映射,通过key在O(1)时间内找到节点,并在O(1)时间内删除该节点。pub...原创 2019-03-08 21:05:21 · 531 阅读 · 0 评论