java面试题专辑
一、编程题
1、设计一个随机产生100个大写英文字母的方法。在该方法中统计产生了多少元音字母,并输出这个数字。(选做)Math.random()方法可以随机产生0~1之间的double类型的小数。
2、JAVA多线程编程,用JAVA写一个多线程程序 (一般掌握)
(3)Java 的
通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示(一般掌握)
二、问答题
1、Java中异常处理
使用try,catch和finally。把有可能产生违例的代码放到try的语句块中,一旦这些代码产生了违例,就会执行相应的catch语句块中的语句,finally语句块的代码,不管有产生违例都会执行的。
(2)事件机制
事件监听器接口,定义了事件的处理方法。
事件源:产生事件的组件
事件源对自己感兴趣的事件进行注册(
注册监听器),然后事件源一旦产生事件,就会调用相应的事件处理方法,执行相应的代码。
(3)JAVA中的继承,可出编程。
抽象类与接口,接口的好处是将实现与表现分离。
声明方法的存在而不去实现被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,声明方法。不能创建abstract 类的实例。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。没有一个有程序体。接口只可以定义static final成员变量。一个类实现接口要实现接口的所有方法。
(4)STRING与STRINGBUFFER的区别。
STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
(5)谈谈final, finally的区别。
final—(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally—异常处理时提供 finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入finally块(如果有的话)。
(6)Collection 和 Collections的区别。你千万别说一个是单数一个是复数。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
(7)GC是什么? 为什么要有GC?
Garbage Collection
GC是垃圾收集器。Java程序员不用担心内存管理,因为垃圾收集器会。
(9)Java有没有goto?Goto—java中的保留字,现
在没有在java中使用。
数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。
String有有length()这个方法。
(10)Overload和Override的区别。Overload的方法是否可以改变返回值的类型?
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
(11)给我一个你最常见到的runtime exception。如果你这个答不出来,面试的人会认为你没有实际编程经验。
IndexOutOfBoundsException
ClassCastException
(12)error和exception有什么区别?
error表示一种严重问题。比如说内存溢出。不可能指望
程序能处理这样的情况。
exception 表示可以处理的问题。
(13)接口是否可继承接口?
可以
(14)启动一个线程是用run()还是start