- Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 【基础】
答:Math.round(11.5)12 Math.round(-11.5)-11 round 方法返回与参数
最接近的长整数,参数加 1/2 后求其 floor。 - 编程题: 用最有效率的方法算出 2 乘以 8 等於几? 【基础】
答: 2 << 3。 - 在 JAVA 中,如何跳出当前的多重嵌套循环?【基础】
答:在最外层循环前加 label 标识,然后用 break:label方法即可跳出多重循环。 - 定义类 A 和类 B 如下:【基础】
class A {
int a=1;
double d=2.0;
void show(){
System.out.println("Class A: a="+a +"\td="+d);
}
}
class B extends A{
float a=3.0f;
String d="Java program.";
void show(){
super.show( );
System.out.println("Class B: a="+a +"\td="+d);
}
}
(1) 若在应用程序的 main 方法中有以下语句:
A a=new A();
a.show();
则输出的结果如何?
(2) 若在应用程序的 main 方法中定义类 B 的对象 b:
A b=new B();
b.show();
则输出的结果如何?
答:输出结果为:
1)Class A: a=1 d=2.0 ;
2)Class A: a=1 d=2.0
Class B: a=3.0 d=Java program。
- String s=new String(“xyz”);创建了几个 String Object? 【基础】
答:两个对象,一个是"xyx",一个是指向"xyx"的引用对象 s。 - 下面哪些类可以被继承? 【基础】
1)java.lang.Thread (T)
2)java.lang.Number (T)
3)java.lang.Double (F)
4)java.lang.Math (F)
5)java.lang.Void (F)
6)java.lang.Class (F)
7)java.lang.ClassLoader (T)
答:1、2、7 可以被继承。 - 写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要
求字符串中的中文不能出现乱码:如(“我 ABC”,4)应该截为“我 AB”,输入(“我
ABC 汉 DEF”,6)应该输出为“我 ABC”而不是“我 ABC+汉的半个”。 【基础】
答:代码如下:
public String subString(String str, int subBytes) {
int bytes = 0; // 用来存储字符串的总字节数
for (int i = 0; i < str.length(); i++) {
if (bytes == subBytes) {
return str.substring(0, i);
}
char c = str.charAt(i);
if (c < 256) {
bytes += 1; // 英文字符的字节数看作 1
} else {
bytes += 2; // 中文字符的字节数看作 2
if(bytes - subBytes == 1){
return str.substring(0, i);
}
}
}
return str;
}
- 运行时异常与一般异常有何异同?【基础】
答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的
通常操作中可能遇到的异常,是一种常见运行错误。java 编译器要求方法必须
声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行
时异常。 - HashMap 和 Hashtable 的区别? 【基础】
答:二者都实现了 Map 接口,是将惟一键映射到特定的值上;主要区别在于:
1)HashMap 没有排序,允许一个 null 键和多个 null 值,而 Hashtable 不允许;
2)HashMap 把 Hashtable 的 contains 方法去掉了,改成 containsvalue 和
containsKey,因为 contains 方法容易让人引起误解;
3)Hashtable 继承自 Dictionary 类,HashMap 是 Java1.2 引进的 Map 接口的实现;
4)Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问
Hashtable 时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外
同步。
Hashtable 和 HashMap 采用的 hash/rehash 算法大致一样,所以性能不会有很
大的差异。 - 什么是 java 序列化,如何实现 java 序列化?【基础】
答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进
行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之
间。序列化是为了解决在对对象流进行读写操作时所引发的问题;
序列化的实现:将需要被序列化的类实现 Serializable 接口,该接口没有需实
现的方法,implements Serializable 只是为了标注该对象是可被序列化的,然
后使用一个输出流(如 FileOutputStream)来构造一个 ObjectOutputStream(对
象流)对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj)
方法就可以将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流。 - 写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出
现的次数。【基础】
答:代码如下:
public int countWords(String file, String find) throws Exception {
int count = 0;
Reader in = new FileReader(file);
int c;
while ((c = in.read()) != -1) {
while (c == find.charAt(0)) {
for (int i = 1; i < find.length(); i++) {
c = in.read();
if (c != find.charAt(i)) break;
if (i == find.length() - 1) count++;
}
}
}
return count;
}
- 有三张表,学生表 S,课程 C,学生课程表 SC,学生可以选修多门课程,一门课
程可以被多个学生选修,通过 SC 表关联。【基础】
1)写出建表语句;
2)写出 SQL 语句,查询选修了所有选修课程的学生;
3)写出 SQL 语句,查询选修了至少 5 门以上的课程的学生。
答:1)建表语句如下(mysql 数据库):
create table s(id integer primary key, name varchar(20));
create table c(id integer primary key, name varchar(20));
create table sc(
sid integer references s(id),
cid integer references c(id),
primary key(sid,cid)
);
2)SQL 语句如下:
select stu.id, stu.name from s stu
where (select count() from sc where sid=stu.id)
= (select count() from c);
3)SQL 语句如下:
select stu.id, stu.name from s stu
where (select count(*) from sc where sid=stu.id)>=5; - 后序遍历下列二叉树,访问结点的顺序是?【基础】
- 答:顺序为:DJGEBKNIFCA 。
- GC 是什么? 为什么要有 GC? 【基础】
答:GC 是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出
现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,
Java 提供的 GC 功能可以自动监测对象是否超过作用域从而达到自动回收内存的
目的,Java 语言没有提供释放已分配内存的显示操作方法。 Java 程序员不用
担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下
面的方法之一:System.gc() 或 Runtime.getRuntime().gc() 。 - 写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 【基础】
答:函数代码如下:
public String[] split(String str, int chars){
int n = (str.length()+ chars - 1)/chars;
String ret[] = new String[n];
for(int i=0; i<n; i++){
if(i < n-1){
ret[i] = str.substring(i*chars , (i+1)*chars);
}else{
ret[i] = str.substring(i*chars);
}
}
return ret;
}