1、存储区域 1)Heap堆 由malloc分配的内存块,由程序员控制内存块的申请和释放(malloc/free)。如果申请的堆内存没有被释放掉,在程序结束时操作系统会自动回收。涉及问题:缓冲区溢出、内存泄漏。 2)Free store 自由存储区 由new分配的内存块。由程序员控制内存块的申请和释 ...
分类:
编程语言 时间:
2021-04-14 11:48:30
阅读次数:
0
###1.volatile是Java虚拟机提供的轻量级同步机制 1.1保证可见性(一个线程对主内存中变量的修改,其他线程会马上收到通知) 1.2不保证原子性 1.3禁止指令重排 ###2.JMM(Java Memory Model)(Java内存模型) JMM本身是一种抽象的概念并不真实存在,它描述 ...
分类:
其他好文 时间:
2021-03-18 14:39:46
阅读次数:
0
1、为什么要引入Yarn和Spark。 (1)现有的hadoop生态系统中存在的问题 1)使用mapreduce进行批量离线分析; 2)使用hive进行历史数据的分析; 3)使用hbase进行实时数据的查询; 4)使用storm进行实时的流处理; (2)选用spark的原因 1) 应用于流式计算的S ...
分类:
其他好文 时间:
2021-03-16 13:32:12
阅读次数:
0
本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源、有趣、入门级的 ZooKeeper 教程,面向有编程基础的新手。 本系列教程是从零开始讲解 ZooKeeper,内容从最基础的安装使用到背后原理和源码的讲解,整个系列希 ...
分类:
其他好文 时间:
2021-02-25 12:19:55
阅读次数:
0
什么是JMM JMM即是JAVA内存模型(java memory model)。在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平 ...
分类:
其他好文 时间:
2021-02-18 13:41:51
阅读次数:
0
1.原子性(Atomicity) 定义:不可再分割的操作 Java内存模型直接保证原子性变量操作包括:read、load、assign、use、store 和 write 这6个 2.可见性(Visibility) 定义:是指当一个线程修改了一个共享变量的值时,其他线程能够立即的指这个修改 java ...
分类:
其他好文 时间:
2021-02-18 13:27:59
阅读次数:
0
jvm组成 jvm的组成包括 类加载器,字节码执行引擎,内存模型。(并不是只有内存模型) 这图必背 要理解每个区域放的数据是什么 栈:局部变量,栈帧的概念 程序计数器:字节码的行号指示器 本地方法栈:native修饰的方法所需要的内存区域 方法区:类信息、常量、静态变量数据 堆:所有的对象 直接内存 ...
分类:
其他好文 时间:
2021-01-22 12:12:24
阅读次数:
0
如果说造成线程不安全的情况是来源有时序性(代码优化),可见性(缓存一致性),原子性(线程切换)。 那么最简单的优化方式就是禁用缓存和编译优化。这样可以直接解决问题,就是代码的性能会相对的下降。合理的方案应该是按需禁用缓存以及编译优化。 这样的话就可以分治不同的代码,有并发的代码进行调整,没有并发的代 ...
分类:
编程语言 时间:
2020-12-30 11:16:29
阅读次数:
0
JVM 的内存结构和内存分配 a) Java 内存模型 Java 虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java 栈和 Java 堆。 1、方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量、Strin ...
分类:
其他好文 时间:
2020-12-18 12:32:45
阅读次数:
2
一:有参数构造方法 在之前我们要为一个对象赋值,先要创建好对象之后然后“对象名.属性名”或者调用属性的setter为属性赋值。但是在很多时候觉得这样做很麻烦,最好的做法是在创建对象的时候完成属性的初始化操作,此时需要使用到有参数构造方法方能完成该功能(有人把构造方法叫做构造器)。 DEMO:定义有参 ...
分类:
编程语言 时间:
2020-12-15 12:01:08
阅读次数:
6