每一秒钟的时间都值得铭记

0%

面试系列07

1、请问下面代码的执行结果是?

1
2
3
4
5
public static void main(String[] args) {
File file = new File("G:\\temp\\empty");
System.out.println(file.canWrite());
System.out.println(file.canRead());
}
1
2
如果文件目录存在,结果为:truetrue
如果文件目录不存在,结果为:falsefalse

2、下面代码的输出结果为?

1
2
3
4
5
public static void main(String[] args) {
String initial = "ABCDEFG", after = "";
after = initial = initial.replace('A', 'Z');
System.out.println(initial + ", " + after);
}
1
执行结果为:ZBCDEFG, ZBCDEFG

3、请问下面的代码是否能够正常编译?

1
2
3
4
5
6
7
8
9
10
11
boolean final() {
test++;
return true;
}

public static void main(String[] args) {
test=0;
if ((final() | final()) || final())
test++;
System.out.println(test);
}
1
2
3
不能
1、因为final是Java中的关键字,不能作为方法名。
2、静态方法不能调用非静态方法,所以final方法需要添加static关键字修饰。

4、请简述一下Applet生命周期?

  • init()方法: 当Applet在创建的时候会执行init()方法。
  • start()方法: 当执行完init()方法之后,会执行start()方法。
  • paint()方法: 当执行完start()方法之后,如果Applet调整浏览器窗口大小,会执行paint()方法。
  • stop()方法: 用于停止Applet,当Apple停止或者最小化浏览器窗口的时候,会执行stop()方法。
  • destory()方法: 用于销毁Applet,当关闭浏览器后悔执行destory()方法。

Applet的生命周期以init()方法开始,以destory()方法结束,且这两个方法只会执行一次,但是start()paint()stop()方法会执行多次。

5、请编写一条SQL语句,从user表中获取name为Bod和Mike的用户的所有信息。

1
2
select * from user where name in ('Bod','Mike');
select * from user where name = 'Bod' or name = 'Mike';

6、程序编写,判断字符串是否为回文?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
String str = "abcdcba";
System.out.println(isPalindrome(str));
}

public static boolean isPalindrome(String str) {
int start = 0,end = str.length()-1;
while(start < end) {
if(str.charAt(start++) != str.charAt(end--)) {
return false;
}
}
return true;
}

7、请问下面代码的输出结果,为什么?

1
2
3
4
5
6
7
8
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
System.out.println(str1.equals(str2));
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb1.equals(sb2));
}
1
2
3
4
输出结果为:
true
false
因为在Java语言中,String类重写了equals()方法,但是StringBuffer类没有重写equals()方法。

8、下面代码的结果是什么,为什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) {
int i1 = 100;
int i2 = 100;
System.out.println(i1 == i2);
i1 = 200;
i2 = 200;
System.out.println(i1 == i2);
Integer in1 = 100;
Integer in2 = 100;
System.out.println(in1 == in2);
in1 = 200;
in1 = 200;
System.out.println(in1 == in2);
}
1
2
3
4
5
6
7
8
输出结果为:
true
true
true
false
因为基本数据类类型使用==比较的是值,而引用数据类型使用==比较的是引用。
但是Integer类型的值如果在[-128,127]之间的话,那么会使用Integer类中的缓存,而不会创建新的对象。
所以最后一个比较值为false
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------