String对象

1、hashCode与System.identityHashCode
默认情况下,System.identityHashCode()方法和Object.hashCode()返回的结果是一样的。
System的方法返回对象所指向的内存地址,它的返回值和是否重写hashCode方法没有关系。
String类重写了hashCode方法,重写了equals方法。
判断两个String的值是否相等,可以用equals(),也可以用compareTo()方法,只要 == 0,两个String的值就相等。
2、StringBuffer StringBuilder
对比发现,对于10万的插入,StringBuilder的速度3倍于StringBuffer。看来加不加锁对效率的影响还是很大的。
3、
JAVA几乎允许所有的双目运算符合“=”一起结合成符合赋值运算符。
实际上, a += 5 等价于 a = (a的类型) (a + 5),这就是复合赋值运算符包含的隐形转换。
4、方法重载
根据精确匹配的原则,当实际调用时传入的实参同时满足多个方法时,如果某个方法的形参要求参数范围越小,那这个方法就越精确。很明显,Object[]可看成Object的子类。
当我们无法判断哪个方法更匹配实际调用时,程序是无法通过编译的。
5、静态static
被static关键字修饰的成员(Field、方法、内部类、初始化块、内部枚举类)属于类本事,而不是单个的java对象。
当程序需要使用内部类时,应尽量考虑使用静态内部类,而不是非静态内部类。当程序使用静态内部类时,外部类相当于静态内部类的一个包。

//声明并创建Inner内部类的实例 Outer.Inner in = new Outer.Inner(); in.info();

6、异常处理流程
当程序执行try块、catch块时遇到throw语句时,throw语句会导致该方法立即结束,系统执行throw语句时并不会立即抛出异常,而是去寻找异常处理流程中是否包含finally块。如果没有finally块,程序立即抛出异常;如果有finally块,系统立即开始执行finally块--只有当finally块执行完成后,系统才会再次跳回来抛出异常。如果finally块里使用return语句来结束方法,系统将不会跳回去执行try块、catch块去抛出异常。
Runtime异常是一种非常灵活的异常,它无需显式声明抛出,只要程序有需要,即可在任何有需要的地方是try...catch块来扑捉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值