i=6
a=i++ a=6 i=7
a=++1 a=7 i=7
public为公有属性
private为私有
若创建一个class文件应为 public class则可以全部应用
若以class只能在该包中使用
若引用其他包里面的文件则需要在顶部声明impor xx包名 xx类名;
或者impor xx包名 *表示应用xx里面的所有东西
static为类变量 改变一个则全变
静态绑定:根据变量声明的类型来决定
动态绑定:根据变量的动态类型来绑定
在成员函数调用其他成员函数时也是通过this这个对象变量来调用的
Collections.shuffle(list); 使用默认的随机性来源随机排列指定的列表。所有排列发生的可能性大致相等。
HashMap与TreeMap的区别;
HashMapr | TreeMap | |
---|---|---|
底层数据结构 | 使用哈希表来存储键值对,通过计算哈希码来确定元素在数组中的位置,具有 O(1) 的常量时复间杂度进行插入、删除和查找操作(在没有哈希冲突的情况下)。 | 则是基于红黑树的实现,它会对键值对根据键进行排序存储。红黑树保证了元素的有序性,插入、删除和查找的时间复杂度为 O(log n)。 |
有序性 | 不保证元素的顺序,存储顺序与插入顺序无关 | 会根据键的顺序进行排序存储,因此遍历时会按照键的自然顺序或者通过传入的比较器进行排序。 |
性能 | 在大多数情况下,HashMap 的性能更好,因为它的插入、删除和查找操作通常都是常量时间复杂度 | 在维护有序性方面有一些额外的开销,因此在大规模数据集上可能比 HashMap 慢一些。 |
适用场景 | 如果需要快速的插入、删除和查找操作,并且不关心元素的顺序,则应该选择 HashMap。 | 如果需要根据键的顺序进行遍历或者获取一定范围内的键值对,则应该选择 TreeMap。 |