java面试
基础篇
1、2<<3的结果为?
2的二进制为:0010
左移3位等到:0001 0000
转化为10进制为:16
答案:16
2、以下结果为?
String a=new String("ABC");
String b=new String("ABC");
System.out.println(a==b);
答案:false
==比较的是两边的地址值,a和b都是通过new String的
方法来分配字符串,两个new是不同的地址。
如果是以下代码,
String a="ABC";
String b="ABC";
System.out.println(a==b);
因为两个"ABC"在方法区里的地址是相同的。
答案为:true
3、以下的结果为(判断=与==的区别)?
int x=5;
boolean v1=true;
boolean v2=false;
if((x==4)&&!v1)
System.out.println("1");
System.out.println("2");
if(v2=true&&v1)
System.out.println("3");
答案为:2 3。
4、以下的结果为(继承关系)?
static class One{
public One(){
System.out.println("1");
}
}
static class Two extends One{
public Two() {
super();
System.out.println("2");
}
}
static class Three extends Two{
public Three() {
System.out.println("3");
}
}
public static void main(String[] args){
new Three();
}
答案:1 2 3
5、以下结果为(list的存取顺序)?
List a=new ArrayList();
a.add("A");
a.add("C");
a.add("B");
for (Object s:a) {
System.out.println(s);
}
list是有序,可重复的。
list按存储顺序取数据,
存入1,2,3
取出1,2,3
答案:A C B
6、以下结果为(多态)?
static class TypeCarA{
int speed(){
return 0;
}
}
static class TypeCarB extends TypeCarA{
int speed(){
return 60;
}
}
static class Car extends TypeCarB{
int speed(){
return 120;
}
}
public static void main(String[] args){
Car car=new Car();
TypeCarB TypeCarB=new Car();
TypeCarA TypeCarA=new Car();
System.out.println(car.speed()+","+TypeCarA.speed()+","+TypeCarB.speed());
}
new哪个类,就用哪个类的方法。
答案:120,120,120
7、什么是java跨平台,怎么理解?
跨平台指java在计算机上的运行不受平台的约束,一次编译,到处运行。
java文件(.java)通过编译器转换为字节码文件(.class),再把字节码文件通过jvm转换成机器码,即可在平台上运行。
不同平台系统上安装不同的jvm。
8、jdk和jre的区别
jre是java 运行环境(Java Runtime Environment)
jdk是java开发工具包(Java Development Kit),包括java运行环境和java工具。
有jre可以运行java文件,但不能开发
有jdk不仅可以运行还可以开发java程序。