Java面试基础问题之(十五)—— 堆排序有趣的点

面试:第十五章:蚂蚁金服面试以及答案 做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》 阅读详情

1.初始化时,为什么要全部放入完全二叉树中再调整,而不是用put()一个一个插入?

复杂度不同

全部放入再调整,第一个开始调整的节点是第一个非叶子节点,每个节点只需要“向下调整”,调整的最大次数即节点到叶子的“高度”。

一个一个插入,每个节点总是插入在完全二叉树的最后一个节点上,需要“向上”调整,调整的最大次数即节点到根的“深度”。

O(2N) vs O(NlogN)。

具体证明比较简单:

全部放入:高度为h的节点个数为:2^h - 1,调整次数 H-h(H为总高度,节点个数为N的二叉树高度为logN)

平均下来(2^h-1)* (logN-h)累加,h从logN到0,除以N则得到平均次数:O(2N)

一个一个放入:高度为h的节点个数:2^h - 1,向上调整,最多调整次数为h,

平均下来(2^h-1)* h 累加,h从0到logN,除以N则得到平均次数:O(NlogN)

严格证明可以手工计算(高中前n项和问题),或者网上找资料,这里提供一个感性认识:

全部放入时,节点总是“向下调整”,调整的最大次数即节点到叶子的“高度”,完全二叉树整体是个“金字塔”形状,越往下每层节点越多,越往上节点越少,而对于全部放入而言,越下层的节点调整次数越少,越往上调整次数越多。反映在之前的求和公式上即:(2^h-1)* (logN-h),金字塔底部节点数多(2^h-1大)但距底部近(logN-h小)。金字塔顶部相反。这样导致二者之积总是“有界”的,两个相反的增长趋势可以将放大效应相互抵消。

而一个一个放入时,情况相反。(2^h-1)* h,金字塔底部节点数多(2^h-1大),同时但距根远(h大),这样导致二者之积单调递增,放大效应叠加,从而趋向无穷,其实根据极限的知识也知道,对于(2^h-1)* h 的前h项和,如果是算复杂度(只看数量级)的话,看最后一项即可:(2^h-1)* h = N * logN。

2.向上调整和向下调整策略的正确性

这里顺便说一下二者策略的正确性。

全部放入调整,其实局部策略就是一条:保证每个节点一定小于等于两个孩子(最小堆),而如果真的和左右孩子之一(肯定是和最小孩子)调整了位置才使本节点达到此目的,则那个被交换值的孩子节点的平衡性(小于等于左右孩子)可能被破坏了,所以需要向下递归调整。

这反映在我们向下调整的策略上就是:一直调整到没有和孩子发生交换或者已经触及叶子节点为止。

(注意:不用一定调整到叶子,最后一个非叶子节点的右孩子也不一定存在,这个很坑!!)

那么为什么这样一定就是正确的策略呢?其实这就是最小堆的定义:所有节点都小于等于孩子。

看,多么精妙啊,很多时候我们只是去记策略:从当前往下调整,比孩子大就和孩子交换blablabla......其实这样的“规则”或者策略是为基本的定义服务的,不是这样做就能构造这样的最小堆,而是只有这么做构造出来的堆才具有最小堆的性质。数学中的当且仅当(if and only if)在这里再恰当不过了,

言归正传,之前的问题好像还没有大结局呢:现在假设调整当前节点时,跟左孩子发生了交换,并且递归从左孩子向下调整了m层,则好像我们现在只能得到这条“跛腿”的“人”字型(左长右短)的路径是一定满足最小堆定义的:所有节点都小于等于孩子。那么其他节点呢?能保证下标大于等于当前节点的节点都满足最小堆条件了?

别忘了,我们是一路从第一个非叶子节点调整过来的,倒数第1个调整完了,条件满足;接下来调整倒数第2个,满足了,调整第3个......调整到当前节点时,当前节点之前的节点都满足条件了,他们的满足条件不是“凭空”蹦出来的,第k个是以第k-1个满足为条件推导而来,第k-1个是以第k-2个满足为条件推导而来......而倒数第一个是我们调整的起点,是满足的。所以可以看到,我们调整当前节点时,之前的节点都满足了条件,这是以倒数第一个满足条件为基础递推而来,基石稳固。这多么像我们数学归纳法啊,只要第一个满足条件,后面的满足前后项约束关系,推导出来必然是正确的。

那么,刚才除去“跛腿”的“人”字型(左长右短)的节点满不满足的问题就很明显了,所有当前节点之后的节点,没有经过移动的,都是已经满足条件的。换言之,在调整当前节点之前,其实所有节点(当前节点之后)都已经满足条件了(有序),“跛腿”的“人”字型路径只是为了弥补当前节点进行的破坏活动所进行的修复,之前说:

