摘要: Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从 阅读全文
posted @ 2019-07-10 16:22 割肉机 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 1. Java 堆空间 2. GC 开销超过限制 3. 请求的数组大小超过虚拟机限制 发生频率:2颗星 4. Perm gen 空间 5. Metaspace 6. 无法新建本机线程 7. 杀死进程或子进程 8. 发生 stack_trace_with_native_method 1. Java 堆 阅读全文
posted @ 2019-07-10 16:03 割肉机 阅读(3454) 评论(0) 推荐(0) 编辑
摘要: 什么是阻塞队列? 阻塞队列是一个在队列基础上又支持了两个附加操作的队列。 2个附加操作: 支持阻塞的插入方法:队列满时,队列会阻塞插入元素的线程,直到队列不满。 支持阻塞的移除方法:队列空时,获取元素的线程会等待队列变为非空。 阻塞队列的应用场景 阻塞队列常用于生产者和消费者的场景,生产者是向队列里 阅读全文
posted @ 2019-07-10 15:54 割肉机 阅读(1436) 评论(0) 推荐(0) 编辑
摘要: 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本, 阅读全文
posted @ 2019-07-10 15:50 割肉机 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 【线程让步yield()方法】 yield()方法可以让当前正在执行的线程暂停,但它不会阻塞该线程,它只是将该线程从运行状态转入就绪状态。 只是让当前的线程暂停一下,让系统的线程调度器重新调度一次。 很有可能,当某个线程调用了yield()方法暂停之后进入就绪状态,它又马上抢占了CPU的执行权,继续 阅读全文
posted @ 2019-07-10 15:48 割肉机 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 这里仅仅进行一些简单的比较,如果你想要更加详细的信息话,请自己百度。 1.Collection: 是集合类的上层接口。本身是一个Interface,里面包含了一些集合的基本操作。 Collection接口时Set接口和List接口的父接口 里面的常用操作有如下内容: 2.Collections Co 阅读全文
posted @ 2019-07-10 15:35 割肉机 阅读(502) 评论(0) 推荐(0) 编辑
摘要: java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明已经存在的对象小于,等于,大于输入对象。Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来 阅读全文
posted @ 2019-07-10 15:34 割肉机 阅读(3882) 评论(0) 推荐(0) 编辑
摘要: 1.根据应用需要正确选择要使用的集合类型对性能非常重要,比如:假如知道元素的大小是固定的,那么选用Array类型而不是ArrayList类型更为合适。 2.有些集合类型允许指定初始容量。因此,如果我们能估计出存储的元素的数目,我们可以指定初始容量来避免重新计算hash值或者扩容等。 3.为了类型安全 阅读全文
posted @ 2019-07-10 15:33 割肉机 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 下面列出了Array和ArrayList的不同点:Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。Array大小是固定的,ArrayList的大小是动态变化的。ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等 阅读全文
posted @ 2019-07-10 15:31 割肉机 阅读(4981) 评论(0) 推荐(0) 编辑
摘要: Iterator和ListIterator的区别是什么? 下面列出了他们的区别: Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。 Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。 ListIterator实现了I 阅读全文
posted @ 2019-07-10 15:30 割肉机 阅读(1976) 评论(0) 推荐(0) 编辑
摘要: 阅读目录 一、迭代器概述 二、ArrayList的Iterator实现 三、ListIterator 回到顶部 一、迭代器概述 1、什么是迭代器? 在Java中,有很多的数据容器,对于这些的操作有很多的共性。Java采用了迭代器来为各种容器提供了公共的操作接口。这样使得对容器的遍历操作与其具体的底层 阅读全文
posted @ 2019-07-10 15:27 割肉机 阅读(14338) 评论(0) 推荐(1) 编辑
摘要: 为什么集合类没有实现Cloneable和Serializable接口? 答:克隆(cloning)或者序列化(serialization)的语义和含义是跟具体的实现相关的。因此应该由集合类的具体实现类来决定如何被克隆或者序列化 一些解释: (1)什么是克隆? 克隆是把一个对象里面的属性值,复制给另一 阅读全文
posted @ 2019-07-10 15:24 割肉机 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在 阅读全文
posted @ 2019-07-10 15:22 割肉机 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 转载自 http://zhangshixi.iteye.com/blog/673143 1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet 阅读全文
posted @ 2019-07-10 15:17 割肉机 阅读(565) 评论(0) 推荐(0) 编辑
摘要: Set中元素不可以重复,是无序的(这里无序是指存入元素的先后顺序与输出元素的先后顺序不一致) HashSet:内部的数据结构是哈希表,是线程不安全的。 HashSet中保证集合中元素是唯一的方法:通过对象的hashCode和equals方法来完成对象唯一性的判断。 如果对象的hashCode值不同, 阅读全文
posted @ 2019-07-10 15:15 割肉机 阅读(10185) 评论(0) 推荐(0) 编辑
摘要: 总共有两大接口:Collection 和Map ,一个元素集合,一个是键值对集合; 其中List和Set接口继承了Collection接口,一个是有序元素集合,一个是无序元素集合; 而ArrayList和 LinkedList 实现了List接口,HashSet实现了Set接口,这几个都比较常用; 阅读全文
posted @ 2019-07-10 15:09 割肉机 阅读(2960) 评论(0) 推荐(0) 编辑
摘要: 简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自 阅读全文
posted @ 2019-07-10 15:05 割肉机 阅读(9467) 评论(0) 推荐(0) 编辑
摘要: 答:不对,有相同的 hash code这是java语言的定义:1) 对象相等则hashCode一定相等;2) hashCode相等对象未必相等 1.如果是基本变量,没有hashcode和equals方法,基本变量的比较方式就只有==; 2.如果是变量,由于在java中所有变量定义都是一个指向实际存储 阅读全文
posted @ 2019-07-10 15:00 割肉机 阅读(629) 评论(0) 推荐(0) 编辑
摘要: Set 里的元素是不能重复的,元素重复与否是使用 equals()方法进行判断的。 equals()和==方法决定引用值是否指向同一对象 equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 equals()和==的区别 ==操作符专门用来比较两个变量的值是否相等,也 阅读全文
posted @ 2019-07-10 14:56 割肉机 阅读(1035) 评论(0) 推荐(0) 编辑
摘要: List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。 Set里面不允许有重复的元素, 存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法 阅读全文
posted @ 2019-07-10 14:17 割肉机 阅读(629) 评论(0) 推荐(0) 编辑