1hashmap和hashtable区别?
(1)Hashmap键值对可以为空,Hashtable键值对都不能为空。
(2)HashMap是线程不安全的,Hashtable是线程安全的。
(3)HashMap继承自AbstractMap类,Hashtable继承自Dictionary类。
2、List和set、map的区别:
(1)List是有序可重复的,set是无序不可重复的。
(2)List允许插入多个null值,set只允许一个null值。
(3)Map不是collection的子接口或者实现类。Map是一个接口,Map 的 每个 Entry 都持有两个对象。
3、什么场景下使用list,set,map呢?
(1)如果你经常会使用索引来对容器中的元素进行访问,那么 List 是你的正确的选择。
(2)如果你想保证插入元素的唯一性,也就是你不想有重复值的出现,那么可以选择一个 Set 的实现类。
(3)如果你以键和值的形式进行数据存储那么 Map 是你正确的选择.
多线程系列
4、JDBC的操作步骤:
1.加载驱动:classforName()、driverManager.registerDriver()
2.获取连接:DriverManager.getConnection();
3.建立sql语句connection.preparedStatement
4.执行sql语句 excute
5.释放资源
@Test
public void getConnection1() throws SQLException {
//实例化驱动
Driver driver = new com.mysql.jdbc.Driver();
//获取url
String URL = "jdbc:mysql://localhost:3306/book";
//实例化properties
Properties properties = new Properties();
//这里的porperties用的手写的方式在这里插入代码片
properties.setProperty("user", "root");
properties.setProperty("password", "LWZroot");
java.sql.Connection connect = driver.connect(URL, properties);
System.out.println(connect);
}
(29条消息) 春招总结之JDBC一遍过_Warrior_L6的博客-CSDN博客
5、finnal,finnally, finnalized的区别
finnal 表示属性 方法 类 分别为 属性不可修改,方法不可覆盖,类不可继承,内部类调用局部变量必须声明为finnal类型
finnally表示异常处理中一定要运行的代码
finnalized是Object中垃圾回收的一个方法,jvm不确定时候垃圾回收器回收被对象的finnalized方法,可以覆盖此方法提供垃圾收集时候的其他资源的回收
6、string和stringBuffer和StringBuilder的区别
sting类不可变类。一但被创建,包含在这个对象中的字符序列是不可改变的。
StringBuffer对象代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,
就可以调用它的toString()方法将其转换为一个String对象。
线程安全
StringBuilder类也代表可变字符串对象。和StringBuffer基本相似,但是StringBuilder线程不安全,性能较高
7、abstract、static、final三者区别
abstract 关键字:只能修饰类和方法不能修饰变量
static:被静态修饰的成员可以直接被类名调用,静态随着类的加载而加载,而且优先于对象存在。静态方法只能访问静态成员(静态方法和静态变量),不可以访问非静态成员。
final:被 final 修饰的方法不可以被重写
8、FactoryBean、BeanFactory、ApplicationContext 有什么区别?
FactoryBean:是一个工厂bean,使用了工厂方法模式,实现该类接口的类可以自己定义要创建的bean实例,只需要实现他的getObject()方法即可。
BeanFactory,是一个 Bean 工厂,使用简单工厂模式,是 Spring IoC 容器顶级接口,是用于管理 Bean 的工厂,最核心的功能是通过 getBean()
方法加载 Bean 对象,通常我们不会直接使用该接口,而是使用其子接口 ApplicationContext。
ApplicationContext。是BeanFactoy的子接口,扩展了BeanFactory的功能
9.spring Bean的生命周期
- Bean 的实例化阶段:创建一个 Bean 对象。
- Bean 实例的属性填充阶段:为 Bean 实例的属性赋值。
- Bean 实例的初始化阶段:对 Bean 实例进行初始化。
- Bean 实例的正常使用阶段。
- Bean 实例的销毁阶段:容器关闭后,将 Bean 实例销毁
10、bean的作用范围
① singleton:单例模式,是默认作用域,不管收到多少 Bean 请求每个容器中只有一个唯一的 Bean 实例。
② prototype:原型模式,和 singleton 相反,每次 Bean 请求都会创建一个新的实例。
③ request:每次 HTTP 请求都会创建一个新的 Bean 并把它放到 request 域中,在请求完成后 Bean 会失效并被垃圾收集器回收。
④ session:和 request 类似,确保每个 session 中有一个 Bean 实例,session 过期后 bean 会随之失效。
⑤ global session:当应用部署在 Portlet 容器时,如果想让所有 Portlet 共用全局存储变量,那么该变量需要存储在 global session 中。
参考