java

位置:IT落伍者 >> java >> 浏览文章

探讨Java中最常见的十道面试题


发布日期:2021年01月11日
 
探讨Java中最常见的十道面试题

第一谈谈final finally finalize的区别
final?修饰符(关键字) 如果一个类被声明为final意味着它不能再派生出新的子类不能作为父类被继承因此一个类不能既被声明为 abstract的又被声明为final的将变量或方法声明为final可以保证它们在使用中不被改变被声明为final的变量必须在声明时给定 初值而在以后的引用中只能读取不可修改被声明为final的方法也同样只能使用不能重载
finally?再异常处理时提供 finally 块来执行任何清除操作如果抛出一个异常那么相匹配的 catch 子句就会执行然后控制就会进入 finally 块(如果有的话)
finalize? 方法名Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的它是在 Object类中定义的因此所有的类都继承了它子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的

第二HashMap和Hashtable的区别
都属于Map接口的类实现了将惟一键映射到特定的值上
HashMap 类没有分类或者排序它允许一个 null 键和多个 null 值
Hashtable 类似于 HashMap但是不允许 null 键和 null 值它也比 HashMap 慢因为它是同步的

第三String s = new String("xyz");创建了几个String Object?
两个对象一个是“xyx”一个是指向“xyx”的引用对象s

第四sleep() 和 wait() 有什么区别? 搞线程的最爱
sleep()方法是使线程停止一段时间的方法在sleep 时间间隔期满后线程不一定立即恢复执行这是因为在那个时刻其它线程可能正在运行而且没有被调度为放弃执行除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞
wait()是线程交互时如果线程对一个同步对象x 发出一个wait()调用该线程会暂停执行被调对象进入等待状态直到被唤醒或等待时间到

第五short s = ; s = s + ;有什么错? short s = ; s += ;有什么错?
short s = ; s = s + ;有错s是short型s+是int型不能显式转化为short型可修改为s =(short)(s + ) short s = ; s += 正确

第六Overload和Override的区别Overloaded的方法是否可以改变返回值的类型?
方 法的重写Overriding和重载Overloading是Java多态性的不同表现重写Overriding是父类与子类之间多态性的一种表现重 载Overloading是一个类中多态性的一种表现如果在子类中定义某方法与其父类有相同的名称和参数我们说该方法被重写 (Overriding)子类的对象使用这个方法时将调用子类中的定义对它而言父类中的定义如同被“屏蔽”了如果在一个类中定义了多个同名的方 法它们或有不同的参数个数或有不同的参数类型则称为方法的重载(Overloading)Overloaded的方法是可以改变返回值的类型

第七Set里的元素是不能重复的那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的那么用iterator()方法来区分重复与否equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖为的是当两个分离的对象的内容和类型相配的话返回真值

第八error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题比如说内存溢出不可能指望程序能处理这样的情况
exception 表示一种设计或实现问题也就是说它表示如果程序运行正常从不会发生的情况

第九给我一个你最常见到的runtime exception
ArithmeticException ArrayStoreException BufferOverflowException BufferUnderflowException CannotRedoException CannotUndoException ClassCastException CMMException ConcurrentModificationException DOMException EmptyStackException IllegalArgumentException IllegalMonitorStateException IllegalPathStateException IllegalStateException
ImagingOpException IndexOutOfBoundsException MissingResourceException NegativeArraySizeException NoSuchElementException NullPointerException ProfileDataException ProviderException RasterFormatException SecurityException SystemException UndeclaredThrowableException UnmodifiableSetException UnsupportedOperationException

第十Set里的元素是不能重复的那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的那么用iterator()方法来区分重复与否equals()是判读两个Set是否相等
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖为的是当两个分离的对象的内容和类型相配的话返回真值

上一篇:Java中的小知识点总结

下一篇:JSP实例:Java实现随机验证码功能实例