1、Java的内存区域

运行时数据区域 Java虚拟机内存模型包括程序计数器、虚拟机栈、本地方法栈、方法区、堆 VM内存分布图: 程序计数器 程序计数器是一块较小的内存空间,可以看作当前线程所执行的字节码行号指示器。 字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳...

2019-03-31 22:47:46

阅读数 11

评论数 0

9、PriorityQueue分析

待续

2017-12-22 21:03:33

阅读数 165

评论数 0

8、Deque

Deque简介Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque则是双向队列,它支持从两个端点方向检索和插入元素,因此Deque既可以支持LIFO形式也可以支持LIFO形式.Deque接口是一种比Stack和Vector更为丰富的抽象数据形式,因为它同时实现了以上两者....

2017-12-22 21:02:53

阅读数 109

评论数 0

7、Queue

Queue集合的作用Queue用于模拟队列这种数据结构。队列通常是指“先进先出(FIFO)”的容器。队列的头部保存在队列中存放时间最长的元素,尾部保存存放时间最短的元素。新元素插入到队列的尾部,取出元素会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。Queue接口与List、Set同一...

2017-12-22 21:02:27

阅读数 153

评论数 0

6、fail-fast机制

fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。换句话说,只要是线程不安全的集合都可能,抛出此异常例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合...

2017-12-22 21:01:46

阅读数 137

评论数 0

5、ArrayList详解

ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继承了...

2017-12-22 21:01:00

阅读数 165

评论数 0

4、List接口详解

List简介list:集合中的元素按照索引的位置排序,集合中的元素可以重复,可以为null,允许按照对象在集合中的索引位置检索对象,遍历的顺序和放入的顺序是一致的。List接口的定义List的定义如下:public interface List<E> extends Collectio...

2017-12-22 20:56:54

阅读数 104

评论数 0

3、Iterator、Iterable详解

Iterator概述如何判断当前迭代器的位置,及如何移动? java的迭代器是无法将随机访问的,也就是说不可以根据输入的数字来跳转到指定的位置,迭代器到达任何一个位置都需要经过next或者可能存在的previous方法实现,只能一个一个的移动。 是迭代器并不是指向一个元素的,而是指向元素之间的。...

2017-12-22 20:55:16

阅读数 162

评论数 0

2、Collection架构

概要collection是个接口,它有2个分支:List和Set。list为有序的队列,set为不可重复的集合。 collection定义了集合的基本操作,AbstractCollection抽象类实现了collection的大部分功能。Collection中有一个iterator()方法,它的...

2017-12-22 20:54:46

阅读数 76

评论数 0

1、集合框架概述

概念与作用(1.8.0_144)java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。在编程时,常常需要集中存放多个数据,当然我们可以使用数组来保存多个对象。但数组长度不可变化,一旦初始化数组时指定了数组长度,则这个数组长度是不可变的,如果需要保存个数变化的数据,数组就有...

2017-12-22 20:53:45

阅读数 104

评论数 0

Java 8 Optional的正确姿势

调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。新版本的Java,比如Java 8引入了一个新的Optional类。Optional类的Jav...

2017-12-21 22:58:14

阅读数 1053

评论数 0

8、线程的中断机制

中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以判断线程是否应该被中断(中断标示值是否为true)。 判断线程是...

2017-12-21 21:52:31

阅读数 79

评论数 0

7、多线的异常处理

在普通的单线程程序中,捕获异常只需要通过try … catch … finally …代码块就可以了。那么,在并发情况下,比如在父线程中启动了子线程,如何正确捕获子线程中的异常,从而进行相应的处理呢?常见错误很简单嘛,直接在父线程启动子线程的地方try … catch一把就可以了,其实这是不对的。...

2017-12-21 21:52:10

阅读数 92

评论数 0

6、ThreadLocal线程变量

定义并发应用的一个关键地方就是共享数据。这个对那些扩展Thread类或者实现Runnable接口的对象特别重要。如果你创建一个类对象,实现Runnable接口,然后多个Thread对象使用同样的Runnable对象,全部的线程都共享同样的属性。这意味着,如果你在一个线程里改变一个属性,全部的线程都...

2017-12-21 21:51:51

阅读数 93

评论数 0

5、守护线程

定义在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程、后台线程)只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。User和Daemon两者几乎没有区别,唯一的不...

2017-12-21 21:51:15

阅读数 94

评论数 0

4、基本的线程同步

monitor他们是应用于同步问题的人工线程调度工具。讲其本质,首先就要明确monitor的概念,Java中的每个对象都有一个监视器,来监测并发代码的重入。在非多线程编码时该监视器不发挥作用,反之如果在synchronized 范围内,监视器发挥作用。当某代码并不持有监视器的使用权时(如图中5的状...

2017-12-21 21:50:56

阅读数 65

评论数 0

3、线程的调度

1. 线程睡眠 Thread.sleep(long millis)方法,使线程转到阻塞状态。millis参数设定睡眠的时间,以毫秒为单位。当睡眠结束后,就转为就绪(Runnable)状态。 sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会执行;由于sle...

2017-12-21 21:49:48

阅读数 66

评论数 0

2、线程的创建

线程的创建Java 提供了三种创建线程的方法: - 通过实现 Runnable 接口; - 通过继承 Thread 类本身; - 通过 Callable 和 Future 创建线程。我们将使用第二种方法来制作一个简单的程序,它能创建和运行10个线程。每一个线程能计算和输出1-10以内的乘法表...

2017-12-21 21:49:22

阅读数 72

评论数 0

1、线程的基本概念

多线程线程与进程 进程: 一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程: 表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序...

2017-12-21 21:47:11

阅读数 280

评论数 0

35、MapperMethod映射器方法.

MapperMethod:映射器方法映射器方法是最底层的被调用者,同时也是binding模块中最复杂的内容。它是MyBatis中对SqlSession会话操作的封装,那么这意味着什么呢?意味着这个类可以看做是整个MyBatis中数据库操作的枢纽,所有的数据库操作都需要经过它来得以实现。 我们单独...

2017-06-27 23:08:28

阅读数 478

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