刷题遇到的知识点(一)

JDBC链接数据库用到的是桥接设计模式;JDBC连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不动,原因就是JDBC提供了统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行。

preparedStatement与Statemnet比较:

创建时的区别:

Statement statement = conn.createStatement();

PreparedStatement preStatement = conn.prepareStatement(sql);

执行的时候:

ResuleSet set = statement .executeQuery(sql);

ResultSet pSet = preStatement.executeQuery();

可以看出,PreparedStatement有预编译的过程,而statement不同,如果执行多变,则相应的就要编译多少遍sql语句,所以效率要低。

线程安全的map在JDK105及其以上的版本实现方法:

1、HashMp和TreeMap不是线程安全的,没有进行同步考虑;

2、HashTable和ConcurrentHaspMap都是线程安全的,区别在于他们对锁的范围不同,HashTable对整张表进行加锁,而ConcurrentHashMap将Hash表分为16桶(segment),每次只对需要的桶进行加锁。

3、Collections类提供了sychronizdxxx()方法,可以将指定的集合包装成线程同步的集合,比如:

List list=Collection.syschronizedList(new ArrayList());

Set set = Collections.synchronizedSet(new HashSet);

Vector和ArrayList的区别:

同步性:Vector支持线程的同步,ArrayList是线程不安全的,不是同步的;

数据增长:当需要增长时,Vector默认为增长为原来的一倍,而ArrayList却是原来的50%,这样就有利于节约内存空间

如果涉及到堆栈、队列等操作,应该考虑用Vector,如果需要快速随机访问元素则用ArrayList;

创建对象有四种方法:

序列化对象、反射、克隆、构造方法new; 但是只有反射和new 调用了构造方法 其他没有调用构造方法;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容