首页 > 其他分享 >String常见面试题

String常见面试题

时间:2024-12-01 11:44:04浏览次数:5  
标签:面试题 abc String s2 s1 常见 地址 true 常量

第一题:打印的结果是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

标签:面试题,abc,String,s2,s1,常见,地址,true,常量
From: https://www.cnblogs.com/zhishi6/p/18579644

相关文章

  • string 的基本用法
    前言string是一个非常常见的数据类型,用于表示文本或字符序列。以下是关于它的详细介绍:string(字符串)是由零个或多个字符组成的有限序列。字符可以是字母、数字、标点符号、空格或其他符号。例如,“Hello”、“123”、“!@#$”等都是字符串。在C++中,string是标准库(<stri......
  • String类的三种常见构造方法
    1.根据构造方法创建字符串对象1.publicString()创建一个空字符串,里面不包含任何内容2.publicString(char[]chs)创建一个字符数组,将其拼接成字符串对象3.publicString(Stringoriginal)根据输入的字符串,创建字符串对象2.疑惑:1.我们原来创建了对象,将其直接打印,出来的是一......
  • How can I fix that my variable goes into the formatted string of my html code in
    题意:我该如何修复我的变量正确地插入到Python中HTML代码的格式化字符串中?问题背景:ForaprojectI'mrunningaraspberrypiPicowhbasedwebserverthatshouldgettheinputsofthetemperaturesensoranddisplayitonthewebsite.Iamhowevernotvery......
  • 常见靶场的搭建
    漏洞靶场渗透测试(漏洞挖掘)切忌纸上谈兵,学习渗透测试(漏洞挖掘)知识的过程中,我们通常需要一个包含漏洞的测试环境来进行训练。而在非授权情况下,对于网站进行渗透测试攻击,是触及法律法规的,所以我们常常需要自己搭建一个漏洞靶场,避免直接对公网非授权目标进行试。漏洞靶场,不仅可......
  • 每日速记10道java面试题05
    其他面试题:每日速记10道java面试题01-CSDN博客每日速记10道java面试题02-CSDN博客每日速记10道java面试题03-CSDN博客每日速记10道java面试题04-CSDN博客目录1.请你说说java中hashmap的原理2.HashMap的put(key,value)和get(key)过程3.在使用hashmap时,有哪些提升性能......
  • Type definition error: [array type, component type: [simple type, class java.lan
     详细报错信息:Typedefinitionerror:[arraytype,componenttype:[simpletype,classjava.lang.String]];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannotconstructinstanceof`java.lang.String[]`:noString-argu......
  • Three.js入门-常见几何体
    这章节,我们将介绍Three.js中常见的几何体(Geometry),包括立方体、球体、圆柱体、平面、圆环、圆锥体等。几何体是构建3D模型的基础元素,通过不同的几何体可以创建出各种形状的物体。在Three.js中,几何体是由顶点、面、法线等数据组成的,通过材质(Material)的渲染,可以将几何体显示在......
  • 云计算之elastaicsearch logstach kibana面试题
    1.ELK是什么?ELK其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写Elasticsearch:负责日志检索和储存Logstash:负责日志的收集和分析、处理Kibana:负责日志的可视化这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名下,故被简称为ELK......
  • 0day圣乔E*P系统NamedParameterSingleRowQueryConvertor.queryForString.dwr存在SQL注
         0x01产品概述    圣乔E*P系统NamedParameterSingleRowQueryConvertor.queryForString.dwr存在SQL注入漏洞 通用描述管理和发布于一体的智能化平台,广泛应用于新闻、媒体和各类内容创作机构。该平台支持多终端、多渠道的内容分发,具备素材管理、编辑加工、智......
  • Temu账号无法注册的常见原因
    Temu作为势头强劲的跨境电商平台,在海外有着数量可观的消费者群体。而对于一些用户来说,在尝试注册Temu账号时可能会遇到各种问题,导致无法顺利完成注册。那么,为什么会出现这些注册问题?我们又该如何解决这些问题呢?本文将详细探讨这些问题及其解决方案。一、Temu平台简介Temu是由......