![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础知识
Sunday_Vssupermadman
这个作者很懒,什么都没留下…
展开
-
Concurrent包常用方法简介
Table of Contents1 Executor接口2 ExecutorService接口3 ScheduledExecutorService接口4 Executors类5 结束1 Executor接口留给开发者自己实现的接口,一般情况下不需要再去实现。它只有一个方法void execute(Runnable command)转载 2014-12-04 09:17:27 · 480 阅读 · 1 评论 -
Java-Collections Framework学习与总结-HashSet和LinkedHashSet
本篇总结一下两个常用的集合类HashSet和LinkedHashSet。 它们都实现了相同接口java.util.Set。Set表示一种元素无序且不可重复的集合;之前总结过的java.util.List表示一种元素可重复且有序的集合。它们都扩展自java.util.Collection。Java代码 public interface Set extend转载 2015-03-31 11:52:33 · 379 阅读 · 0 评论 -
Java-Collections Framework学习与总结-PriorityQueue
开发中有时会遇到这样的情况。要求某个调度器去调度一些任务,这些任务放在队列里。任务本身有优先级,调度器要按照优先级去调度队列里的任务,当然也会有新任务不断加入到队列中。 可以类比操作系统调度程序,操作系统要调度某个进程,简单的说会根据某种优先级进行调度(比如某些情况下,先执行时间较短的任务,保证短任务尽快结束。) 所以期望有这样一种数据结构,首先它是一个队列,可转载 2015-03-31 11:49:05 · 408 阅读 · 0 评论 -
Callable与Future的介绍
Callable与Future 两功能是Java在后续版本中为了适应多并法才加入的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其他线程执行的任务。Callable的接口定义如下;public interface Callable { V call() throws Exception; }转载 2015-03-31 14:33:05 · 310 阅读 · 0 评论 -
Java-Collections Framework学习与总结-EnumMap
看这个类之前,先看一下Java的枚举——Enum。 枚举是啥?编码时我们经常需要写int型常量,在某些情况下(不是全部),用枚举更合适。举个例子,在程序中需要两个常量表示性别(男、女)。可能刚开始(JDK1.5之前)我们会这样写:Java代码 /** * 男 */ public static final int MALE = 1; /**转载 2015-03-31 11:49:07 · 533 阅读 · 0 评论 -
Java-Collections Framework学习与总结-LinkedHashMap
前面总结了java.util.HashMap,了解了其内部由散列表实现,每个桶内是一个单向链表。那有没有双向链表的实现呢?双向链表的实现会具备什么特性呢?来看一下HashMap的一个子类——java.util.LinkedHashMap。 先读了一下源码的注释,首先LinkedHashMap中所有的Entry组成了一个双向链表,该链表定义了内部数据的迭代顺序,通常是按key插入的转载 2015-03-31 12:06:30 · 359 阅读 · 0 评论 -
Java-Collections Framework学习与总结-LinkedList
ArrayList的插入和删除元素的操作会花费线性时间,那么有没有插入和删除元素比较省时的集合呢,看下LinkedList这个实现。 老样子,先看看它实现了那些接口。Java代码 public class LinkedList extends AbstractSequentialList implements List, Deque,转载 2015-03-31 11:55:37 · 360 阅读 · 0 评论 -
Java-Collections Framework学习与总结-ArrayList
工作中经常会用到Java的集合类,最近不忙了,把相关知识总结一下,便于理解记忆。 打开java.util.ArrayList的源代码,首先映入眼帘的是@author Josh Bloch(相对于源码,本人更喜欢看故事 ,每次看到一份源码,先看看作者是谁。然后搜索一下作者的百科以及一些八卦。。。以及与作者相关的人的百科和一些八卦。。。以及。。。一上午就过去了 ),这家伙是谁?转载 2015-03-31 11:53:57 · 706 阅读 · 0 评论 -
Java-Collections Framework学习与总结-IdentityHashMap
这篇总结一下java.util.IdentityHashMap。从类名上可以猜到,这个类本质应该还是一个散列表,只是前面有Identity修饰,是一种特殊的HashMap。 简单的说,IdentityHashMap和HashMap的区别在于对key的比较。 HashMap中会调用key的hashCode方法,hashCode方法可能会根据具体情况进行重写。在比较转载 2015-03-31 11:53:10 · 355 阅读 · 0 评论 -
Java-Collections Framework学习与总结-WeakHashMap
总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。 强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集器回收。所以我们会在一些代码中看到显示切断强引用,以便回收相关对象的情况。Java代码 public void clear() {转载 2015-03-31 11:51:32 · 362 阅读 · 0 评论 -
Java-Collections Framework学习与总结-HashMap
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。 一个Map中会包含多个K-V对儿,Key不能重复。一个Key最多只能映射到一个Value转载 2015-03-31 11:46:50 · 446 阅读 · 0 评论 -
Future与FutureTask
API:Java代码 public interface Executor { void execute(Runnable command); } public interface ExecutorService extends Executor { Future submit(Callable task);转载 2015-03-31 14:57:41 · 385 阅读 · 0 评论 -
Java-Collections Framework学习与总结-ArrayDeque
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。 这篇要看一下java.util.ArrayDeque。从命名上看,它是一个由数组实现的双端队列。还是先看一下它实现了哪些接口。Java代码 public class ArrayDeque ext转载 2015-03-31 11:44:13 · 357 阅读 · 0 评论 -
static class 静态类(Java)
一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也转载 2014-12-04 15:16:11 · 311 阅读 · 1 评论 -
PriorityBlockingQueue优先级规则
PriorityBlockingQueue里面存储的对象必须是实现Comparable接口。队列通过这个接口的compare方法确定对象的priority。 规则是:当前和其他对象比较,如果compare方法返回负数,那么在队列里面的优先级就比较搞。下面的测试可以说明这个断言:查看打印结果,比较take出来的Entity和left的entity,比较他们的priority转载 2014-12-04 11:11:01 · 549 阅读 · 1 评论 -
ThreadLocal-分析-总结
ThreadLocal类在Spring,Hibernate等框架中起到了很大的作用,对于其工作原理,很多网上的文章分析的不够彻底,甚至有些误解。 首先,为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类(内部类)1.ThreadLocalMap2.Thread可能有人会觉得Thread与ThreadLocal有什么关系,其实真正的奥秘就在Thr转载 2014-12-04 11:29:03 · 275 阅读 · 1 评论 -
ThreadPoolExecutor使用例子
public class Test1 { private ThreadPoolExecutor threadpool; /** * Param: * corePoolSize - 池中所保存的线程数,包括空闲线程。 * maximumPoolSize - 池中允许的最大线程数(采用LinkedBlockingQueue转载 2014-12-04 10:13:00 · 702 阅读 · 1 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模转载 2015-11-10 13:49:32 · 465 阅读 · 0 评论