String常见面试题

news/2024/12/1 11:43:20/文章来源:https://www.cnblogs.com/zhishi6/p/18579644

第一题:打印的结果是true还是false呢?

在之前我们就说过这题,执行s1时,检查字符串常量池,发现没有“abc”,于是创建“abc”,执行s2时,接着检查常量池,发现有“abc”,直接复用,所以s1和s2地址一致,打印出来是true

第二题:true or false

1.主方法自动进栈,执行s1,双引号“abc”,检查常量池发现没有,创建“abc”

2.执行s2,有new进堆,在堆内存中创建空间,检查常量池,发现有“abc”,所以直接将“abc”复制一份存入空间中

提问:“abc”复制的是内容还是地址呢?

答:我们需要知道,“abc”是一个对象,而它的本质其实是一个byte类型的数组所记录的值

该数组会记录每一个字节所对应的数字,a——>97 ...... 所以abc也就是97 98 99 因此,复制“abc”给堆内存的空间是将value这个数组的地址赋给空间,所以,复制的是地址。

3.空间收到abc后,s2记录地址

所以,s1与s2的地址不同,打印出来的结果是false

完整流程:https://kdocs.cn/l/cnfY68qsWVNS?linkname=150996520
.

第三题

1.主方法进栈,执行s1,检查常量池发现没有“abc”,创建对象

2.执行s2,常量池没有“ab”,创建对象

3.执行s3,先检查常量池是否有“c”,发现没有,创建“c”

4.发现有“+”即字符串拼接符,这时系统会自动产生一个新的类叫做StringBuilder

5.StringBuilder会自动将s2与“c”拼接成abc

6.拼接完之后还不能直接将地址给s3,因为s3是String类与StringBuilder类不一致,因此StringBulider还会使用一个toString方法,将其转换为String类

所以,s1与s3的地址不同,打印结果是false

完整流程:https://kdocs.cn/l/cnfY68qsWVNS?linkname=150996521

第四题

这题打印的结果是true

疑惑:为什么结果是true?上题才说完字符串拼接符,StringBuilder什么的,这题怎么就又是true了?

答:因为存在java常量优化机制,刚才是变量和“c”相加,而这题是三个常量相加,java会自动拼接在一起,所以这题本质长这样

这不就和第一题长一样吗,所以是true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/844500.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241415 《计算机基础与程序设计》第十周学习总结

学期(如2024-2025-1) 学号(如:20241300) 《计算机基础与程序设计》第X周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十周作业这个作业的目标 信息系统,数据库与SQL,人工智能与专家系…

《网络与系统攻防技术》实验八实验报告

1.实验内容及要求 (1)Web前端HTML 能正常安装、启停Apache。理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML。 (2)Web前端javascipt 理解JavaScript的基本功能,理解DOM。 在(1)的基础上,编写JavaScript验证用户名、密码的规则。在用户点击登陆按钮后回显“…

2024-2025-1 20241417 《计算机基础与程序设计》第十周学习总结

2024-2025-1 20241417 《计算机基础与程序设计》第十周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>2024-2025-1计算机基础与程序设计第十周作业这个作业的目标 <信息系统,…

蓝桥杯 买瓜

思路: 解决一个关于选择和处理 “瓜” 的组合优化问题。给定了一定数量的 “瓜”(数量为 n),每个 “瓜” 有其自身的质量(存储在数组 a 中),需要通过选择和可能的 “劈” 操作(将瓜的质量减半),使得所选瓜的总质量尽可能接近给定的目标质量 m,并输出达到或最接近目标…

必看版指南:BTB扩展接口——LCD、Camera、UART、I2C…

本次我将把BTB扩展接口——LCD、Camera、UART、I2C等作为介绍,特别分享Air201硬件BTB扩展接口相关内容。其板载BTB 24PIN连接器,可用于扩展连接LCD、Camera、Uart、I2C等外设。本次我将把BTB扩展接口——LCD、Camera、UART、I2C等作为介绍,特别分享Air201硬件BTB扩展接口相关…

精讲Air780E低功耗模组AT指令的FTP指南!

本文要讲的是低功耗4G模组AT指令的FTP指南,我以常用的Air780E模组为例,供大家参考。本文要讲的是低功耗4G模组AT指令的FTP指南,我以常用的Air780E模组为例,供大家参考。 一、 FTP 协议简介 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。 FT…

微信计数器|微信微信计数器软件|微信计数器不封号|最新微信计数器

微信计数器|微信微信计数器软件|微信计数器不封号|最新微信计数器1.精准计数,自动重复,可同时统计多个微信,互不影响 2.带远程网页分享,5秒自动刷新,准确计数分秒不差 3.后台分享支持分组类别,单独分享链接 4.支持任意版本微信,不在受微信版本束缚 5.支持客户子后台,大…

深度剖析 | 低功耗模组Air724UG的软件实例:KEYPAD教程!

本次我要要深度剖析的是低功耗4G模组Air724UG的软件实例,关于KEYPAD的教程,赶紧来学吧。本次我要要深度剖析的是低功耗4G模组Air724UG的软件实例,关于KEYPAD的教程,赶紧来学吧。 一、简介 在电路设计中,通常需要较多的外部输入,如果每个按键都单独去占用一个 IO 接口,就…

LaVita pg walkthrough Intermediate

nmap └─# nmap -p- -A 192.168.159.38 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-01 00:21 UTC Nmap scan report for 192.168.159.38 Host is up (0.071s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ss…

探索性测试及基本用例

目录1 测试决策5要素 2 缺陷检测 3 探索性测试3.1 探索性测试的定义 3.2 探索性测试方法 3.3 探索性测试的核心优势 3.4 如何评估探索性测试的测试效果4 传统的测试和精益与探索式测试区别4.1 传统的测试与探索式测试的区别 4.2 探索式测试与精益5 如何实施探索性测试 6 基本测…

String类的三种常见构造方法

1.根据构造方法创建字符串对象1.public String() 创建一个空字符串,里面不包含任何内容2.public String(char[] chs) 创建一个字符数组,将其拼接成字符串对象3.public String(String original) 根据输入的字符串,创建字符串对象2.疑惑: 1.我们原来创建了对象,将其直…

考研打卡(33)

开局(33) 开始时间 2024-12-01 09:36:12 结束时间 2024-12-01 10:27:50昨天快递是室友帮我取的数据结构带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中_______(扬州大学 2013年) A 第i行非∞的元素之和 B 第i列非∞的元素之和 C 第i行非∞且非0的元素之和 D 第i列非∞且…