JSP
JSP 中动态 include 与静态 include 的区别?
1)静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体的servlet;而动态导入则在servlet中使用include方法来引入被导入页面的内容。
2)静态导入时被导入的页面的编译指令会起作用,而动态导入时被导入的页面的编译指令则失去作用,只是插入被导入页面的body内容。
3)动态包含可以包含相同变量,而静态包含不行。
4)如果被包含文件经常变动,则应该使用动态包含,而使用静态包含时,改变被包含文件后,有可能不能及时更新
Java
什么是数据库连接池?
数据库连接是一种有限的昂贵的资源, 数据库连接影响到程序的性能指标。 数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、
管理和释放数据库连接, 它允许应用程序重复使用一个现有的数据库连接, 而再不是重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数 据库连接而引起的数据库连接遗漏。 这项技术能明显提高对数据库操作的性能。
Java
HashMap 和 Hashtable 的区别?
1 HashMap不是线程安全的
HashMap是map接口的子类,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null
key和null value,而hashtable不允许。
2 HashTable是线程安全。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap
就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差