- 博客(6)
- 收藏
- 关注
原创 HashMap和Hashtable有什么区别?
HashMap和Hashtable都是Map的实现类,所以它们的特性有很多相似之处。但是它们也有一些区别:1.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。2.HashMap允许键和值是null,而Hashtable不允许键或者值是null。3.HashTable使用Enumeration,HashMap使用Iterator4.Hashtable中的方法是同步的,而HashMap中的方法在默
2021-12-09 22:39:36 456
原创 HashSet和TreeSet的区别
区别1、TreeSet 是二叉树实现的,Treeset中的数据是自动排好序的,不允许放入null值。2、HashSet 是哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null,两者中的值都不能重复,就如数据库中唯一约束。3、HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的 String对象,hashcode是一样,所以放入的内容不能重复。但是同一个类的对象可以放入不同的实例...
2021-11-18 19:49:48 1034 1
原创 什么是值传递?什么是引用传递?
值传递:在方法的调用过程中,实际参数把它的实际值传给了形参,此传递过程就是将实际参数复制一份传给函数中。这样如果在函数中对形参的值进行了操作不会影响实际参数的值。因为是直接复制。所以这种方式在传递大量数据时,运行的效率会很低。引用传递:引用传递弥补了值传递的不足。如果传递的数据很大,值传递,会占据很多内存空间,而引用传递就是将对象的地址传递过去,函数接收的时原始值的地址。在执行方法的过程中,形参和实参的内容相同,指向同一块内存地址,其实就是操作的是源数据,所以方法的执行将会影响到实际对象。
2021-11-17 13:49:56 225
原创 什么是哈希冲突?怎么解决哈希冲突。
哈希冲突,指的是当关键字集合很大时,关键字值不同的元素可能胡映像到哈希表的同一个地址。即k1!=k2,但H(k1)=H(k2),这种现象就是哈希冲突。那如何解决哈希冲突?1.线性探测法如下图,元素 15 已经占据了下标为 2 的位置,元素 2 本身也应该占据下标为 2 的位置,这时遇到哈希冲突,它就往下一个地址寻找空位。...
2021-11-10 21:17:05 2337
原创 类的加载的顺序
我们可以通过以下的代码,通过运行代码结果就可以看出类的加载顺序。执行的结果为由此我们可以看见在创建子类对象时类的加载顺序为1.父类的静态代码块2.子类的静态代码块3.父类的代码块4.父类的构造方法5.子类的代码块6.子类的构造方法...
2021-11-09 21:17:51 62
原创 *floa类型和long类型那个取值范围更大?
*floa类型和long类型那个取值范围更大?作为基础知识。我们都知道float在内存中占用4个字节的空间,而long型占用8个字节的空间。但float的取值范围是-3.403E38~3.403E38。而long类型的取值范围是:-2^63~2^63-1。很明显float的取值范围更大。那为什么float取值范围更大呢?其实浮点型的编码规则是不同的, float是4字节32位bit, 但是float只显示8位数字, 超过的话就使用科学计数法, 这里面的24位二进制就表示了那8位显示的数字, 而还有8
2021-10-19 21:26:21 183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人