摘要: 前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读与读之间互斥。 ReadWriteLock也是一个接口,原型如下: 该接口只有两个方法,读锁和写锁。 阅读全文
posted @ 2018-10-08 16:57 魔豆 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newS 阅读全文
posted @ 2018-10-08 16:03 魔豆 阅读(124) 评论(0) 推荐(0) 编辑
摘要: Java Enum原理 实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。 因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==, 两者是一样的效果) Java Enum类型的语法结构尽管和ja 阅读全文
posted @ 2018-10-08 14:41 魔豆 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。 抽象类 抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建 阅读全文
posted @ 2018-10-08 10:32 魔豆 阅读(131) 评论(0) 推荐(0) 编辑
摘要: java的方法参数传递方式有两种,按值传递和引用传递 1.按值传递 参数类型是int,long等基本数据类型(八大基本数据类型),参数传递的过程采用值拷贝的方式 代码片段1: 2.引用传递 参数类型为引用类型,参数传递的过程采用拷贝引用的方式 代码片段2: 结论:按值传递,不会改变原来的值,引用传递 阅读全文
posted @ 2018-10-08 10:09 魔豆 阅读(239) 评论(0) 推荐(0) 编辑