随笔分类 - java
摘要:GC(Garbage Collection),java中的垃圾回收机制。 Java虚拟机中进行垃圾回收的场所有两个,一个是堆,一个是方法区。方法区通常被称为永久代,垃圾回收的频率较低,速度也较慢。(JDK1.8之后取消永久代改为Metaspace。元空间并不在虚拟机中,而是使用本地内存) 判断是否需
阅读全文
摘要:JVM全称java虚拟机。HelloWorld.java(源代码) ->Hello.class->010101(2进制编码),class文件和2进制编码需要在JVM中运行。 jvm运行时的数据区: 蓝色的是数据区,绿色的是指令区。 程序计数器:一块较小的内存空间,指向当前线程所执行的字节码指令的地址
阅读全文
摘要:Java有四种实现多线程的方式: 1).继承Thread类 2).实现Runnable接口 3).实现Callable接口 4).使用线程池 前三种实现方式的代码: line26,27行当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.r
阅读全文
摘要:记录一下公平锁,非公平锁,可重入锁(递归锁),读写锁,自旋锁的概念,以及一些和锁有关的java类。 公平锁与非公平锁: 公平锁就是在多线程环境下,每个线程在获取锁时,先查看这个锁维护的队列,如果队列为空或者自身就是等待队列的第一个,就占有锁。否则就加入到等待队列中,按照FIFO的顺序依次占有锁。 非
阅读全文
摘要:java中常见的集合类大部分是非线程安全的,在多线程情况下会报并发修改异常(ConcurrentModificationException) 并发下的ArrayList类: 解决办法:使用集合的工具类Collections包中的synchronizedList(), 或者直接使用java.util.
阅读全文
摘要:CAS(Compare-and-Swap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。 它的功能是判断内存中某个地址的值是否为预期值,如果是就改变成新值,整个过程具有原子性。 具体体现于sun.misc.Unsafe类中的native方法,调用这些native方法,JV
阅读全文
摘要:volatile是java虚拟机提供的轻量级的同步机制 JMM(Java内存模型)是围绕着并发编程中原子性、可见性、有序性这三个特征来建立的 原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其他线程能够
阅读全文

浙公网安备 33010602011771号