JAVA面试问题(1)

基本语法1. 访问修饰符“public/private/protected/缺省的修饰符”的使用有什么不同?答:区别如下:
作用域 当前类 同一package子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly2. 用关键字final分别修饰类、方法、变量时,有何意义?答:final修饰的类不能被继承,final修饰的方法不能被子类重写,final修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次,final修饰的成员变量必须在声明的同时或在该类的构造方法中显示赋值,然后才能使用。2.JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
throw语句用来明确地抛出一个"异常"。
throws用来标明一个成员函数可能抛出的各种"异常"。
Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。3. Object类(或者其子类)的finalize()方法在什么情况下被调用?在对象被当成垃圾从内存中释放前调用。

4. 一个“.java”源文件中是否可以包

括多个类(不是内部类)?有什么限制?可以,但只有与文件名相同的类是public的。

5. 内部类可以引用他的包含类的成员吗?有没有什么限制?可以。这个成员必须用final修饰

6. 写一段代码,遍历一个List中的元素。

7. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?基本原理就是虚拟机每隔一段时间就会运行一次垃圾回收或是在虚拟机认为需要的时候。主动调用是System.gc()。垃圾回收器运行了当然会收回内在。但悲剧的是,垃圾回收是任何程序员都无法自己控制的,也就是说即使调用了System.gc(),也只是通知虚拟机要回收垃圾,至于虚拟机什么时候运行回收器就不知道了。

8. java中会存在内存泄漏吗,请简单描述。会有的,虽然java虚拟机中的垃圾回收机制可以自动进行内存空间的申请和释放,但还是有些不能显式地进行释放,必须手动释放,比如关闭打开的文件和数据库连接.最后可能导致内存的可用空间越来越少,最终崩溃.

如:int i,i2;  return (i-i2);   //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误

9. java中实现多态的机制是什么?

方法的重写Overriding和重载Overloading是Java多态性的不同表现.

重写Overriding是父类与子类之间多态性的一种表现 

重载Overloading是一个类中多态性的一种表现.

10.112、说出一些常用的类,包,接口,请各举5个

常用的类http://www.021xueli.com/sort/2:BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包:java.lang java.awt java.io java.util java.sql
常用的接口:Remote List Map Document NodeList11.overload(重载)和override(重写)有什么区别?12.java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。13.静态变量和实例变量的区别:static i = 10; //常量
class A a; a.i =10;//可变14.105、什么是java序列化,如何实现java序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
106、是否可以从一个static方法内部发出对非static方法的调用?
不可以,如果其中包含对象的method();不能保证对象初始化.
107、写clone()方法时,通常都有一行代码,是什么?
Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。
108、在JAVA中,如何跳出当前的多重嵌套循环?用break; return 方法。
109、List、Map、Set三个接口,存取元素时,各有什么特点?
List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素http://www.ra56789.com/sort/1,内部排序。Map 保存key-value值,value可多值。15.如何判断一个对象是否是一个已知类的对象,可以写一段代码说明。16. 在JAVA中,如何跳出当前的多重嵌套循环?17. Swing中实现一个table需要用到哪些类?其中哪些作M,哪些作V哪些作C? 18. Vector中对象的存取有几种方法?它们有何不同之处?19. 如何对一个ArrayList进行快速排序?20. UML图中,对象之间有几种关系?它们分别用什么符号来表示? 21. 聚合与组合有什么区别?22. Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。
Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.String 不是基本数据类型23. 字符串的操作:
写一个方法,实现字符串的反转,如:输入abc,输出cba
public static String reverse(String s){
int length=s.length();
StringBuffer result=new StringBuffer(length);
for(int i=length-1;i>=0;i--)
result.append(s.charAt(i));
return result.toString();
}
写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。24. 数据类型之间的转换
如何将数值型字符转换为数字(Integer,Double)
如何将数字转换为字符
如何去小数点前两位,并四舍五入。25. 日期和时间
如何取得年月日,小时分秒
Date dat=new Date();
dat.getYear();dat.getMonth();dat.getDay();dat.getHours();...
如何取得从1970年到现在的毫秒数long now=dat.getTime();
如何获取某个日期是当月的最后一天
如何格式化日期
DateFormate df=DateFormate.getInstance();
df.Format(dat);26. 数组和集合27. 文件和目录(I/O)操作
如何列出某个目录下的所有文件
如何列出某个目录下的所有子目录
判断一个文件或目录是否存在
如何读写文件28.Java多态的实现(继承、重载、覆盖)29.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。import java.io.*;public calss InputReader{ public static void main(Sting[] args) throws Exception { InputStreamReader isr = new InputStreamReader(System.in,”iso8859-1”); BufferedReader br = new BufferedReader(isr); String strLine = br.readLine();for(int i = 0;i < strLine.length();i++){ System.out.println((Integer.toHexString(int)strLine.chatAt(i))); isr.close(); System.out.println(strLine);}}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值