Java-内存分析.pptVIP

  • 6
  • 0
  • 约5.89千字
  • 约 18页
  • 2016-12-19 发布于贵州
  • 举报
引用类型和基本类型在内存中分配内存的方式不同, 引用类型出现的时候,jvm会为它开辟两个内存空间,一个存放引用,一个存这个引用代表的真实势力。 基本数据类型的数据出现只会开辟一个内存空间,存放他的值 基本数据类型就这八种,引用数据类型包括类、数组、接口等。 ? ? ? (初学者可能会把String、Integer等类型和char、int等基本数据类型混淆,这里说明一下,Integer相当于int的“包装类”,String可以看做是char[]类型的数组,此外,Byte、Float等类似。所以这些类型应当当做引用类型去对待。) * 因为newName类型为String类型,所以newName的实际内容也会存放于堆内存中,栈内存分配的内存单元newName中只是存放指向堆内存中“小红”的地址。 * newAge的类型为int类型,所以直接将值(18)存放在栈内存分配的单元newAge中。 * 到了函数这块,会有一点点复杂,因为SetName(String name)函数有一个类型为引用类型参数name,而且传入的实参为newName,这时newName中存储的值(地址2)会赋值给这个name,所以这时newName和name存储的地址相同(即同时指向“小红”)。同理,当执行了SetName(String name)函数中的this.name=name时,会把栈内存中name中存储的值(地址2)赋值给堆内存中person的name,此时person中的name里存储的也是指向“小红”的地址。 * 之后,person原来的name值“小明”会在某个时刻被java的垃圾回收机制所回收。 * ?方法执行完毕后,栈内存中变量name所占的内存被回收。 栈这部分空间的分配和释放都是由系统自动实施的。对于所有的程序设计语言来说,栈这部分空间对程序员来说是不透明的 * 跟SetName(String name)一样,执行时也会在栈内存中为形参age分配内存单元,只不过SetAge(int age)函数中的形参age为int类型,所以直接在栈内存分配的单元中直接存储实参的值(18)即可。 * 方法执行完毕后,栈内存中变量age所占的内存被回收。 * 方法执行完毕后,栈内存中变量age所占的内存被回收。 * “ ” “ ” Java 内存分析 ——郝园园 要点说明 程序的执行过程 Java中的数据类型 内存分析 程序的执行过程 内存分析 实践出真知,下面具体在代码中分析一下 内存分析 public?class?Person?{?? ????public?String?name;?? ????public?int?age;?? ????public?Person(String?name,int?age){?? ????????this.name?=name;?? ????????this.age=age;?? ????}?? ????public?void?SetName(String?name){?? ????????this.name=name;?? ????}?? ????public?void?SetAge(int?age){?? ????????this.age=age;?? ????}?? ????public?void?SayHello(){?? ????????System.out.println(我的名字叫+name+,我+age+岁了);?? ????}?? }?? 内存分析 public?class?club?{?? ????public?static?void?main(String[]?args)?{?????????????????? ???????Person?person=new?Person(“小明,15);?? ???????String?newName=“小红;?? ???????int?newAge=18;?? ???????person.SetName(newName);?? ???????person.SetAge(newAge);?? ???????person.SayHello();?? ????}?? }?? 内存分析 内存分析 下面对Main方法中的代码逐一分析 Person?person=new?Person(“小明,15);?? Person.class Java中的数据类型 先来复习一下Java的数据类型,Java中数据类型分为两种,基本数据类型和引用数据类型,如下图: 内存分析 下面对Main方法中的代码逐一分析 2.String?newName=小红;?? 内存分析 下面对Main方法中的代码逐一分析 3.int?newAge=18;? 内存分析 下面对Main

文档评论(0)

1亿VIP精品文档

相关文档