Java课件 第八讲 无用对象回收19.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java课件 第八讲 无用对象回收19

第8讲 无用对象回收 要点 简单变量与引用变量 变量的有效期与对象的生存期 无用对象回收 简单变量与引用变量 Java语言的变量分类 简单变量 只有固定的几种类型 字节型、短整型、整型、长整型、单精度浮点数,双精度浮点数、字符型和逻辑型 引用变量 除上面列出之外的其它所有类型 例:字符串、数组、对象等 简单变量与引用变量 简单变量的存储形式 存放的是数值本身 利用赋值语句将变量a赋给变量b时,变量a的值将复制给变量b 定义一个简单变量之后,它立刻有随机的数值,如果直接使用该变量,会得到无法预料的结果 简单变量需要进行初始化,以保证“先赋值,再使用”的原则 简单变量与引用变量 引用变量的存储形式 存储的仅仅是一个地址(指针),指针指向实际的对象所在的内存地址 使用前必须初始化,使其指向内存中实际存在的一个对象 用赋值语句将变量a赋给变量b时,对象不会复制,而是直接让b也指向同一个对象 简单变量与引用变量 引用变量的初始化 当定义一个引用变量时,它只是空指针,不指向任何地址 例:BoardGame myGame; 用new关键字创建对象时,Java会在内存中分配适当的空间,将新建对象放进该空间 例:new BoardGame(); 简单变量与引用变量 引用变量的初始化 用new关键字创建的对象之后,如果不立即用一个变量指向,则对象会丢失。 new关键字应当紧跟在赋值语句后面 例:BoardGame myGame = new BoardGame(); 如果给引用变量赋一个新的对象,系统会新建一个对象,丢弃原先的对象 例:myGame = new BoardGame(); 简单变量与引用变量 类成员变量的初始化 简单变量 默认初始化为0(整型、浮点型变量),空值(字符型变量),或false(逻辑变量) 可以直接使用 引用变量 默认初始化为空指针,不指向任何对象 使用前必须先用new关键字进行初始化 变量的有效期与对象的生存期 引用变量与对象的分离 在Java中,引用变量与对象是分开的 通过赋值语句,多个变量可以指向同一对象 存在没有变量的对象,如字符串 存在没有对象的变量,如尚未初始化的变量 变量的有效期≠对象的生存期 变量的有效期与对象的生存期 引用变量的有效期 从变量定义开始,到变量所处区块结束为止 三类变量的有效期 类变量(类的静态变量) 类的成员变量 函数中的局部变量 有效期长度比较 类变量成员变量局部变量 变量的有效期与对象的生存期 类变量的有效期 类变量的产生:当程序第一次出现类时,不管是否创建了类的实例,都会为类形成一个模板,此时类变量已经在模板中形成,并且自动初始化; 类变量的消失:类变量的有效期直到类消失为止,而一般情况下,除非程序中止,否则类不会消失的。因此类变量的有效期直到程序结束为止。 变量的有效期与对象的生存期 成员变量的有效期 成员变量的产生:从对象生成起。当用new关键字生成一个对象之后,它的成员变量就产生了,并且自动初始化; 成员变量的消失:至对象被回收为止。当对象失去作用,被自动回收之后,成员变量即自动消失; 变量的有效期与对象的生存期 局部变量的有效期 局部变量的产生:从变量定义之处开始。局部变量不会自动初始化,需要手动初始化之后才能使用; 局部变量的消失:到变量所在的区块结束位置为止; 区块的含义:函数中用大括号括起来的部分,不一定是整个函数; 变量的有效期与对象的生存期 局部变量的有效期 public class LocalVarDemo { public static void main(String[] args) { String var1 = 局部变量,在整个函数内都有效。; if (true) { String var2 = 局部变量,只在if块内有效。; System.out.println(var2); System.out.println(var1); } else { System.out.println(var2); } String var2 = 另一个局部变量,定义在if块之后,因此不会混淆。; System.out.println(var2); System.out.println(var1); }} 变量的有效期与对象的生存期 对象的生存期 对象的产生:被new关键字生成开始 对象的消失:直到该对象不能再通过任何变量被访问到为止 只要对象被某个引用变量所指向,不管变量是类变量、成员变量,还是局部变量,对象都会一直生存着 变量的有效期与对象的生存期 对象生存期——案例说明 public class ObjLifeDemo { public String pubStr1;

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档