java程序员面试必备的个要点.docVIP

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

第一,谈谈final, finally, finalize的区别。 final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally再异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。 finalize方法名。Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 续: final 变量不能改变吗? public class FirstClass { ???? final StringBuilder sb = new StringBuilder(init final......); ???? public static void main(String[] args) { ???????? FirstClass fc = new FirstClass(); ???????? System.out.println(fc.sb.toString()); ???????? fc.sb.append( changed); ???????? System.out.println(fc.sb.toString()); ???? } } 看看能不能改变? 不能改变的是这个变量的句柄(的值),也就是它不能再指向其它对象,而指向的对象本身你只要有方法就可以任意改变. final方法不能重载吗? public class FirstClass { ???? final StringBuilder sb = new StringBuilder(init final......); ???? final void a(){} ???? void a(String a){} ???? public static void main(String[] args) throws Exception{ ???????? FirstClass fc = new FirstClass(); ???????? fc.a(); ???????? fc.a(); ???? } } 只是不能被继承而已 finally从句除了在try{}catch(){}中调用了System.exit(x); 其它任何时候都会在离开该段之前执行,并不是只有抛出异常,即使return,break label也一样. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 答案:可以继承其他类或完成其他接口,在swing编程中常用此方式。 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 1--Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 2--Nested Class 一般是C++的说法,Inner Class 一般是JAVA的说法。Nested class分为静态Static nested class 的和非静态的 inner class,静态的Static nested class是不可以直接调用它的外部类enclosing class的,但是可以通过外部类的引用来调用,就像你在一个类中写了main方法一样。非静态类inner class 可以自由的引用外部类的属性和方法,但是它与一个实例绑定在了以其,不可以定义静态的属性、方法 -- 1.nested(嵌套)class(一般是C++的说法) nested class是合成型聚集关系(Composite Aggregation)的另一种表达

文档评论(0)

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

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

1亿VIP精品文档

相关文档