“只能得到这条“跛腿”的“人”字型(左长右短)的路径是一定满足最小堆定义”

其实现在再回看,应该是只有这条路径经历了平衡——失衡——复衡的过程,其他部分一直是平衡的。

至此,已经很明晰了,调整完当前节点,则当前节点之后(包括当前节点)的“区域”都是有序的,那么调整完树的根时,整棵树就是有序的了。

 

至于插入之后向上调整,其实就比较简单了。在插入到完全二叉树最后一个位置之前,树是有序的,插入后,可能会使其父节点失衡,如果比父亲小(最小堆),则要和父亲交换,这里不用管左孩子(如果有的话),因为如果插入的节点比父亲还要小,则一定比右孩子小,当前节点放上父亲位置之后,一定还是比左孩子小,不会影响左孩子即子树的平衡性(左孩子子树更不用说,都没有碰他们的祖先,怎么会影响到他们的平衡)。

换上父亲的位置后,还要跟爷爷比较,因为现在父亲的位置上换上了比原来更小的值,而爷爷及太爷...是一个比一个小的,现在位置如果没变或者换成了更大的数则祖先一定不用变,但现在换上了更小的数,则有可能影响到他们的平衡。所以要递归向上调整,一直到根即可。

这里深究起来还有2个问题:

① 插入节点后从叶子一路调整到根就结束,其他节点都不用管的吗? 万一影响到其他节点平衡性怎么办 ?

即除了这条路径上节点,其他区域的节点会受到影响吗?

其实这个问题与其这样问,不如换个方式:什么情况下会影响到一个节点的平衡性(最小堆)?

还是回到最小堆定义:所有节点都小于等于孩子。

可以看到,当前节点满不满足最小堆定义,只和它的孩子和祖先有关。

向上调整时,相对于当前节点,最小堆的节点可以分为两类:一类是我调整路径上的节点,一类是其他节点。前者不用说,我已经调整或者将来调整,对于后者,都可以认为是当前节点的远房表兄。现在就考虑一下,从叶子到根调整时,到底有没有破坏表兄们的平衡性,我们来观察任意一个表兄——即隔壁或者远房树上的一个节点:我调整我的,我一没动你的后代(之前上来的路径上都是我自己的后代),二没动你的祖先——呃,好吧,我动了我爸我爷我太爷...他可能也是你爸,你爷爷你太爷......但是别激动!听我解释!我不是随便动的,每次动他们都是在我一定比他们小的时候才动的,我比他们小,那一定比你们还小,所以我动不动对你们都没有影响。除了我调整的这条路径上的节点,其他所有区域保持原样就好!!

② 这条路径上的节点一定是满足最小堆的吗(递减)

向上调整的策略时,一发现父亲比我大,就把父亲"拉下马"(嘘。。。。我爸是不会看到这个帖子的),然后自己上位,继续向上挑战,如果发现又有比自己大的,一样拉下马,很明显,这样总是能保证最后一个调整的节点满足最小堆性质,但是“身后”路径上的节点呢? 你只是一味的将他们一个个填坑式的向下拉下马,他们一个个下去以后能保证是父亲比左右孩子小吗?

答案是肯定的。

先来看路径上的孩子,其实从叶子一直到最终停止的地方(父亲比当前节点小,不用调整了),整体上看是将整条路径向下“拉”了一层,然后将插入的值放在最顶端。而这条路径原本就是有序最小堆的一条路径,当然是满足最小堆条件——递减。

再看路径上任意节点的另外一个孩子,之前父亲在位时,父亲比我小。现在父亲被“拽”下来成为了我的兄弟,爷爷成了新》...家长(怎么那么怪异啊。。。。),当然,爷爷肯定比爸爸小,那么现在爷爷在位,我肯定比他大,不会影响到我,故也不会影响到我的孩子。

两个一结合,嗯,对于这条路径本身,调整了完了之后也是符合最小堆定义的。

故① ② 一结合,向上调整时,调整后的路径是符合定义的,其他区域也是符合的(没有变),故策略有效。

 

啰嗦了这么多,其实还是有收获的。可以看到,无论向上还是向下,调整都一定非要调整到根或者叶子,只要不满足调整的条件后就可以停止了,后面不需要检查是否有“例外”出现。这也是最多调整次数的由来。

 

3.能对最小堆任意节点进行update,delete操作吗

