黑马程序员技术交流社区

标题: java基础最容易犯的70个错误(21-35)多多学习有好处字 [打印本页]

作者: Solarln    时间: 2016-8-1 23:07
标题: java基础最容易犯的70个错误(21-35)多多学习有好处字
21、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
22JAVA中的多态与继承?
答:
23、构造器Constructor是否可被override
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading
24、是否可以继承String类?
答:String类是final类故不可以继承。
25try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答:会执行,在return前执行
26、用最有效率的方法算出2乘以8等於几?
答:2 << 3
27、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
答:不对,有相同的hash code
28、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
29swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switchexpr1)中,expr1是一个整数表达式。因此传递给 switch case 语句的参数应该是 intshortchar 或者 bytelong,string 都不能作用于swtich
30ArrayListVector的区别?
答:1)、同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
2)、数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
31HashMapHashtable的区别?
答:HashMapHashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key,由于非线程安全,效率上可能高于Hashtable
HashMap允许将null作为一个entrykey或者value,而Hashtable不允许。
HashMapHashtablecontains方法去掉了,改成containsvaluecontainsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMapJava1.2引进的Map interface的一个实现。
最大的不同是,Hastable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
HashtableHashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
32floatfloat f=3.4是否正确?
答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4
33、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
答:Collection FrameWork如下:
Collection
List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
Set
Map
Hashtable
HashMap
WeakHashMap
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。
Map提供keyvalue的映射。
34、抽象类与接口?
答:抽象类与接口都用于抽象,但是抽象类(JAVA)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)
JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection框架中实现比较要实现Comparable 接口和Comparator 接口
35String是最基本的数据类型吗?
答:基本数据类型包括byteintcharlongfloatdoublebooleanshort
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2