package jvm;
/** JVM管理内存F */
public class JVMOfRAM {
/** 类中有方法,属性,对象他们在内存中是怎么被JVM分配的? */
/**
* 数据:放在堆和栈里面 堆:放的对象:new 类名(参数);
* 栈:放的是方法和变量,主方法和调用的方法,基本类型变量和引用变量。
* 代码区:存放方法的代码
*/
public static void m1(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void m2(int a) {
a = a + 1;
}
public static void m3(User p) {
p.setAge(35);
}
public static void m4(User a, User b) {
User temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println("****main of a,b,c****start********");
System.out.println("a= " + a);
System.out.println("b= " + b);
System.out.println("c= " + c);
System.out.println("***m1(a,b)a,b进行交换方法**********");
m1(a, b);
System.out.println("a= " + a);
System.out.println("b= " + b);
System.out.println("*****m2(c) c的值加1*********");
m2(c);
System.out.println("c= " + c);
System.out.println("******m3(u)**u.setAge(35);*******");
User u = new User();//User 类中的属性age初始化为10;
System.out.println("User 类中的属性age初始化为:"+u.getAge());
m3(u);
System.out.println("u.getAge()= " + u.getAge());
System.out.println("*****m4(u1,u2)****u1和u2进行交换****");
User u1 = new User();
User u2 = new User();
u1.setAge(100);
u2.setAge(50);
m4(u1, u2);
System.out.println("u1.getAge()= " + u1.getAge());
System.out.println("u2.getAge()= " + u2.getAge());
System.out.println("*******main of*****end***************");
}
/*****main of a,b,c****start********
a= 10
b= 20
c= 30
***m1(a,b)a,b进行交换方法**********
a= 10
b= 20
*****m2(c) c的值加1*********
c= 30
******m3(u)**u.setAge(35);*******
User 类中的属性age初始化为:10
u.getAge()= 35
*****m4(u1,u2)****u1和u2进行交换****
u1.getAge()= 100
u2.getAge()= 50
*****************end****************/
}
package jvm;
public class User {
private int age = 10;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
上面是一个简单的例子,上面的结果自己画画内存空间图就知道了
分享到:
相关推荐
JVM内存管理,平时大家估计都不是很在意,一直到快跳槽了,快面试了,大家可能会看看,也可能直接忽略不计了。JVM内存管理是虚拟机的事情,和开发人员有什么关系。这种想法一直在我们开发人员的潜意识中存在:“内存...
JVM内存管理是Java平台的一个重要特性,其内存空间的分配和回收机制对Java应用程序的性能和稳定性有着至关重要的影响。 首先,JVM内存管理涉及的内存空间主要分为方法区(Method Area)、堆(Heap)、本地方法栈...
在这份由Sun Microsystems公司出版的《JVM内存管理白皮书》中,我们可以找到关于Java虚拟机(JVM)内存管理的详细介绍和深入分析。这份文档对于想要深入了解JVM工作原理的读者来说是一份宝贵的学习资料。在这份...
### Sun JVM原理与内存管理 #### 一、Sun JDK 1.6 GC (Garbage Collector) Sun JDK 1.6 的垃圾收集器(GC)是其内存管理的关键组成部分,它负责自动地回收不再使用的对象所占用的内存。本文将详细介绍Sun JDK 1.6 GC...
JVM 内存管理之道 JVM垃圾回收机制 JVM GC组合 JVM 内存监控工具
1. **堆内存(Heap)**:这是JVM管理的最大块内存区域,用于存储所有对象实例以及数组。堆内存又分为年轻代(Young Generation)和老年代(Old Generation),年轻代进一步细分为Eden区和两个Survivor区(S0、S1)。 2. **...
其次,垃圾回收是JVM管理内存的重要机制。它的目标是自动识别并释放不再使用的对象所占用的内存空间,以避免内存耗尽。垃圾回收算法主要包括分代收集(Young Generation、Tenured Generation 和 Perm Generation)、...
Java堆是Java虚拟机所管理的内存中最大的一块,它是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的是存放对象实例,几乎所有的对象实例都在这里分配内存。 - **特点**: - 线程共享。 - ...
### JVM内存管理详解 #### 一、引言 在探讨JVM内存管理之前,我们先来看一下为何要深入了解这一主题。对于深入掌握Java的人来说,内存管理是不可或缺的一部分。随着技术的发展,内存管理变得越来越自动化,但这也...
垃圾回收是JVM自动管理内存的关键特性,主要目标是回收不再使用的对象所占用的内存空间。根据对象存活的生命周期,GC分为不同的代际策略,例如分代收集。GC算法包括:标记-清除、复制、标记-整理和分代收集等。 ###...
在Java编程语言中,了解和控制JVM(Java虚拟机)的内存管理是至关重要的,尤其是在性能调优、资源管理和避免内存泄漏等方面。本文将深入探讨如何在Java中获取JVM内存大小,包括堆内存的总量、最大值以及剩余空间,并...
总结来说,Idea插件JProfiler11是Java开发者的得力助手,它将复杂的JVM内存管理和性能优化变得简单易行。熟练掌握JProfiler11的使用,不仅可以提高Java应用的性能,也能提升开发者的专业技能。在日常开发中,适时...
接着,垃圾回收是JVM管理内存的重要机制。基本的垃圾回收算法有几种: 1. 引用计数法:简单但无法处理循环引用的问题。 2. 标记-清除:分两步,标记所有可达对象,然后清除未标记的对象,会产生内存碎片。 3. 复制...
JVM 的内存管理是性能优化的关键,尤其是在高并发环境下,合理的内存配置和监控显得尤为重要。本文将深入探讨 VisualVM 及其集成的一系列命令行工具,包括 jps、jstat、jmap、jinfo、jstack 和 JConsole,帮助读者...
在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、垃圾回收、堆和非堆内存、内存分配和限制等方面。 JVM 结构 JVM 的结构主要由六个部分组成:JVM API、JVM 内部组件、平台...
MAT,全称Memory Analyzer Tool,是IBM开发的一款强大的Java虚拟机(JVM)内存分析工具,尤其适用于Mac OS X平台。这款工具可以帮助开发者诊断和解决Java应用中的内存泄漏问题,提高应用性能。MAT通过深入分析堆转储...
在JVM内存管理中,内存泄漏是一种常见的性能问题,可能导致应用运行缓慢,甚至崩溃。MAT通过解析JVM生成的hprof文件(内存快照),可以深入分析堆内存的各个部分,包括对象分配、存活状态、引用关系等,帮助定位问题...
Java虚拟机(JVM)调优与内存管理是优化Java应用程序性能的关键环节。JVM内存主要分为新生代、老年代和持久代,每个区域都有其特定的垃圾回收策略。 1. 引用计数法(Reference Counting):这是一种简单的垃圾回收...
总结来说,"jvm的内存结构图的ppt模型分析"会帮助我们深入了解JVM如何管理内存,从而优化代码,提高程序性能,并有效避免内存泄漏和溢出等问题。通过学习这个模型,开发者可以更好地调试和调整Java应用程序,提升...