Day 19

一:JSP 中动态 include 与静态 include 的区别?

动态 include: <jsp:include page="included.jsp" flush="true" />
静态 include:<%@ include file="included.htm" %>
1、静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体 Servlet;而动态导入则是在 Servlet 中使用 include 方法来引入被导入页面的内容。
2、静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的 body 内容。

3、动态包含还可以增加额外的参数。

二:什么是数据库连接池?

数据库连接是一种有限的昂贵的资源,数据库连接影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

三:HashMap 和 Hashtable 的区别?

1、继承的历史不同

public class Hashtable extends Dictionary implements Map
public class HashMap  extends AbstractMap implements Map

Hashtable 是继承自 Dictionary 类的,而 HashMap 则是 Java 1.2 引进的 Map 接口的一个实现。

2、安全性不同
HashMap 是非 synchronized,效率上比 hashTable 要高,而 HashTable 在默认的情况下是 synchronized,这意味着 HashTable 是线程安全的,多个线程可以共享一个 HashTable;而如果没有正确的同步的话,多个线程是不能共享 HashMap 的。Java 5以后提供了 ConcurrentHashMap,它是 HashTable 的替代,比 HashTable 的扩展性更好。当然,我们可以通过以下方法让 HashMap 同步:

Map m = Collections.synchronizeMap(hashMap);

3、是否可为空值的异同
HashMap 可以让你将空值作为一个表条目的 key 或 value 。HashMap 中只有一条记录可以是一个空的 key,但任意数量的条目可以是空的 value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么 get() 将返回 null;而 HashTable 则不行,key 和 value 都不允许出现 null 值。



猜你喜欢

转载自blog.csdn.net/a15252006129/article/details/80542743