sh 应用场景
AVL树:Windows对进程地址空间的管理使用AVL树
红黑树:Map和Set都是红黑树实现的
B/B+树:数据库索引
==和equals区别;
==:在8种基本数据类型中,比较的数据的值是否相等
equals:在引用数据类型中,比较的是内存中首地址是否相等,由于new出来的对象在堆上开辟了两个独立的空间,地址也当然是不同的,所以返回false。诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
字段和属性的区别:
字段通常是在类中定义的类成员变量
属性实现了字段的封装,属性有get、set 方法来控制字段。
关键字continue、break和return的区别:
continue: 跳出本次循环继续下一次循环
break: 跳出循环体,继续执行循环外的函数体
return: 跳出整个函数体,函数体后面的部分不再执行
String,StringBuffer与StringBuilder的区别:
String: 字符串常量,String 是不可变的对象, 因此在每次对 String类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,速度会变的相当慢。
StringBuffer: 字符串变量,是线程安全的。对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。
StringBuilder: 字符串变量,是非线程安全的。和StringBuffer用法一样,但是非线程安全,速度较快。