update或者delete必然要先查找到该节点,但是最小堆不是排序树,虽然总是满足父亲小于等于孩子,但是左右孩子没有顺序,考虑一个实际问题:如果发现查找值大于当前节点值,接下来该走左孩子还是右孩子?

这一点从二叉树每一层节点的value的“随机”分布也能看出来,上层节点下来时,根本无法决策怎么走,查找的值完全可能出现任意的子树中。

但是考虑到最小堆(完全二叉树)一般都是用数组存储,倒是可以走遍历数组这条路。注意,是遍历,没有任何捷径可走,这样查找的复杂度已经为O(N)。

如果已经保证节点的“值”是唯一的(非常重要),走O(N)查找倒是能够定位位置。接下来考虑更新,更新完成后,该怎么调整呢?

其实,这个问题和之前的向上或者向下调整的理解有很大的关系。

① 等于原值,不动。

② 更新的值比原来的大,则现在的情形和之前考虑的向下调整的情景:考虑一个节点向下调整到某处的情形:上面的路径(到调整点)已经有序,下面等待我去比较调整(如果比我小的话)。

现在条件更友好:向上,从当前节点到根都是有序的,其余的所有区域都是有序的(之前是部分区域),现在更新的值比原来的大,则向上不用调整了(比他们都大),只用向下调整,而且只用一条路径。

③ 更新的值比原来的小,跟之前向上调整的中间任意节点情形一模一样:所有节点都是有序的,只有当前节点不一定。

则和之前一样操作即可:一路调整到根。

不过有个隐含的条件挺扯的,怎么保证更新操作产生的值不会和其他值发生冲突呢,其实这个问题在之前查找时就提到过,但是具体实现应该结合一个hashmap来实现,考虑一个10个ip访问日志中找出前10个ip地址的问题,一般这个问题都是将大文件切分成能够读入内存的小文件后,再使用hashmap进行计数,Key为IP(字符串),Value为出现次数,这样,使用hashmap就达到了保证Key唯一的目的。而最小堆的每个节点也是key+value+left+right的结构,查找定位用key,比较大小用value,这样update总是更新value,然后根据value调整最小堆,key是没有变化的(值没变,节点位置变了)。当然,最后不要忘了讲hashmap中的value也更新了(也可以先更新hashmap再更新堆,当然,最保险的是加锁,做成事务,一起更新)。

再考虑删除,有了上面的基础,查找删除节点的位置很好搞定:判断hashmap.contains(key)为true以后到最小堆数组中O(N)根据该key查找到位置,但是接下来该怎么办呢?

参考之前删除根节点的情况来看,删除后拿最后一个节点填上,向下调整即可。

但是注意,我们可不能直接这么一样搞。因为任意节点都是根节点的后代,即根节点必然是小于等于最后一个节点的,所以只用向下调整(也没法向上不是),而对于非根节点的删除可不一定,我们拿最后一个节点来填坑,但是最后一个节点跟删除的节点的大小关系是不一定的,可能大可能小,可能等于,要分类处理,其实逻辑和上面的更新是一样的:

size--(最后一个删掉,方式现在向下删除可能和最后一个节点发生交换,当然,一般向下调整的逻辑都是都是当前值 > 孩子才交换,不会包含等于,所以也不会发生问题)

如果等于:不动即可,最简单。

如果大于:可以归结为上面的更新了一个大于原值的值——向下调整到叶子即可。

如果小于:归结上面的更新了一个小于原值的值——向上调整到根即可。

可以看到,update或者delete查找的复杂度都是O(N),调整则要视大小而定,如果平均来看:各1/2(可千万不能认为等于小于大于的概率各1/3,确切地说,等于的概率为0)。

则每一层节点向上和向下都是1/2,其实就成了之前算了向上调整法和向下调整法建树的计算,所以更新或删除的复杂度为:

O(2N+NlogN)/2 /N= O(2+logN)

相对于其他需要维护的有序表,复杂度还是低一些,当然,平衡二叉树可以达到此复杂度。

Arcgis 10.3 与 ArcGIS Engine 10.3 安装与破解 阅读详情

相关推荐

【SOC估算】基于EKF与神经网络融合的锂电池SOC高精度估计及Matlab实现

本文探讨了基于EKF与神经网络融合的锂电池SOC高精度估计方法。通过结合扩展卡尔曼滤波(EKF)的模型驱动优势和神经网络的数据驱动学习能力,实现了对电池荷电状态(SOC)的精准预测。Matlab仿真验证了该混合算法在各种工况下均能显著降低估计误差,提升电池管理系统性能。

play7的博客 694

最小堆最大堆基础概念与经典题目(Leetcode题解-Python语言)

