StringBuffer和StringBuilder的区别
StringBuffer 线程安全–>StringBuffer 的所有公开方法都是 (同步)synchronized 修饰的
StringBuilder 线程不安全 —>StringBuilder 没有被synchronized修饰
StringBuffer每次获取toString都会直接使用缓存区的otStringCache构造一个字符串
StringBuilder则需要复制一次字符串数组,之后再构造一个字符串
StringBuffer 是线程安全 的,它的所有公开方法都是同步(synchronized)的,StringBuilder 没有对方法加锁同步的,所以毫无疑问,StringBuilder 的性能要远大于 StringBuffer。
==和equals的区别
==号和 equals 方法的区别:
== 是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是两个对象的内存地址。
equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,通过查看object类中的源码可知:如果没有重写object类中的equals方法,equals方法和==号比较引用数据类型无区别。
小结: 默认情况下equals比较的是两个对象的内存地址。但是,这么做是什么多大意义的,所以一般都会重写后的 equals方法;在重写的equals方法中比较的两个对象中的属性(成员变量)。
Collection 和 Collections 区别
Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
集合框架体系
从各种集合形式中提取公共要素,形成了一个集合的解决方案,就是Java的集合框架。