1、计算机结构 (1)出现 冯诺依曼,提出计算机由五大组成部分,输入设备,输出设备存储器,控制器,运算器 (2)CPU 中央处理器,是计算机的控制和运算的核心,我们的程序最终都会变成指令让CPU去执行,处理程序中的数据。 (3)内存 我们的程序都是在内存中运行的,内存会保存程序运行时的数据,供CPU ...
分类:
编程语言 时间:
2020-08-27 13:11:15
阅读次数:
60
什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此, ...
分类:
编程语言 时间:
2020-08-04 09:52:44
阅读次数:
66
https://www.cnblogs.com/FlyAway2013/p/11051514.html 从一个OutOfMemoryError 学会了分析Java内存泄漏问题 阅读目录 问题 分析 总结 以前都是好好的,最近出现了 oom。 问题 开始是: java.lang.OutOfMemory ...
分类:
编程语言 时间:
2020-07-31 19:24:28
阅读次数:
104
内存分析 内存分析: Java内存分析: 堆: 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 栈: 存放基本变量类型(会包含这个基本类型的具体数值) 引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区: 可以被所有的线程共享 包含了所有的class和static变量 三 ...
分类:
编程语言 时间:
2020-07-31 14:06:11
阅读次数:
77
1.数组概述 数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 2.数组声明创建 首先必须声明数组变量,才能在程序中使用数组。语法如下: java语言使用new操作符 ...
分类:
编程语言 时间:
2020-07-30 01:47:12
阅读次数:
82
说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存和栈内存的这种划分方式比较粗糙,这种划分方式只能说明大多数程序员最关注的、与对象内存分配关系最密切的内存区域是这两块,J ...
分类:
其他好文 时间:
2020-07-29 21:56:54
阅读次数:
76
Java内存模型(Java Memory Model,JMM)是java虚拟机规范定义的,用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异,这样就可以实现java程序在各种不同的平台上都能达到内存访问的一致性。可以避免像c等直接使用物理硬件和操作系统的内存模型在不同操作系统和硬件平 ...
分类:
编程语言 时间:
2020-07-24 22:01:52
阅读次数:
78
虚拟机栈 虚拟机栈概述 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 有不少 Java 开发人员一提到 Java 内存结构,就会非常粗粒度地将 ...
分类:
其他好文 时间:
2020-07-20 13:15:56
阅读次数:
55
1、概述 在Java中,内存分为两种,一种是栈内存,另一种就是堆内存。 2、堆内存 heap 1.什么是堆内存? 堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。 2.堆内存的特点是什么? ...
分类:
编程语言 时间:
2020-07-15 22:45:26
阅读次数:
63
一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。 核心概述 1.一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 2.Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最 ...
分类:
其他好文 时间:
2020-07-15 12:57:51
阅读次数:
71