一、ApplicationContext和BeanFactory的区别
ApplicationContext继承于BeanFactory,ApplicationContext面向框架。
相比于BeanFactory多了
- 国际化
- 事件机制
- 加载多个上下文
- 资源访问
- bean创建时机不同
1)国际化
通过扩展Spring的MessageResource接口来实现国际化
2)事件机制
通过ApplicationEvent和ApplicationListener来实现,
ApplicationContext发送ApplicationEvent事件,所有实现ApplicationListener的类都会收到通知,收到通知后执行各自的逻辑。
如需扩展事件需要实现ApplicationEvent接口,监听则需要实现ApplicationListener接口
3)资源访问
ApplicationContext接口实现了ResourceLoader(资源加载器)接口
4)bean创建时机
BeanFactory在调用bean时才会加载,ApplicationContext会在系统启动时全部加载bean
二、linux中kill -9 和kill -15
linux中kill命令默认为-15。
-9 强制停止
-15正常停止程序
三、MySQL中char和varchar的区别
char定长,长度不够时会使用空格来占位
varchar变长,长度可以自动改变
四、java中各种基础类型的长度,具体问题为byte多少字节,一个字节多少位
类型 | 字节数 | 位数 |
byte(字节) | 1 | 8 |
boolean(布尔值) | 1 | 8 |
short(短整数) | 2 | 16 |
char(字符) | 2 | 16 |
int(整数) | 4 | 32 |
float(单精度浮点) | 4 | 32 |
long(长整数) | 8 | 64 |
double(双精度浮点) | 8 | 64 |
五、continue和break的区别
两个都有跳过循环的功能,区别为
continue:跳过本次循环内的操作,继续下一次循环的代码。
break:直接跳出本次循环,循环到此结束,执行循环结束后的代码。
六、console.log()输出结果为[object Object]
console.log()其实是调用了对象的“toString()”方法,而对象的“toString()”方法输出的就是[object Object]。
如果想要查看对象中的内容,需要使用“JSON.stringify()”来将对象转换为JSON串
七、前端函数的入参为对象,该如何传递入参
需要将对象转换成json字符串
注:因为json穿内的属性带有“双引号”,所以外部如果为字符串拼接,不能使用双引号,否则会报语法错误
错误写法如下:
八、Mysql数据库中DateTime和timestamp区别
DATETIME与TIMESTAMP的一些区别与问题_timestamp和datetime_柯南小Z的博客-CSDN博客
九、SimpleDateFromat线程不安全的原因及解决方案
原因:内部通过赋值索引的方式来重置位置,在作为静态变量的时候,会出现线程不安全的情况
方案:1.使用ThreadLocal来存储format,ThreadLocal每个线程之间不共享
2.使用1.8的新类
String dateTimeStr= "2016-10-25 12:00:00";
DateTimeFormatter formatter02 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime=LocalDateTime.parse(dateTimeStr,formatter02);
System.out.println(localDateTime);
String format = localDateTime.format(formatter02);
System.out.println(format);