咸咸海风

https://github.com/xianxianhaifeng

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

2019年7月11日

摘要: 根据《Java 虚拟机规范(Java SE 7版)》规定,Java虚拟机所管理的内存,将会包括以下几个运行时数据区域: 注: 1、由所有线程共享的数据区: 对应 java内存模型的主内存,各线程共有; 2、线程隔离的数据区:对应 java内存模型的工作内存,各自线程持有; 1.程序计数器(线程私有) 阅读全文
posted @ 2019-07-11 16:32 咸咸海风 阅读(181) 评论(0) 推荐(0) 编辑

摘要: 简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 定义模型的目标 Java内存模型的主要目标:定义程序中各个变量的访问规则,即:在虚拟机中,将变 阅读全文
posted @ 2019-07-11 15:22 咸咸海风 阅读(114) 评论(0) 推荐(0) 编辑

摘要: 一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 1、可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用 阅读全文
posted @ 2019-07-11 14:18 咸咸海风 阅读(173) 评论(0) 推荐(0) 编辑

摘要: String是final修饰的类,是不可变的,所以是线程安全的。 一、Java String类为什么是final的? 1.为了实现字符串池 2.为了线程安全 3.为了实现String可以创建HashCode不可变性 二、Java final的用途? 1、final可以修饰类,方法和变量, 2、fin 阅读全文
posted @ 2019-07-11 10:51 咸咸海风 阅读(12387) 评论(0) 推荐(4) 编辑