Java个人学习总结2

13.1  HashMap和HashTable的区别:

1. HashMap允许键和值为null,而HashTable不允许。

2. HashTable是不同的,而HashTable不是,所以HashMap适合单线程环境,HashTable适合多线程环境。

3. Hashtable被认为是一个遗留的类,如果需要在迭代的时候修改Map,应该使用CocurrentHashMap。

13.2  ArrayList 和 Vector有何异同点?

(1) 相同点:

两者都是基于索引的,内部由一个数组支持。

两者都维护插入的顺序,可以根据插入顺序获取元素。

ArrayList和Vector都允许null值,也可以使用索引值对元素进行随机访问。

(2)不同点:

Vector时同步的,而ArrayList不是。如果需要在迭代的时候对列表进行改变,应该使用CopyOnwriteArrayList。

ArrayList比Vector快,它时同步的,因此不会过载。

ArrayList更通用,可以使用Collections工具类轻易地同步列表和只读列表。

13.3 ArrayList和Array有何区别?什么时候更适合用Array?

Array可以容纳基本数据类型和对象,而ArrayList只能容纳对象。

Array是指定大小的,而ArrayList大小是固定的。

Array没有ArrayList的功能多,例如addAll(),removeAll()和iterator()等。

14   注解的可用类型:包括所有基本类型,String,Class,Enum,Annotation及以上类型的数组形式。注解属性不能有不确定的值,即要么有默认值,要么在使用注解时提供属性的值,而且属性不能使用null作为默认值。

15.1  在Java中可以通过继承Thread类或者Runnable接口来实现线程。Java不支持类的多重继承,但允许调用多个接口。所以要继承其他类,应该调用Runnable接口来实现线程。

15.2  Thread类中的start()方法用来启动新的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当调用run()方法的时候,只是在原来的线程中调用,没有启动新的线程,start()方法才会启动新线程。

16.1 Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,指出分别是哪些类?

Java中按所操作的数据单元的不同分为字节流和字符流。字节流继承InputStream 和 OutoutStream类,字符流继承Reader和Writer。按流的流向不同,分为输入流和输出流;按流的角色来分,分为节点流和处理流。

17 与Statement相比,PreparedStatement的优点是什么?

1. PreparedStatement有助于防止SQL注入,因为它会自动将特殊字符转义。

 2. PreparedStatement可以用来进行动态查询。

3. PreparedStatement执行更快,尤其是在重用它或者使它的批量查询接口执行多条语句时。

使用PreparedStatement的set方法更容易写出面向对象的代码;而是用Statement,需要拼接字符串来生成查询语句,如果参数太多了,字符串拼接看起来会非常复杂,并且容易出错。

发布了8 篇原创文章 · 获赞 0 · 访问量 130

猜你喜欢

转载自blog.csdn.net/cypherO_O/article/details/104346800