自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(20)
  • 收藏
  • 关注

转载 ConcurrentLinkedQueue理解

1、支持并发使用CAS保证更新的原子性 线程安全2、状态不一致head tail并非总是指向真正的头尾节点只有head/tail与头尾节点的距离超过HOPS阈值 才会更新head tail3个不等式保证数据处理正确:基本不变式在执行方法之前和之后,队列必须要保持的不变式:当入队插入新节点之后,队列中有一个 next 域为 null 的(最后)节...

2019-09-24 23:38:00 137

转载 ConcurrentLinkedQueue和LinkedBlockingQueue比较

1、阻塞和非阻塞ConcurrentLinkedQueue是非阻塞的线程安全队列2、ConcurrentLinkedQueue是无界的 LinkedBlockingQueue可以指定大小3、加锁方式ConcurrentLinkedQueue使用CAS 原子指令来保证线程安全。吞吐量更高LinkedBlockingQueue 使用Reentra...

2019-09-22 16:34:00 407

转载 PriorityQueue理解

1、并非按FIFO进出传统的queue 是按先进先出的顺序执行。而PriorityQueue是按优先级来绝对的优先级低的先出queue2、如何排序PriorityQueue既然有优先级排序 那么如何排序的。a. 放入队列的元素实现了Comparable接口 按其自然顺序排序 从小到大。b. 初始化队列时指明Comparator外部比较器。...

2019-09-22 16:25:00 405

转载 ArrayBlockingQueue与LinkedBlockingQueue区别

1、ArrayBlockingQueue采用动态数组 takeIndex和putIndex 表示存和取的两个数组下标。 有界 (必须指明数组大小) 不能存放null 读和写公用一个ReentrantLock2、LinkedBlockingQueue采用链表实现 默认无界(可以在初始化时指明大小) 不能...

2019-09-22 15:54:00 119

转载 CopyOnWriteArrayList详解

1、背景java诞生之初 就有线程安全的Vector,但Vector对读写都是通过synchronized关键字来同步的,性能并不好且Vector每次扩容是原来的1倍,存在内存浪费的可能。对于线程安全的List JDK提供了CopyOnWriteArrayList2、原理2.1 CopyOnWriteArrayList 使用写时复制技术,读写分离...

2019-09-16 23:23:00 114

转载 ArrayList和LinkedList区别

1、数据结构ArrayList底层使用数组实现,默认大小10,容量不足时需动态扩容为原来的1.5倍LinkedList底层使用双向链表实现,无大小限制2、使用场景ArrayList使用数组对于索引操作即(set get方法)时间复杂度为O(1)而LinkedList索引时需要从头遍历从而找到对应的数据。故对于顺序读写多的场景使用ArrayList...

2019-09-16 22:49:00 84

转载 java集合框架结构

1、总体结构Map和Collection是分开的。Collection下有List Queue Set 3个接口。2、List结构3、Set结构4、Queue结构5、Map结构6、Deque结构...

2019-09-05 23:43:00 88

转载 关于活性失败、快速失败、安全失败

1、活性失败多线性并发时,如果A线程修改了共享变量,此时B线程感知不到此共享变量的变化,叫做活性失败。如何解决活性失败,那就需要两个线程之间对此变量有happens-before关系,最常见的就是volatile 或 加锁。2、快速失败(fail-fast)2.1 对集合进行迭代时 如果有其他线程对集合进行添加 删除操作,迭代会快速报错。抛出Concur...

2019-09-03 23:58:00 439

转载 关于finally对返回值的影响

1、finally对返回值的影响我们知道finally在try中return语句执行之后 返回之前 执行的。如果try中最后return一个变量 ,那finally也对这个变量修改后 到底会返回什么?直接上测试代码看例子:class YfModel{ private String name; public YfModel(String ...

2019-09-01 22:42:00 878

转载 java的switch表达式

1、switch支持的类型以java8为准,switch支持10种类型基本类型:byte char short int对于包装类 :Byte,Short,Character,IntegerStringenum2、实际只支持int类型Java实际只能支持int类型的switch语句,那其他的类型时如何支持的a、基本类型byte char sh...

2019-09-01 18:54:00 759

转载 java异常结构

1、异常结构Throwable是Error和Exception的父类Error : 一般指不可恢复的错误 如内存溢出、磁盘损坏等2、uncheck与checked ExceptionRuntimeException以及其子类都是uncheck异常。不需捕获其他异常都是checked(受检)异常:必须try cac...

2019-09-01 14:27:00 83

转载 Java的Stream表达式

1、如何理解StreamJava8新特性Stream可以理解为管道,管道里的流水就是数据,管道里可以对水进行处理,如过滤,消毒,净化等等操作。最后流出的水才能喝。所以我理解Stream关注的是对数据的加工计算。对比java集合框架,集合框架关注的是如何存取数据。一个stream操作主要有3个部分:源头、中间操作、终止操作。中间操作可以有0个或多个 但不是立马执...

2019-08-29 00:00:00 173

转载 Java方法引用

1、什么是方法引用方法引用是一种简写lambda表达式的方式。等同于lambda表达式如:List<String> stringsArray = Arrays.asList("sdf","gsdf","gsdf");Collections.sort(stringsArray, (a,b)-> a.compareToIgnoreCase(b));...

2019-08-28 22:33:00 88

转载 lamdba表达式

1、lamdba有何用java8出现了lamdba表达式,类似js的箭头函数。有何用?看个例子 java8之前 一个List的排序,如下的写法是使用匿名类来实现Compartor接口public static void main(String[] args){ List<String> strList = Arrays.asList("y...

2019-08-28 00:08:00 113

转载 Java注解

1、什么叫注解一个示例:@Override就是一个注解public class ZhujieYf { @Override public String toString() { return super.toString(); } public static void main(String[] args){...

2019-08-27 00:23:00 72

转载 java枚举

1、为何使用Java枚举Java5之前没有enum的情况下,我们一般使用几个int常量表示枚举值(int枚举类型)或者string枚举类型public static final ZOO_CAT=1 #表示小猫public static final ZOO_CAT=2 #表示小狗如作为方法参数时,zooType只能是int类型如 public void printZ...

2019-08-25 00:34:00 271

转载 Java泛型

1、什么是泛型泛型就是 参数类型化 ,简单说就是在定义类 接口 方法时时不支持具体的参数类型的。只有在实际使用时才确定。2、为何用泛型我觉得有两点好处a. 明确类型 避免类型转换 如,没有泛型前,从List中取数据都是Object类型的 需要强制转换为确定的类型public static void main(String...

2019-08-24 00:26:00 107

转载 关于Compareable和Comparator

1、Compareable使用通常某个类具有内在的排序规则,如按时间 长度等维度是可排序的话,建议实现Compareable接口,重写compareTo方式这样的话存放数组或集合框架中时,我们可用Arrays.sort(x)或Collections.sort(x)按其自然顺序排序。例子import java.util.Objects;public...

2019-08-22 00:42:00 510

转载 关于Cloneable接口和clone方法

1、使用创建对象有两种方式: new 和 clone当一个对象创建过程复杂,我们是否可以根据已有的对象直接来克隆一份,而不必关系创建的细节呢(原型模式)。1.1 Java Object根类默认提供了clone方法:protected native Object clone() throws CloneNotSupportedException;一...

2019-08-21 23:55:00 205

转载 关于equals和hashCode

含义equal和hashCode都是Object类中的方法public boolean equals(Object obj) { return (this == obj); }public native int hashCode();equals默认是比较对象的指针是否指向同样的内存地址。hashCod...

2019-08-21 00:20:00 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除