堆是一种特别的完全二叉树,符合以下两个定义即为堆: 1、完全二叉树; 2、每一个节点的值都必须大于等于或者小于等于其孩子节点的值。若是大于等于,即为最大堆,若是小于等于,即为最小堆。显然,最大堆的根节点是最大值,最小堆的根节点是最小值。 深度为kkk的二叉树至多总共有2k+1{2^{k + 1}}2k+1个节点(定义根节点所在深度k0{k_0}k0​=0),节点数正好是2k+1{2^{k + 1}}2k+1的二叉树就称为满二叉树;如果对满二叉树的节点编号,有二叉树的节点可以与编号一一对应的话,该二叉树就称为

自动化研究生在读,此博客记录了我的学习与刷题经验,欢迎大家阅读交流 1486

复现论文报错解决

博主复现论文代码过程中遇到的各种报错及解决方案~

rellvera的博客 1058

最小堆(小根堆)

最小堆定义: 完全二叉树,且其任意节点键值小于其左子树所有节点和右子树所有节点。堆顶总是保存堆的最小值。 堆的表示: 堆是完全二叉树,所以可以用数组表示堆。设数组heap[n]为堆,heap[1]表示根节点,对于除根节点外的任意节点heap[i],其父节点为heap[i/2],其左儿子为heap[i*2],右儿子为heap[i*2+1]。 堆的操作: heapify(heap,i

kiu000的专栏 5296

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 262

ARM Memory Compiler实战指南:从参数配置到GDSII生成的全流程解析

本文详细解析了ARM Memory Compiler在SRAM设计中的全流程应用,从基础参数配置到GDSII文件生成。涵盖SRAM类型选择、核心参数配置策略、高级优化技巧及TSMC 28nm工艺下的实战案例,帮助IC设计工程师高效实现存储器模块的优化设计。

game4的博客 416

最小堆

一、 满二叉树 一个深度为k,节点个数为2^k-1的二叉树为满二叉树,即一棵树深度为k,没有空位。 二、完全二叉树 一棵深度为k有n个节点的二叉树,对树中节点按从上至下、从左至右的顺序进行编号,如果编号为i(1<=i<=n)的节点与满二叉树中编号为i的节点的二叉树中位置相同,则这棵树为完全二叉树。满二叉树是特殊的完全二叉树。 三、完全二叉树与满二叉树性质 四、最小堆 最小堆是一种经过排序的完全二叉树,其中任意非终端节点数值均不大于其左子节点和右子节点的值。 如果一棵..

光何 7301

Win10系统权限深度解析:如何安全地将C盘所有者从TrustedInstaller变更为Administrators

本文深入解析了Win10系统中C盘文件权限管理的核心机制,解释了为何管理员账户(Administrators)默认无法修改由TrustedInstaller保护的系统文件。文章在强调安全风险的前提下,详细提供了通过图形界面和命令行两种方式,将文件或文件夹所有权从TrustedInstaller安全变更为Administrators的实操步骤,并给出了关键的风险预警与权限恢复方法。

weixin_29305313的博客 549

最大堆/最小堆

 堆的定义是:n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆    (1)Ki <= k2i 且 ki <= k2i+1   或 (2) Ki >= k2i 且 ki >= k2i+1           (i = 1,2,…[n/2]) 当满足(1)时,为最小堆,当满足(2)时,为最大堆。   若将此序列对应的...

weixin_30336061的博客 581

【HSPiP应用指南】从理论到实践:如何利用汉森溶解度参数优化配方设计

本文深入解析了汉森溶解度参数(HSP)理论及其在配方设计中的核心价值,并详细介绍了如何利用HSPiP软件工具从理论走向实践。文章通过匹配溶解度参数、计算汉森距离(Ra),系统阐述了如何解决溶剂选择、颜料分散稳定性及扩散行为预测等关键问题,并结合界面气相色谱(IGC)等实验方法提升预测精度,旨在帮助配方师实现配方设计的可视化、可量化与高效优化。

weixin_29305313的博客 1645

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块

本文记录的是基于StarNet的YOLOv11轻量化改进方法研究。StarNet设计简洁,没有复杂的设计和精细调整的超参数,仅是一个 4 阶段的分层架构。并且其中能够在低维空间计算的同时考虑极高维的特征这一特性,进而提高模型精度。本文在替换骨干网络中配置了原论文中的starnet_s1starnet_s2starnet_s3和starnet_s4七种模型,以满足不同的需求。

Limiiiing的博客 5985

Java面试,如何在短时间内做突击

面试前很有必要针对性的多刷题,大部分童鞋实战能力强,理论不行,面试前不做准备很吃亏。这里整理了很多常考面试题,希望对你有帮助。 面试技术文 Java岗 面试考点精讲(基础篇01期) Java岗 面试考点精讲(基础篇02期) Java岗 面试考点精讲(网络篇03期) Java 面试中遇到的坑 Java面试中遇到的坑【填坑篇】 Java面试中遇到的坑【篇二】 java面试遇到的坑...

Java知音 9105

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

Java 代码面试完全指南(一)

原文:zh.annas-archive.org/md5/2AD78A4D85DC7F13AC021B920EE60C36 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 Java 是一种非常流行的语言,在各种领域和行业的 IT 工作岗位中都有很多需求。由于 Java 赋予全球数十亿设备动力,它已成为一种非常吸引人的学习技术。然而,学习 Java 是一回事,开始在 Java 领域发展职业是另一回事。本书专门为那些想要发展 Java 职业并希望在 Java 中心面试中脱颖而出的人而写。 通过本书,您

龙哥盟 2223

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java最新上周刚面的美团 现已拿到offer,分享一下三面面经(2),java的面试问题

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。本文已被。

2401_84584583的博客 669

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JAVA面试题分享三百二十五:饿了么一面-面试题分析

Pub和Sub从字面上理解就是发布(Publish)和订阅(Subscribe),在redis中,可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的信息,这一功能最明显的用法就是实时消息系统,比如普通的即时聊天,群聊等功能。如果使用操作系统的程序计数器,就需要进行系统调用和内核态的切换,会影响性能。需要注意的是,在分库分表的场景下,如果使用Snowflake算法生成ID,需要保证每个分库分表的机器标识符不同,否则可能会导致生成重复的ID。

之乎者也·的博客 1126

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【2021年】 最新Java面试题汇总,看完这些面试题足够了!!!

前言 如果你并不完全确信你自己或是你对 Java 的熟练程度,那么这会是一个非常棘手的问题。如果有这种情况,你应该把打分调低一点。之后,你大概会得到与你承认的水平相符的问题。因此,假如你给自己满分,却不能回答一个有点难的问题,那将会对你不利。我今天就把这些东西分享给小伙伴们,也能为小伙伴们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多说,直接上干货! 高端技术面试题 这里讲的是大公司需要用到的一些Java后端技术,这里专门整理了一个文档,希望大家都可以看看。这些题目有点技

weixin_56667968的博客 864

字节跳动Java面试难吗,应该如何应对?应付秋招你只需要这样做

为什么考虑使用Spark?使用华为的服务减少了哪些运维工作?你觉得项目中有哪些比较有意思的点?数据处理方面做了哪些工作?用Redis做了什么?使用过Redis的什么命令?什么情况下会用到flush?如果一个信息更新非常频繁会怎么应对?前面的结合自己的实际经验回答即可。最后一题答使用了消息队列做缓冲。手写代码很经典的一个二叉树镜像问题,让我做两个事情:如何将这个问题进行抽象(其实就是算法的思路)实现算法面试官看完我的代码后进行了追问:Worst case下你的代码的时间和空间复杂度。

a1901149的博客 1060

Java面试题目总结

Java面试题目 作者:张佳辉Java面试题目一、Java的九大内置对象 和 jsp四大作用域二、Java面向对象的四个特征三、访问修饰符 public,private,protected,以及不写时的区别?四、Java的基本数据类型五、Java反射六、接口和抽象类异同七、String 和 StringBuilder、StringBuffer 的区别?八、== 和 equals 的区别是什么?九、String s = "xyz" 和 String s = new String("xyz") 区别?十、Lis

人在深圳! 919

2022年 最新Java面试题汇总,看完这些面试足够了

如果你并不完全确信你自己或是你对 Java 的熟练程度,那么这会是一个非常棘手的问题。如果有这种情况,你应该把打分调低一点。之后,你大概会得到与你承认的水平相符的问题。因此,假如你给自己满分,却不能回答一个有点难的问题,那将会对你不利。我今天就把这些东西分享给小伙伴们,也能为小伙伴们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。不多说,直接上干货!

m0_61926454的博客 853

2024年Java进阶(三十五)java int与integer的区别_int x = (integer),前端系统工程师面试宝典

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】**

2401_84434880的博客 863
上一篇: Java面试基础问题之(二十一)—— 线程持有的任何对象.wait()都会使线程陷入阻塞吗
下一篇: Java基础知识之(三)—— java的逻辑操作符和位操作符
ProLayman
博客等级 码龄10年 105粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值