Java面试宝典_君哥讲解笔记04_java基础面试题——String s=new String(“xyz“);创建了几个String Object、equals和hashCode、hashCode(

本文深入探讨了Java基础面试中的核心问题,包括String对象的创建、hashCode与equals的关系及HashMap的工作原理等。通过实例帮助读者理解这些关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java基础面试题目录

前言

在这里插入图片描述

String s=new String(“xyz”);创建了几个String Object【重要】

这个问题是必须要回答上来的这个问题要是答不上来的话,会被认为基础很差
分析
在这里插入图片描述
String s=new String(“xyz”),这里有一个new
那肯定是new了一个对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所以最终答案是 String s=new String(“xyz”);创建了几个String Object 生成了2个String Object ,一个是常量池中的,一个是堆空间的

全面理解: String s2=“xyz” 创建了几个对象

在这里插入图片描述
在这里插入图片描述
答案是没有创建对象,即创建了0个对象
没有创建只是引用,因为常量池中已经有了
在这里插入图片描述
在这里插入图片描述
预测以下代码的输出结果
在这里插入图片描述

我们理解了前面的原理之后就可以知道,== s5是创建了1个字符串对象 ==
所以我们回到最开始
在这里插入图片描述
可以是1个也可以是2个,就看前面常量池里面有没有这个字符串对象了

下面输出的是true还是false

在这里插入图片描述
先自己预测输出的值是什么?一定要理解
在这里插入图片描述

a.hashCode()有什么用,它与a.equals(b)有什么关系【重要】?

很多小白都不知道hashCode与equals的关系,但是我们在面试题中又会经常涉及到类似的题目
在这里插入图片描述
这样一问,多少人要问懵
我们总想逃避复杂的问题,但是这个问题千万不能逃避,
工作三五年之后,你会发现这个知识点非常重要,同时如果工作三五年还不会,会被鄙视

在这里插入图片描述

在这里插入图片描述
hash码也叫散列码

HashMap到底是啥

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么String要重写hashCode,我们知道java里面任何一个类都是顶层都是继承自object的

这里为什么要重写就是因为,如果你不重写,它就会默认走object的hashCode
在这里插入图片描述

hashCodd还有其它作用吗?

hashCodd还有其它作用吗,这里跟hashMap就关系很大了,我们知道
在这里插入图片描述
在这里插入图片描述
equals返回true,则他们的hashCode一定相同

在这里插入图片描述
但是在String里面又重写了 equals,所以才变成今天我们使用的这样:判断内容是否相等用equals,就是因为String重写了equals
在这里插入图片描述
String里面不仅重写了hashCode方法,还重写了equals方法
注意
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

打印九九乘法口诀表

在这里插入图片描述
在这里插入图片描述

求最大公约数和最小公倍数

这个问题,首先要知道数学里面是怎么算的,才能用java去解决
此题考核的是java的逻辑基础
在这里插入图片描述
在这里插入图片描述

这是很基础的题目,如果这道题做不出基本上就凉了,所以一定要把这些基础搞明白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值