基本语法
1.
访问修饰符“
public/private/protected/
缺省的修饰符”的使用有什么不同?
答:
区别如下:
作用域 当前类 同一 package 子孙类 其他 package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为 friendly
作用域 当前类 同一 package 子孙类 其他 package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为 friendly
2.
用关键字
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语句。
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.
内部类可以引用他的包含类的成员吗?有没有什么限制?
6.
写一段代码,遍历一个
List
中的元素。
7.
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
8.
java
中会存在内存泄漏吗,请简单描述。
9.
java
中实现多态的机制是什么?
10.
112
、说出一些常用的类,包,接口,请各举
5
个
常用的类: BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包: java.lang java.awt java.io java.util java.sql
常用的接口: Remote List Map Document NodeList
常用的类: BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包: java.lang java.awt java.io java.util java.sql
常用的接口: Remote List Map Document NodeList
11.
overload(
重载
)
和
override(
重写
)
有什么区别
?
12.
java
中有几种类型的流?
JDK
为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
答:
字节流,字符流。字节流继承于
InputStream OutputStream
,字符流继承于
InputStreamReader OutputStreamWriter
。在
java.io
包中还有许多其他的流,主要是为了提高性能和使用方便。
13.
静态变量和实例变量的区别:
static i = 10; //
常量
class A a; a.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 无法拥有重复元素 , 内部排序。 Map 保存 key-value 值, value 可多值。
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现 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 无法拥有重复元素 , 内部排序。 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 不是基本数据类型
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 。
写一个方法,实现字符串的反转,如:输入 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 )
如何将数字转换为字符
如何去小数点前两位,并四舍五入。
如何将数值型字符转换为数字( 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);
如何取得年月日,小时分秒
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);
}
}
}