a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 84|回复: 0

[其他] JAVA心得:JAVA程序员面试10问

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
第一,谈谈final, finally, finalize的区别。  / L9 f; ~3 }7 p9 |* V. u$ C
final 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载  5 z& }8 I+ ^, F/ Z
finally 再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。    j' L2 m" j" f) E
finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。  
1 W: G9 L. P6 J' \9 V6 x
" w3 a( W/ {9 Z" r# h: C第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?  
( H6 O0 H$ H  P" k匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现。  4 j: c' ?3 B8 Y6 m* N

, R# {% E) ?7 s+ k, o5 u& S第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。  ) ~( @) X& ^) x; g
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1  8 z; q% d( x. A4 a
注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象  
$ w/ Y$ H7 o4 R  P# D+ f
3 C1 S# C/ f# r) K- Z- B0 K第四,&和&&的区别。  
0 t. D. {+ a( h* I, g&是位运算符。&&是布尔逻辑运算符。  
$ Q; G( _9 N" `* C) P' P
' p# n# N) G4 k# j& P1 m第五,HashMap和Hashtable的区别。  
0 r5 e4 e& Y. S! ^4 e- b都属于Map接口的类,实现了将惟一键映射到特定的值上。  : ]7 `; l/ o! f8 Z6 a
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。  
( N; t9 z; u, j6 V1 j: g# e7 x6 cHashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。  / c: g9 o4 i2 V8 z+ X' j6 ^* U( V
第六,Collection 和 Collections的区别。  3 C9 l2 v2 r: y0 q! d; h' S& _
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。  
. D" Y; s. d: I' M# @Collection是个java.util下的接口,它是各种集合结构的父接口。    G0 c0 ~2 Z" n
" P' s, D8 n' c+ H6 w# h
第七,什么时候用assert。  
6 _( a0 V/ s( q% Y; L5 `断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:  
: g  e8 Y1 A7 y. E* Uassert(a > 0); // throws an AssertionError if a
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-17 22:52 , Processed in 0.182450 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表