Java面试题
文章平均质量分 71
欢迎大家讨论与交流,谢谢!
从未止步..
努力努力再努力!
展开
-
每日一道面试题之String常用的方法有哪些?
根据功能大致可分为:常见String类的获取,常见String类的判断,常见String类的转换,常见String类的其他常用功能;**注意:compareTo方法不能用来进行数字之间的比较,且进行字符比较的过程中是不区分大小写的**原创 2023-05-30 00:15:00 · 114 阅读 · 1 评论 -
Iterator_fail-fast和Iterator_fail-safe~
通过上面额源码我们学习到,若 “modCount 不等于 expectedModCount”,则抛出ConcurrentModificationException异常,产生fail-fast事件,那么什么时候modCount 不等于 expectedModCount?虽然这种方法并没有报错,且添加的元素都能够被运行,但是我们会发现在遍历的过程中,并没有输出元素E,而在最后打印列表元素时,才有元素E的输出,其实这种情况就称为。发现遍历的同时其他人来修改,应当有应对策略,例如:牺牲一致性来让整个遍历运行完成。原创 2023-01-29 21:01:19 · 399 阅读 · 0 评论 -
ArrayList扩容机制~
我们继续添加,此时的容量又无法满足了,继续扩容,但此时的容量大小为15,如果扩容为原来的1.5倍,是不是代表最终容量大小为22.5?,例二中的原始容量为0,扩容后的容量为10,但是添加的元素个数为11个,因此,最终的容量大小为11。上述的输出结果让我们很疑惑,为什么不是我们所想的15呢?事实并非如此,其容量计算是这样的,因此第二次扩容的最终容量大小为22。输出的容量大小为10。输出的容量大小为11。原创 2023-01-27 16:52:55 · 1376 阅读 · 0 评论 -
快速排序的实现和优化~
假设此时,我们将内层的两个循环中的i原创 2023-01-25 17:43:52 · 619 阅读 · 4 评论 -
插入排序算法的实现和优化~
对于间隙的选择是多种多样的,不同的队列选择它的时间复杂度也是不同的,这里我们主要学习它的思路。假设我们需要将下述的无序数组通过插入排序使之成为有序数组,那么元素9会移动7次!,每一轮从未排序区域中取出第一个元素,插入到排序区域(需保证顺序)使用希尔排序,我们通过上述步骤,可以看出元素9只移动了3次。直接插入排序是一种最基本的插入排序方法,答案为:9,18,19,23,23,15。对于这种情况,我们可以使用希尔排序!2:重复以上步骤,直到整个数组有序。1:将数组分为两个区域,排序区域和未排序区域。原创 2023-01-24 18:59:37 · 540 阅读 · 1 评论 -
选择排序算法的实现和优化
,通过n-1次关键字的比较,从第n个记录中选出关键字最小的记录,并和第一个记录进行交换,通过n-2次关键字的比较,从第n-1个记录中选出关键字最小的记录,并和第二个记录进行交换…,通过n-i次关键字的比较,从n-i+1个记录中选择出关键字最小的记录,并和第i个记录进行交换反复进行上述步骤,经过n-1趟选择排序,将把n-1个记录排到位,最后剩下的那个元素同样已经就位,所以共需进行n-1趟选择排序将数组分为两个子集,排序的和未排序的,每一轮从未排序的子集中选出最小的元素,放入排序子集,重复上述步骤,直至整个数组原创 2023-01-18 14:26:19 · 3001 阅读 · 0 评论 -
冒泡排序算法的实现和优化~
拿上面这种情况解释,也就是说,下一次,我们第一轮结束之际,需要记录元素3的索引,也就是4,第二轮比较的时候,只需要将前五个元素一一进行比较。原创 2023-01-16 15:04:57 · 2972 阅读 · 1 评论 -
折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
上述代码中产生溢出的原因是由于:当要查找的数在右子表时,此时:r最初为整数的最大值-1不变,而l的值增大到了r/2的大小,因此即使他两相加除2,在计算机中,是根据二进制进行运算的,逢二进一,由于最高位表示符号位,当它为1时,该数即为负数,那么解决溢出的核心就是。,因此对于上述溢出现象,右移一位既能够避免最高位[符号位]为1,导致该数为负数的现象,而且正好借用它右移一位有除二的效果,还简化了数学表达式;在拥有128个元素的数组中二分查找一个数,需要比较的次数最多不超过多少次 [来源于:北京易道博识社招]原创 2023-01-15 13:18:04 · 862 阅读 · 2 评论