设为首页 加入收藏

TOP

中兴应届生面试综合基础测试(Java类)(一)
2014-11-23 22:12:21 来源: 作者: 【 】 浏览:8
Tags:中兴 应届 面试 综合 基础 测试 Java


1、 给出下面一段代码的打印信息,并说明”==” 与 “equals”的区别(6分)


public class Test


{


public static void main(String[] args)


{


int a = 10;


int b = 10;


float c =10.0f


Integer ain = new Integer(10);


Integer bin = new Integer(10);


Float cfl = new Float(10.0f);


System.out.println(“a == b is “ + (a == b));


System.out.println(“a == c is “ + (a == c));


System.out.println(“ain == bin is “ + (ain == bin));


System.out.println(“ain == cfl is “ + (ain == cfl));


System.out.println(“ain.equals(bin) is “ + (ain.equals(bin)));


System.out.println(“ain.equals(cfl) is “ + (ain.equals(cfl)));


}


}




编译System.out.println(“ain == cfl is “ + (ain == cfl));时出错,基本数据类型与对象类型不能用==比较


equals 方法在非空对象引用上实现相等关系:


对于任何非空引用值 x,x.equals(x) 都应返回 true。


对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。


对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。


对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。


对于任何非空引用值 x,x.equals(null) 都应返回 false。



Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 xy,当且仅当 xy 引用同一个对象时,此方法才返回 truex == y 具有值 true)。


= = 比较基本数据类型时,是比较对象个的实际值;比较对象类型时是比较个对象的hasCode值是否相等;












2、 写出一个懒汉式Singleton出来(5分)


public class Singleton {


  private Singleton(){}


//注意这是private 只供内部调用


  private static Singleton instance = new Singleton();


  //这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}




3、 String s = new String(“zte”);创建了几个String Object?(4分)


2个String Object


一个是参数”zte”


还有一个是通过构造函数生成与该参数相同的字符序列的新的String Object







4、 short s1 = 1;s1 = s1 + 1;


short s1 = 1;s1 += 1;


上面两行,那一行有错,有什么错 (4分)


第一行有错;编译时出错s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。




5、 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对 (4分)


equals被重写时,通常有必要重写 hashCode 方法,相等对象必须具有相同的hashCode,但具有相同的hashCode的对象不一定相等。如果两个对象对同一个对象使用equals方法都得到true值,则可根据传递性得到这两个对象也相同的结论,所以他们应该拥有相同的hashcode。







6、 swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上 (4分)


swtich能用在byte上不能用在long和String上


swtich只能用在char byte short int 上







7、 指出下面这段代码存在的问题,并给出解决方案(7分)


public class MyThread implements Runnable


{


int i = 0;


public void run()


{


processData();//只对数据进行处理


refreshUI();//刷新相应显示


}


}


2个方法在并没有被定义, processData()方法只对数据进行处理而refreshUI()方法刷新相应显示;类MyThread继承了Runnable接口,也就是说数据进行处理和刷新显示在一个线程中处理,那实现多线程就没有任何意义了,数据处理是先进行的,如果在数据处理过程中发生不可捕获的异常而中断,数据不会刷新显示,可能会造成数据的丢失等


应该多开启一个个线程给刷新显示,如果数据处理的线程中断也不会影响数据的丢失

















8、 指出下面定义的类中三个函数同步的对象,以及使用时的注意事项(6分)


public class MyClass


{


public synchronized void fun1()


{


//…


}


public void fun2()


{


synchronized(this)


{


//…


}


}


public void fun3()


{


synchronized(obj)


{


//…


}


}


}


答:public synchronized void fun1()


{


//…


}



同步的是fun1()这个方法


在该类内部同步,一旦新实例化对象后,不能保证两个实例化对象之间能够同步。


public void fun2()


{


synchronized(this)


{


//…


}


}


同步的是代码块,把该类本身作为同步对象,在该类内部有效,一旦新实例化对象后,不能保证两个实例化对象之间能够同步。



public void fun3()


{


synchronized(obj)


{


//…


}


}


同步的实代码块,必须要保证obj对象是同一个才能同步














9、 给出下面一段代码的两个函数的返回值,说明原因(4)


public class MyClass


{


public int fun1()


{


try{


return 1;


}


catch(Exception ex)


{


return 2;


}


}



public int fun2()


{


try{


return 3;


}


finally


{


return 4;


}


}


}


第一个函数返回 1,第二个函数返回 4 。


第一个函数会先执行 try 中的语句,出错的话才会执行 catch 中的语句。


第二个函数在执行 try 中的语句时,直接return 4;









10、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递 (5分)


是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。











11、接口是否可继承接口 抽

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇百度研发笔试题 内容以数据结构为.. 下一篇最详细的华为面试面经

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: