Java面试题

1、说说IOC和AOP的关系?
    IOC和AOP都是编程目标和Spring没有关系,就算没有Spring也能实现AOP,比如大名鼎鼎的Aspectj技术也能实现AOP。
Spring IOC和Spring AOP关系就是,Spring AOP当中的对象必须在IOC容器中,比如Aspectj就可以脱离IOC单独使用,但Spring 
AOP就不能脱离IOC。

2、String和StringBufferStringBuilder的区别是什么?

①可变性

String使用final修饰字符数组保存字符串(private final char value[];),所有String对象是不可变的。StringBuilder和StringBuffer继承AbstractStringBuilder,AbstractStringBuilder使用不带final修饰字符数组(char[] value;),所以StringBuilder和StringBuffer对象是可变的。
②线程安全性
String类型的对象是不可变的,也就可以理解为常量,线程安全。
AbstractStringBuilder是StringBuffer和StringBuilder的父类,定义字符操作公共方法。StringBuffer对方法加了同步锁,线层安全。StringBuilder对方法没有加同步锁,线层不安全。
③性能
每次对String类型的对象进行改变的时候,都会生成一个新的String对象,然后将指针指向新的String对象。StringBuffer和StringBuilder改变,都是对对象本身进行操作。相同情况下使用StringBuilder相比使用StringBuffer,仅能获得10%-15%左右的性能提升。
对三者使用总结:
操作少量数据用String,单线层操作字符串缓冲区下操作大量数据用StringBuilder,多线层操作字符串缓冲区下操作大量数据用StringBuffer。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值