- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入理解JAVA语言
在本例中,在构造函数中调用了一个动态绑定的方法sayHello(),这时,会使用那个方法被覆盖的定义,而这时对象尝未完全构建好,所以School还没有赋值。 因此,可能的话,在构建器中避免调用任何方法,用尽可能简单的方法使对象进入就绪状态。 惟一能够安全调用的是具有final属性的方法。 5.4 对象清除与垃圾回收 new创建对象。 自动清除,清除过程称为垃圾回收。 5.4.1 对象的自动清除 对象回收是由 Java虚拟机的垃圾回收线程来完成的。 系统中的任何对象都有一个引用计数器,当其值为0时,说明该对象可以回收。 String method(){ String a,b; a=new String(“hello world”); b=new String(“game over”); System.out.println(a+b+”Ok”); a=null; a=b; return a; } 5.4.2 System.gc()方法 它是System类的static方法, 它可以要求系统进行垃圾回收。但它仅仅只有建议权。 5.4.3 finalize()方法 关闭打开的文件、清除一些非内存资源等工作需要在对象懂得回收时进行,这可以通过覆盖Object 的finalize()方法来实现。因为系统在回收时会自动调用对象的finalize() 方法。 一般来说,子类的finalize()方法中应该调用父类的finalize()方法,以保证父类的清理工作能够正常进行。 protected void finalize() throws Throwable TestCleanUp.java 本例中,每个类都有一个方法cleanup()来负责清理工作。先完成本类的有关工作,然后调用父类的清除方法。 finally表明:无论会发生什么事情,总是为X调用cleanup(). JDK7中的try-with-resources 对于实现了java.lang.AutoCloseable的对象 try( Scanner scanner= new Scanner( … ) ){ } 会自动调用其close()方法 5.5 内部类与匿名类 内部类是在其他类中的类。 匿名类是一种特殊的内部类,它没有类名,在定义类的同时就生成该对象的一个实例。 1.内部类的定义和使用 将类的定义置入一个用于封装它的类内部即可。 内部类不能够与外部类同名。 在封装它的类的内部使用内部类,与普通类的使用方式相同,在其他地方使用,类名前要冠以外部类的名字。在用new创建内部类时,也要在 new前面冠以对象变量。 InnerUse.java 2. 在内部类中使用外部类的成员 内部类中可以直接访问外部类的其他域及方法。即使private也行。 如内部类中有与外部类同名的域或方法,可以用this来访问外部成员。 TestInnerThis.java 3.内部类的修饰符 内部类与类中的域、方法一样是外部类的成员,它的前面也可以有访问控制符和其他修饰符。内部类可用的修饰符比外部类的修饰符更多。(外部类不能够使用protected,private,static等修饰,而内部类可以。 访问控制符:public,protected,默认及private。 Final,abstract。 用static修饰表明该内部类实际是一种外部类。 Static 环境在使用时要遵循以下规则: 1、实例化static内部类时,在 new前面不需要用对象变量; 2、Static内部类中不能访问其外部类的非static的域及方法,既只能够访问static成员。 3、static方法中不能访问非static的域及方法,也不能够不带前缀地new 一个非static的内部类。 TestInnerStatic.java 5.5.2 方法中的内部类及匿名类 1。方法中的内部类 在一个方法中也可以定义类。这种类称为方法中的 内部类。 TestInnerMethod.class 1、同局部变量一样,方法中的内部类前不能够用 public,private,protected,static修饰,但可以被final或者abstract修饰。 2、方法中的内部类可以访问其外部类的成员;若是Static中的内部类可以访问外部类的static成员。 3、方法中的内部类中,不能够访问该方法的局部变量,除非是final局部变量。 4、方法中定义的类,在其他地方使用时,没有类的情况,正像例中一样,只能够用其父类来引用这样的变量。 2。匿名类 匿名类有以下几个特点: 1、不取名字,直接用其父类的名字。 2、类的定义域创建该类的一个实例同时进行,即类的定义前面有一个new。不使用关键词
您可能关注的文档
最近下载
- 中职《电气控制线路安装与检修》课程标准剖析.pdf VIP
- 医疗卫生类结构化面试试题.docx VIP
- 附件2.安全生产标准化考评工作规则(Q_CNNC GB 20-2021).pdf VIP
- 高层建筑筏形与箱形基础技术规范.docx VIP
- CNC技术员考核试题.docx VIP
- 2025湖北武汉长江新区产业投资有限公司招聘14人考试备考题库及答案解析.docx VIP
- 溴甲烷安全技术说明书MSDS.docx VIP
- 2024-2025学年广东深圳中学高二(上)期末数学试卷【答案版】.pdf VIP
- 2025湖北武汉长江新区产业投资有限公司招聘14人笔试备考题库及答案解析.docx VIP
- 普通遗传学真题及答案2025.doc VIP
原创力文档


文档评论(0)