1、基本概念 程序:代码,完成某一任务,代码序列(静态的概念) 进程:程序在某些数据上的一次运行(动态概念) 线程:一个进程可能包含一个或多个线程(占有资源的独立单元) 2、JVM与线程 JVM虚拟机在类被调用的时候启动 先启动JVM线程 其他线程(main线程) 3、JVM内存区域 方法区 主要存 ...
分类:
编程语言 时间:
2020-04-21 20:00:36
阅读次数:
86
java设计者将内存划分为不同的区域,每一块区域都有它自已的职责,粗略的分工如下:堆区是专门用来存储对象的,方法区是专门用来保存类的结构信息的,虚拟机栈是专门用来执行java方法的,本地方法栈是专门用来执行native方法的,程序计数器是专用记录线程执行字节码所执行的行号记录的。java内存区域统称 ...
分类:
其他好文 时间:
2020-04-20 09:16:07
阅读次数:
61
1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收。有时,开发者会将经常调用的对象或者变量定义为static,以便提高程序的运行性能。因此,不是常用到的对象或者变量,不要定义为static类型的变量,尤其是静态类 ...
分类:
编程语言 时间:
2020-04-13 18:11:56
阅读次数:
80
java线程的内存模型 java的线程内存模型中定义了每个线程都有一份自己的共享变量副本(本地内存),里面存放自己私有的数据,其他线程不能直接访问,而一些共享变量则存在主内存中,供所有线程访问。 上图中,如果线程A和线程B要进行通信,就要经过主内存,比如线程B要获取线程A修改后的共享变量的值,要经过 ...
分类:
其他好文 时间:
2020-04-07 22:50:27
阅读次数:
124
工作6年,私藏的25个,调优工具/技术网站,我贡献出来了 对于程序员来说,不停的学习新技术,是我们一直要做的事情,平时不积累,等到金三银四,金九银十的跳槽季节,身边的朋友,一个个的拿着高薪跳槽,自己只能眼巴巴的看着,后悔平时没有积累学习。 其实很多程序员最头疼的事情,就是找学习资料或面试题,我这里, ...
分类:
Web程序 时间:
2020-04-04 18:44:46
阅读次数:
241
Java 内存模型 什么是 Java 内存模型(Java Memory Model) Java 内存模型是一种规范,规范了 Java 虚拟机和计算机内存是如何进行协同工作的。 JMM 规定了一个线程如何和何时看到其它线程修改过后的的共享变量的值,以及在必须时如何同步的访问共享变量。 主内存、高速缓存 ...
分类:
编程语言 时间:
2020-04-02 19:38:31
阅读次数:
67
Java内存空间 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspot主要指方法区) ( ...
分类:
其他好文 时间:
2020-04-01 17:55:39
阅读次数:
89
1.哪些内存需要回收? Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不絮执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性。当方法结 ...
分类:
其他好文 时间:
2020-04-01 01:03:42
阅读次数:
77
JDK的命令行工具(jps:虚拟机进程状况工具,jstat:虚拟机统计信息监视工具,jinfo:Java配置信息工具,jmap:Java内存映像工具,jhat:虚拟机堆转储快照分析工具,jstack:Java堆栈跟踪工具);可视化工具(JConsole,VisualVM) 一. JDK的命令行工具 ...
分类:
编程语言 时间:
2020-03-31 01:16:50
阅读次数:
99
Java内存主要分为三个部分: 堆 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 栈 存放基本变量类型(会包含这个基本类型的具体数值) 引用对象的变量(会存放这个引用在在堆里面的具体地址) 方法区 可以被所有的线程共享 包含了所有的class和static变量 类加载到内存的流 ...
分类:
编程语言 时间:
2020-03-30 23:36:07
阅读次数:
90