标签:Java内存模型

Java

Java工程师成神之路:程序员的学习路线规划以及书籍推荐

2

puefu.he 发布于 2019-05-24

一、基础篇 面向对象 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 平台无关性 Java如何实现的平台无关性的 JVM还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala) 值传递 值传递、引用传递 为什么说Java中只有值...

阅读(18)评论(0)赞 (0)

Java

【求解惑】由一个Bug来看Java内存模型和垃圾回收

5

zhuangli 发布于 2019-05-22

前两天,项目中发现一个Bug。我们使用的 RocketMQ ,在服务启动后会创建MQ的消费者实例,来订阅topic。测试过程中,发现服务启动一段时间后,与 RocketMQ 的连接就会断掉,从而找不到订阅关系,监听不到数据。 一、Bug的产生 经过回溯代码,发现订阅的逻辑是这样的...

阅读(13)评论(0)赞 (0)

Java

Android工程师转型Java后端开发之路,自己选的路,跪着也要走下去!

2

小丁 发布于 2019-05-20

点击上方 石杉的架构笔记 ,右上选择“ 设为星标 ” 每日早8点半,精品技术文章准时送上 往期文章 BAT 面试官是如何360°无死角考察候选人的(上篇) 每秒上万并发下的Spring Cloud参数优化实战 分布式事务如何保障实际生产中99.99%高可用 记一位朋友斩获...

阅读(14)评论(0)赞 (0)

Java

BAT经典面试题,深入理解Java内存模型JMM

10

zhuangli 发布于 2019-05-16

Java 内存模型 Java 内存模型(JMM)是一种抽象的概念,并不真实存在,它描述了一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)的访问方式。试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到...

阅读(24)评论(0)赞 (0)

Java

Java并发中的内存模型

2

zhuangli 发布于 2019-05-12

JMM通过构建一个统一的内存模型来屏蔽掉不同硬件平台和不同操作系统之间的差异,让Java开发者无需关注不同平台之间的差异,达到一次编译,随处运行的目的,这也正是Java的设计目的之一。 CPU和内存 在讲JMM之前,我想先和大家聊聊硬件层面的东西。大家应该都知道执行运算操作的CP...

阅读(32)评论(0)赞 (0)

Java

给初中级JAVA准备的面试题

3

xiaoli.wang 发布于 2019-05-09

作者:徐靖峰 来源:kirito的技术分享 1 JAVA HashMap相关 HashMap一直是经典的面试题,所有面试官都喜欢问他,因为它可以牵扯出非常多的知识点,而面试者到底能了解到何种程度,则一定程度反映其综合能力。 细节聊扩容因子LoadFactor=0.75,初始大小I...

阅读(38)评论(0)赞 (0)

Java

Java并发编程学习体系

2

尖兵 发布于 2019-05-05

一、可见性、原子性、有序性(三大特性) 1)发生背景 由于cpu、内存、io设备的速度差异,做了以下优化 1、cpu 增加了缓存,以均衡与内存的速度差异 2、操作系统增加了进程、线程,以分时复用cpu,进而均衡cpu与io设备的速度差异 3、编译程序优化指令执行次序,使得cpu缓...

阅读(34)评论(0)赞 (0)

Java

JVM篇1:[-结构综述-]

19

hellas 发布于 2019-05-05

对java虚拟机的介绍文章多如牛毛,写本文目的在于梳理一下,也方便以后翻来看看。 另外网上文章的图都挺丑的,本文90%的图都出于在下亲笔,如图有错误,请指出,定当立即更正 本文主要介绍一下Java虚拟机的抽象结构以及一些基础的概念 复制代码 一、几个概念简介 1.JDK、JRE、...

阅读(26)评论(0)赞 (0)

Java

深入浅出虚拟机难(JVM)?现在让它通俗易懂

13

邓龙华 发布于 2019-05-01

大家可以想想,JVM 是什么?JVM是用来干什么的?在这里我列出了三个概念,第一个是JVM,第二个是JDK,第三个是JRE。相信大家对这三个不会很陌生,相信你们都用过,但是,你们对这三个概念有清晰的知道么?我不知道你们会不会,知不知道。接下来你们看看我对JVM的理解。 (1):J...

阅读(37)评论(0)赞 (0)

Java

Java内存模型-(2)

4

yanxinchi 发布于 2019-04-29

这里主要从JVM内存结构和GC角度讲解。 一、内存结构 主体结构 堆(heap) :线程共享,所有的对象实例、数组都要在堆上分配,是回收器主要管理的对象。 方法区(MEATHOD AREA) :线程共享,存储类信息、常量、静态变量、即时编译器编译后的代码。 方法栈(JVM Sta...

阅读(40)评论(0)赞 (0)

Java

最全的JAVA知识汇总(附讲解和思维导图)

1

dulong 发布于 2019-04-29

微信公众号: 内核小王子 关注可了解更多关于数据库,JVM内核相关的知识; 如果你有任何疑问也可以加我微信pigpdong 点击阅读原文可以获取思维导图。(由于图片太大)有对数据库和微服务以及JVM核心知识的总结,大家可以保存下来 jvm 一行代码是怎么运行的 首先,java代码...

阅读(46)评论(0)赞 (0)

Java

Java内存模型-(1)

darida 发布于 2019-04-29

在介绍Java内存模型之前,先来看下计算机的内存模型,然后再来看Java内存模型在计算机的内存模型基础上做了哪些事情。 要说计算机的内存模型,首先来看下为何要有内存模型? 一、为什么要有内存模型 首先,“内存模型”是一个与计算机硬件有关的概念,先来看下有什么关系? CPU和缓存一...

阅读(25)评论(0)赞 (0)

Java

深入理解Java——ConcurrentHashMap源码的分析(JDK1.8)

1

likai 发布于 2019-04-24

←←←←←←←←←←←← 快!点关注 一、前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,如果你对java的cas操作也是有一定了解的,因为在这个类中大量使用到了cas相关的操作来保证线程安全的。 二、概述 ConcurrentHashMap这个类在java.l...

阅读(42)评论(0)赞 (0)

Java

多线程基础之synchronized和volatile

2

邓龙华 发布于 2019-04-19

多线程安全三大特性: (1)原子性: 指一系列操作要么一起执行完成,要么一起不执行。例如i++操作其实并不是原子的,线程需要先获取到i的值然后在线程内存中对i的值进行+1再刷新到主内存中,在这个期间可能有别的线程对i的值进行了修改,这样得出的结果就是错误的,所以我们需要同步锁Sy...

阅读(46)评论(0)赞 (0)

Java

Java虚拟机08——Java内存模型与线程

6

songhua.gao 发布于 2019-04-18

绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的...

阅读(45)评论(0)赞 (0)

Java

Java虚拟机08——Java内存模型与线程

6

zhuangli 发布于 2019-04-18

绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的...

阅读(66)评论(0)赞 (0)

Java

Java虚拟机08——Java内存模型与线程

6

xubiao.zhuang 发布于 2019-04-18

绝大多数的运算任务都不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果等。由于计算机的存储设备与处理器的运算速度有接数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的...

阅读(24)评论(0)赞 (0)

Java

Java并发 — Java内存模型

1

小丁 发布于 2019-04-16

Java内存模型解决了并发程序中的 可见性问题 和 有序性问题 Java内存模型 按需禁用 CPU缓存会导致可见性问题,编译优化会导致有序性问题 解决可见性和有序性 最直接 的办法: 禁用CPU缓存和编译优化 问题虽然解决了,但程序性能会大大下降 合理的方案: 按需禁用CPU缓存...

阅读(35)评论(0)赞 (0)