java(春招)day3

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的生命周期

  1. Bean 的实例化阶段:创建一个 Bean 对象。
  2. Bean 实例的属性填充阶段:为 Bean 实例的属性赋值。
  3. Bean 实例的初始化阶段:对 Bean 实例进行初始化。
  4. Bean 实例的正常使用阶段。
  5. 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 中。
参考

(29条消息) 【Java实习生】每日10道面试题打卡!_兴趣使然的草帽路飞-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值