综合基础测试(Java类)姓名:钟煜分数:1、给出下面一段代码的打印信息,并说明”==”与“equals”的区别(6分)publicclassTest{publicstaticvoidmain(String[]args){inta=10;intb=10;floatc=10.0fIntegerain=newInteger(10);Integerbin=newInteger(10);Floatcfl=newFloat(10.0f);System.out.println(“a==bis“+(a==b));System.out.println(“a==cis“+(a==c));System.out.println(“ain==binis“+(ain==bin));System.out.println(“ain==cflis“+(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==cflis“+(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方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值x和y,当且仅当x和y引用同一个对象时,此方法才返回true(x==y具有值true)。==比较基本数据类型时,是比较对象个的实际值;比较对象类型时是比较个对象的hasCode值是否相等;2、写出一个懒汉式Singleton出来(5分)publicclassSingleton{privateSingleton(){}//注意这是private只供内部调用privatestaticSingletoninstance=newSingleton();//这里提供了一个供外部访问本class的静态方法,可以直接访问publicstaticSingletongetInstance(){returninstance;}}3、Strings=newString("zte");创建了几个StringObject?(4分)2个StringObject一个是参数"zte"还有一个是通过构造函数生成与该参数相同的字符序列的新的StringObject4、shorts1=1;s1=s1+1;shorts1=1;s1+=1;上面两行,那一行有错,有什么错?(4分)第一行有错;编译时出错s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1=(short)(s1+1)。shorts1=1;s1+=1正确。5、两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?(4分)equals被重写时,通常有必要重写hashCode方法,相等对象必须具有相同的hashCode,但具有相同的hashCode的对象不一定相等。如果两个对象对同一个对象使用equals方法都得到true值,则可根据传递性得到这两个对象也相同的结论,所以他们应该拥有相同的hashcode。6、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?(4分)swtich能用在byte上不能用在long和String上swtich只能用在charbyteshortint上7、指出下面这段代码存在的问题,并给出解决方案(7分)publicclassMyThreadimplementsRunnable{inti=0;publicvoidrun(){processData();//只对数据进行处理refreshUI();//刷新相应显示}}2个方法在并没有被定义,processData()方法只对数据进行处理而refreshUI()方法刷新相应显示;类MyThread继承了Runnable接口,也就是说数据进行处理和刷新显示在一个线程中处理,那实现多线程就没有任何意义了,数据处理是先进行的,如果在数据处理过程中发生不可捕获的异常而中断,数据不会刷新显示,可能会造成数据的丢失等应该多开启一个个线程给刷新显示,如果数据处理的线程中断也不会影响数据的丢失8、指出下面定义的类中三个函数同步的对象,以及使用时的注意事项(6分)publicclassMyClass{publicsynchronizedvoidfun1(){//…}publicvoidfun2(){synchronized(this){//…}}publicvoidfun3(){synchronized(obj){//…}}}答:publicsynchronizedvoidfun1(){//…}同步的是fun1()这个方法在该类内部同步,一旦新实例化对象后,不能保证两个实例化对象之间能够同步。publicvoidfun2(){synchronized(this){//…}}同步的是代码块,把该类本身作...