自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 JAVA学习笔记——并发之JAVA内存模型JMM

       JAVA内存模型(JAVA Memory Model)简称JMM,JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序(在术语上与JAVA运行时内存分布有区别,后者是指堆、方法去、线程栈等如何分配内存的)。JAVA内存模型     JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的...

2018-09-04 23:14:19 255

转载 JAVA学习笔记——并发之Synchronized底层优化(偏向锁、轻量级锁)

一、重量级锁  上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron...

2018-08-30 22:48:54 163

转载 JAVA学习笔记——并发基础知识点

1.并发编程三要素原子性原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。 有序性程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序) 可见性当多个线程访问同一个变量时,如果其中一个线程对其作了修改,其他线程能立即获取到最新的值。2. 线程的五大状态创建状态当用 new 操作符创建一个线程的时候 就绪状态调用 ...

2018-08-30 22:47:12 214

转载 JVM源码分析之JVM启动流程

前言执行Java类的main方法,程序就能运行起来,main方法的背后,虚拟机究竟发生了什么?如果你对这个感兴趣,相信本文会给你一个答案,本文分析的openjdk版本为openjdk-7-fcs-src-b147-27class BootStrap { public static void main(String[] args) { for (String str...

2018-08-29 23:07:28 10474 1

原创 Linux学习随记(三)

一、文本编辑命令vi1. 打开文件:上下左右键可移动光标vi 文件名2.打开文件后,按下字母 i 进入编辑模式,按ESC退出编辑模式,输入  :wq 保存后退出vi浏览模式命令[Ctrl] + f 向下翻页 [Ctrl] + b 向上翻页 0 或 Home 键 移动光标到行首 $ 或 End 键 移动光标到行尾 G 移动到文件最后...

2018-08-28 23:45:53 200

原创 Linux学习随记(二)

一、文件与目录相关命令1. cd: 切换目录    .           : 代表此层目录  ..            : 上一层目录  -            :前一个工作目录  ~           :当前用户主文件夹~account : account用户的主文件夹   2. pwd: 显示当前目录3.mkdir: 新建一个目录mkdir -mp...

2018-08-22 00:16:07 154

原创 Linux学习随记(一)

1. 硬件设备 (1)各设备在Linux中的文件名设备文件名IDE硬盘/dev/hd[a-d]SCSI/SATA/USB 硬盘/dev/sd[a-p]U盘/dev/sd[a-p](与SATA相同)软驱/dev/fd[0-1]打印机25针: /dev/lp[0-2]USB: /dev/usb/lp[0-15]鼠标USB: /dev/usb/mouse[0-15]PS2: /dev/psaux当前CD...

2018-06-13 23:38:51 163

原创 Java学习笔记——并发之ThreadLocal

ThreadLocal是一种线程本地存储机制,可以为使用相同变量的每个不同线程都创建不同的存储。因此,如果你有5个线程都要使用变量x锁表示的对象,线程本地存储就会产生5个用于x的不同存储块。1. ThreadLocal的用法    ThreadLocal在是泛型类,可以使用set方法设置变量的值,使用get方法获取变量值,示例代码如下:public class ThreadLoca

2017-12-05 23:18:04 459

原创 Java学习笔记——并发之synchronized

synchronized是Java关键字,为多线程场景下防止临界资源访问冲突提供支持,当任务要执行别synchronized关键字保护的代码时,它将检查锁是否可用,然后获取锁,执行代码,最后再释放锁。有三种用法:synchronized方法、synchronized静态方法、synchronized代码块。1.synchronized方法 首先看一下没有加synchronized关键字

2017-12-04 23:23:39 208

原创 Java学习笔记——容器之Queue

Queue是一种很常见的数据结构类型,在Java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。java中具有Queue功能的类主要有如下几个:AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, Linke

2017-12-03 21:55:50 1006

原创 Java学习笔记——容器之Set

Set是元素不重复的集合,常用的Set有HashSet、LinkedHashSet、TreeSet、

2017-12-02 23:39:16 281

原创 JAVA学习笔记——容器之Map

本文是实现Map的几个接口的类的总结,文中引用了潘威威的博客的大部分内容,在此表示感谢。Map的整体结构Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承Collection接口。AbstractMap:实现了Map接口的抽象类。Map的基本实现,其他Map的实现类可以通过继承AbstractMap来减少编码量。Sort

2017-12-02 16:55:41 285

原创 Java学习笔记——容器之List

本文主要是分析实现List接口的ArrayList、LinkedList、Vector、Stack的源码。1. ArrayList     ArrayList是使用Object数组保存数据的,并且加上了transient关键字,所以在ArrayList序列化时,elementData不会直接被序列化 transient Object[] elementData;

2017-11-28 22:58:40 221

转载 Java学习笔记——容器

本文是对于JAVA容器的全面总结,主要内容均来源于他人博客,为了便于自己学习才拷贝到自己博客目录下,但是中间也加入了一些源码分析。Java容器家族图容器从最大的概念来分:分为Collection和Map,区别就是Collection是一个槽的,Map是两个槽的(键值对)Collection划分为:List,Set,Queue List接口常见有:

2017-11-27 16:18:20 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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