面试试题汇总(3)

1、聊一聊java中的加密算法。
①、base64:属于编码格式,非加密算法,可逆加密
②、MD5:信息摘要算法,不可逆加密,返回128bit长度
③、SHA-1:安全散列算法,不可逆加密,返回160bit长度,摘要比MD5长32位,安全性更高,但运行速度比MD5慢
④、HMAC:散列消息鉴别码,不可逆加密,基于秘钥的hash算法的认证协议
参考文章:https://www.cnblogs.com/Free-Thinker/p/5825588.html

2、spring中使用到了哪些设计模式
①、BeanFactory和applicationContext应用了工厂模式
②、在bean的创建中,Spring为不同scope定义的对象,提供了单例和原型等模式实现
③、AOP使用了代理模式、装饰器模式、适配器模式
④、各种监听事件,是观察者模式的典型应用
⑤、类似jdbcTemplete使用了模板模式

3、volatile与synchronized的比较
①、volatile是线程同步的轻量级实现,所以volatile的性能要比synchronized好
②、volatile只能修饰变量,synchronized可以修饰方法、代码块。
③、多线程访问volatile不会发生阻塞,而synchronized会发生阻塞。
④、volatile是变量在多线程之间的可见性,synchronized是多线程之间访问资源的同步性
⑤、volatile不能保证变量的原子性,synchronized可以保证变量的原子性

4、注解@resource与autowire的区别
①、autowire是spring定义的,在org.springframework.beans.factory.annotation,默认是按类型装配bean
②、resourse是J2EE定义的,默认是按名称装配bean,找不到则按类型装配

5、mysql数据库引擎
mysql在V5.1之前默认存储引擎是MyISAM;在此之后默认存储引擎是InnoDB
myisam查询效率比innodb快1-2倍,
myisam是表级锁,非事务安全,适用于一次插入多次查询的表,或者是读写分离中读库中的表
innodb是行级锁,提供回滚,提交,崩溃恢复的事务安全,唯一支持外键,适用于频繁更新,插入,读写分离写库中的表

猜你喜欢

转载自www.cnblogs.com/conswin/p/9398673.html
今日推荐