随笔分类 -  java基础

温故而知新
摘要:sleep()和wait()的区别? 这两个方法来自不同的类分别是Thread和Object sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 阅读全文
posted @ 2019-10-11 11:20 莫等、闲 阅读(828) 评论(0) 推荐(0)
摘要:图中显示线程有5种状态,但严格意义上讲应该有7种: 新建状态:当用new操作符创建一个线程后, 例如new Thread(r),此时线程处在新建状态。 当一个线程处于新建状态时,线程中的任务代码还没开始运行。 就绪状态:也被称为“可执行状态”。一个新创建的线程并不自动开始运行,要执行线程,必须调用线 阅读全文
posted @ 2019-10-11 10:33 莫等、闲 阅读(243) 评论(0) 推荐(0)
摘要:1.通过实现Runnable接口创建线程 2.通过实现callable接口创建线程 3.通过集成Thread类创建线程 4.使用Executor框架来创建线程池 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机 阅读全文
posted @ 2019-10-10 11:26 莫等、闲 阅读(1530) 评论(0) 推荐(0)
摘要:什么是守护线程? 守护线程的唯一用途 是为其他线程提供服务。计时线程就是一个例子,它定时地发送“ 计时器嘀嗒” 信号给其他 线程或清空过时的高速缓存项的线程。当只剩下守护线程时, 虚拟机就退出了,由于如果只 剩下守护线程, 就没必要继续运行程序了。 守护线程有时会被初学者错误地使用, 他们不打算考虑 阅读全文
posted @ 2019-10-10 10:06 莫等、闲 阅读(2286) 评论(0) 推荐(0)
摘要:并行与并发的区别? 假设一个有三个学生需要辅导作业,帮每个学生辅导完作业是一个任务 顺序执行:老师甲先帮学生A辅导,辅导完之后再取给B辅导,最后再去给C辅导,效率低下 ,很久才完成三个任务 并发:老师甲先给学生A去讲思路,A听懂了自己书写过程并且检查,而甲老师在这期间直接去给B讲思路,讲完思路再去给 阅读全文
posted @ 2019-10-09 19:53 莫等、闲 阅读(647) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-10-08 16:39 莫等、闲 阅读(392) 评论(1) 推荐(0)
摘要:迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。 什么是迭代器Iterator? Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet...,每种容器都有自己的特点,Array 阅读全文
posted @ 2019-10-08 16:27 莫等、闲 阅读(2134) 评论(0) 推荐(0)
摘要:如何实现数组与List的相互转换? List转数组:toArray(arraylist.size()方法 数组转List:Arrays的asList(a)方法 /** * 〈一句话功能简述〉; * 〈功能详细描述〉 * * @author jxx * @see [相关类/方法](可选) * @sin 阅读全文
posted @ 2019-10-08 15:17 莫等、闲 阅读(1256) 评论(0) 推荐(0)
摘要:ArrayList与LinkedList的区别 ArrayList底层是一个动态数组,LinkedList底层是双向链表 当随机访问List时(get和set操作),ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找。 阅读全文
posted @ 2019-10-08 15:08 莫等、闲 阅读(490) 评论(0) 推荐(0)
摘要:HashMap 基于哈希表实现。使用HashMap要求添加的键类明确定义了hashCode()和equals()[可以重写hashCode()和equals()],为了优化HashMap空间的使用,您可以调优初始容量和负载因子。 适用于在Map中插入、删除和定位元素。 TreeMap 基于红黑树实现 阅读全文
posted @ 2019-10-08 11:51 莫等、闲 阅读(270) 评论(0) 推荐(0)
摘要:HashSet特性: 无法保证元素顺序 允许null值 非线程安全 HashSet实现原理: HashSet实际上是一个HashMap实例,都是一个存放链表的数组。它不保证存储元素的迭代顺序;此类允许使用null元素。HashSet中不允许有重复元素,这是因为HashSet是基于HashMap实现的 阅读全文
posted @ 2019-10-08 11:32 莫等、闲 阅读(443) 评论(0) 推荐(0)
摘要:参考链接:并发场景下HashMap死循环导致CPU100%的问题 阅读全文
posted @ 2019-09-29 19:39 莫等、闲 阅读(548) 评论(0) 推荐(0)
摘要:HashMap是一个散列桶,用键值对的方式存储数据,采用数组和链表的数据结构,因此它既具有数组线性查找的优点又具有链表寻址修改的优点。它是非线程安全的。HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。主干数组的长度 阅读全文
posted @ 2019-09-29 15:54 莫等、闲 阅读(346) 评论(0) 推荐(0)
摘要:1.HashTable继承自Dictionary抽象类,HashMap实现Map接口 2.HashTable的方法都是synchronized的,HashMap不是 3.HashMap允许键或值为null,HashTable不可以 4.HashTable保留了Contains方法,HashMap没有 阅读全文
posted @ 2019-09-27 16:22 莫等、闲 阅读(325) 评论(0) 推荐(0)
摘要:一、List接口 List是一个继承于Collection的接口,即List是集合中的一种。List是有序的队列,List中的每一个元素都有一个索引;第一个元素的索引值是0,往后的元素的索引值依次+1。和Set不同,List中允许有重复的元素。实现List接口的集合主要有:ArrayList、Lin 阅读全文
posted @ 2019-09-24 16:36 莫等、闲 阅读(50993) 评论(0) 推荐(7)
摘要:1.Collection: java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。 Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接 阅读全文
posted @ 2019-09-19 11:14 莫等、闲 阅读(4429) 评论(0) 推荐(0)
摘要:一、什么是Java容器 书写程序时,我们常常需要对大量的对象引用进行管理。为了实现有效的归类管理,我们常常将同类的引用放置在同一个数据容器中。Java容器类是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java容器主要可以划分为4个部分:List列表、Set集合、 阅读全文
posted @ 2019-09-17 10:02 莫等、闲 阅读(180) 评论(0) 推荐(0)
摘要:此处的NIO指的是New-IO,JDK1.4时引入。NIO和IO具有相同的作用和目的,但实现方式不同,NIO的效率要高于IO。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 一、NIO与IO的主要区别 1.IO面向流,而NIO面向缓冲 java IO面 阅读全文
posted @ 2019-08-31 11:33 莫等、闲 阅读(320) 评论(0) 推荐(0)
摘要:一、基本概念 1.BIO:同步阻塞IO 2.NIO:同步非阻塞IO 3.AIO:异步阻塞IO IO操作包括两部分,发起IO请求、IO数据读写。阻塞非阻塞主要针对线程发起IO请求之后是否立即返回来定义的,立即返回成为称为非阻塞IO,否则为阻塞IO。同步异步针对IO数据读写来定义的,不阻塞线程称为异步I 阅读全文
posted @ 2019-08-12 15:46 莫等、闲 阅读(983) 评论(0) 推荐(0)
摘要:一、分类 java中的流分为字节流和字符流,按照流向也可以分为输入流和输出流。 字符流和字节流的使用范围:字节流一般用来处理图像,视频,以及PPT,Word类型的文件。字符流一般用于处理纯文本类型的文件,如TXT文件等,字节流可以用来处理纯文本文件,但是字符流不能用于处理图像视频等非文本类型的文件。 阅读全文
posted @ 2019-07-04 20:17 莫等、闲 阅读(230) 评论(0) 推荐(0)