摘要:
根据《Java 虚拟机规范(Java SE 7版)》规定,Java虚拟机所管理的内存,将会包括以下几个运行时数据区域: 注: 1、由所有线程共享的数据区: 对应 java内存模型的主内存,各线程共有; 2、线程隔离的数据区:对应 java内存模型的工作内存,各自线程持有; 1.程序计数器(线程私有) 阅读全文
摘要:
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 定义模型的目标 Java内存模型的主要目标:定义程序中各个变量的访问规则,即:在虚拟机中,将变 阅读全文
摘要:
一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 1、可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用 阅读全文
摘要:
String是final修饰的类,是不可变的,所以是线程安全的。 一、Java String类为什么是final的? 1.为了实现字符串池 2.为了线程安全 3.为了实现String可以创建HashCode不可变性 二、Java final的用途? 1、final可以修饰类,方法和变量, 2、fin 阅读全文