我在这里: 首页 ? 面试试题 ? 浏览文章: JAVA程序员面试 32问(23-32)
« 销售人员的能力测试题明基面试题 »

JAVA程序员面试 32问(23-32)




内容摘要:第二十三,启动一个线程是用run()还是start()?
第二十四,构造器Constructor是否可被override?

关键词:JAVA面试题  
本文地址:http://www.teecool.com/post/2007090602.html
内容正文:

  第二十三,启动一个线程是用run()还是start()?

  第二十四,构造器Constructor是否可被override?

  第二十五,是否可以继承String类?

  第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

  第二十七,try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

  第二十八,编程题:用最有效率的方法算出2乘以8等於几?

  第二十九,两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?

  第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  第三十二,编程题:写一个Singleton出来。

  以下是答案

 

  

  第二十三,启动一个线程是用run()还是start()?

  启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

  第二十四,构造器Constructor是否可被override?

  构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

  第二十五,是否可以继承String类?

  String类是final类故不可以继承。

  第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

  不能,一个对象的一个synchronized方法只能由一个线程访问。

  第二十七,try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

  会执行,在return前执行。

  第二十八,编程题:用最有效率的方法算出2乘以8等於几?

  有C背景的程序员特别喜欢问这种问题。

  第二十九,两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?

  不对,有相同的hashcode。

  第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

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

  第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

  switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或者byte.long,string都不能作用于swtich。

  第三十二,编程题:写一个Singleton出来。

  Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

  一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

  publicclassSingleton{privateSingleton(){}//在自己内部定义自己一个实例,是不是很奇怪?

  注意这是private只供内部调用privatestaticSingletoninstance=newSingleton();//这里提供了一个供外部访问本class的静态方法,可以直接访问publicstaticSingletongetInstance(){returninstance;}第二种形式:publicclassSingleton{privatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance(){//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次//使用时生成实例,提高了效率!

  if(instance==null)

  instance=newSingleton();returninstance;}}其他形式:定义一个类,它的构造函数为private的,所有方法为static的。

  一般认为第一种形式要更加安全些第三十三Hashtable和HashMapHashtable继承自Dictionary类,而HashMap是Java1.2引进的Mapinterface的一个实现。

  HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

  还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey.因为contains方法容易让人引起误解。

  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。

  Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

JAVA程序员面试 32问(23-32)一文有面试题库网收集自互联网,并非本站原创,如原作者发现JAVA程序员面试 32问(23-32)一文,请及时告知本站,本站会作出相关处理,谢谢!!!(联系方式:百度空间留言)

最近发表