java
qq_43801646
这个作者很懒,什么都没留下…
展开
-
集合
1、ollection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。2、Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。...原创 2019-11-11 09:22:29 · 92 阅读 · 0 评论 -
八大排序
八大排序介绍1、插入排序:直接插入排序、希尔排序。2、选择排序:直接选择排序、堆排序。3、交换排序:冒泡排序、快速排序。4、归并排序。5、基数排序。1、直接插入排序:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过为止。https://cuijiahua.com/wp-content/uploads/2017/12/al...原创 2019-11-10 23:03:13 · 133 阅读 · 0 评论 -
Java内存区域
java内存:1、程序计数器:较小的内存空间,当前线程执行的字节码的行号指示器;各线程之间独立存储,互不影响;2、java 栈:线程私有,每个方法在执行的同时都会创建一个 栈帧用于存储局部变量表,操作数栈。方法的执行就对应着栈帧在虚拟机栈中入栈和出栈的过程;栈里面存放着各种基本数据类型和对象的引用( -Xss )3、本地方法栈:本地方法栈保存的是native方法的信息,当一个JVM创建...原创 2019-11-10 19:53:09 · 111 阅读 · 0 评论 -
并发容器
1、Hashmap多线程会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获取Entry。2、HashTable使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法,其他线程也访问HashTable的同步方法时,会进入阻塞或轮...原创 2019-11-10 16:04:31 · 80 阅读 · 0 评论 -
原子操作CAS
原子操作CASCAS是一种乐观锁思想的应用CAS的原理CAS(Compare And Swap),指令级别保证这是一个原子操作三个运算符: 一个内存地址V,一个期望的值A,一个新值B基本思路:如果地址V上的值和期望的值A相等,就给地址V赋给新值B,如果不是,不做任何操作。CAS问题1、ABA问题:A—》B—》A,内存地址V最后的值确实为A,但在中途发生过改变,却并不知道,可以使用版...原创 2019-11-10 15:18:24 · 78 阅读 · 0 评论 -
线程并发工具类
ForkJoin就是在必要的情况下,将一个大任务,拆分(fork)为若干个小任务(拆到不可再拆),再将若干个小任务进行汇总。在JDK的并发包里提供了几个非常有用的并发工具类,主要有以下四个:CountDownLatch、CyclicBarrier、Semaphore、Exchanger1、CountDownLatchCountDownLatch允许一个线程或多个线程等待其他线程完成操作。...原创 2019-11-10 15:11:53 · 95 阅读 · 0 评论 -
线程基础,线程之间的共享和协作
1、ccpu核心数和线程数的关系核心数:线程数=1:1 使用了超线程技术后变为1:22、cpu时间片轮转机制:又称为RR调度,会导致上下文切换3、线程和进程进程:程序运行资源分配的最小单位,进程内部有多个线程,会分享这个进程的资源线程;cpu调度的最小单位,必须依赖进程而存在4、并行和并发并行:同一时刻,可以同时处理事情的能力并发:与单位时间相关,在单位时间...原创 2019-11-10 14:27:39 · 190 阅读 · 1 评论