java ==号比较String字符串的地址
/*** java ==号比较String字符串的地址* <p>* String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。* 字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。* 因为String对象是不可变的,它们可以被共享** @author silence* @date 2021/6/18*/
public class StringTest {public static void main(String[] args) {String a = "hello";String b = "hell" + "o";String g = "hell";String c = g + "o";String d = new String("hello");final String e = "hell";String f = e + "o";System.out.println("a:" + a);System.out.println("b:" + b);System.out.println("c:" + c);System.out.println("d:" + d);System.out.println("f:" + f + "\n");//a:为字符常量池地址a b:字符常量"hell" + "o" 相加 java会进行优化为 hello等于 b 进行存储//此时字符常量池中已经存储了字符串“hello” 所以b会直接引用常量池的地址值。所以a 和 b 地址值相等System.out.println("a == b " + (a == b));//a:为字符常量池地址a c=变量g("hell") + 字符常量"o" 字符串变量相加 java底层会使用 StringBuilder//或StringBuffer 的append()方法拼接,再调用tostring 存储在堆中 所以和字符常量池a 地址不等System.out.println("a == c " + (a == c));//a:为字符常量池地址a d:new String("hello"); new 关键字每次会在堆中开辟一个新的内存空间存储// 所以d存储的地址是一个新的内存空间,不在字符常量池中。 所以地址不等System.out.println("a == d " + (a == d));//a:为字符常量池地址a f: final String e = "hell" + "o" 因为变量e 使用final修饰所以//是常量不是变量 所以不会调用StringBuilder 拼接。e + a= "hell" + "o"java会优化为hello//此时 f 会引用 a在字符常量池的地址 所以a 和 f 的地址相等System.out.println("a == f " + (a == f));}
}
java ==号比较String字符串的地址相关推荐
- 深入理解Java中的String(原地址https://www.cnblogs.com/xiaoxi/p/6036701.html)
深入理解Java中的String 一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class Stringimplem ...
- 第19天学习Java的笔记-String字符串
29天! 字符串 1.字符串概述和特点.构造方法和直接创建 package Demo1901;/* * java.lang.String类代表字符串. * API当中说,Java程序中的所有字符串字面 ...
- 【java学习】String字符串
1,概念 1)String 不可变 不可变类:final,不可被继承. public final class String implements java.io.Serializable, Compa ...
- java 补0_Java String字符串补0或空格
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. package cn.com.songjy; import java.text.Numbe ...
- Java中的String字符串及其常用方法
字符串(String) 文章目录 字符串(String) 直接定义字符串 常用方法 字符串长度 toLowerCase() & toUpperCase()方法 trim()方法去除空格 判空 ...
- java 如何将String字符串中的十六进制转换为汉字
偶然在写代码中,遇到String字符串里面存在非常多的16进制数据,如下图,需要将红框中的十六进制数据转换为对应的汉字,方便阅读. 采用的逻辑思路为,正则表达式匹配出所有的十六进制数据,然后进行转换为 ...
- Java中的String字符串
String类是字符串常量类,该类的对象创建后不能修改.要知道:其实String底层就是char数组.而相对而言的StringBuffer/StringBuilder表示的是一个内容可变的字符序列. ...
- java笔试题String字符串单词逆序how are you变成are you how
今儿去面java,笔试上来六个编程大题也是醉了,两页纸全是英文也是棒棒哒...好多字符串方面的,其实还是挺简单的,但是有些方法感觉有点忘了......总之看面试官看我代码的表情我也是醉了.... 大概 ...
- java字符串取反_Java探索之string字符串的应用代码示例
String类中提供了丰富的用于操作字符串的方法. int indexOf(String str) 该方法用于返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1. 重载的方法 ...
最新文章
- html里的swal添加倒计时,使用甜蜜警报插件的setInterval函数倒计时
- Yii2.0 数据库更新update
- Python学习---Django的request扩展[获取用户设备信息]
- shell基础09 gawk程序(上)
- 【数据结构与算法】之深入解析“路径总和III”的求解思路与算法示例
- idea创建springboot项目+mybatis_Spring Boot + MyBatis 多模块项目搭建教程
- Zabbix监控——proxy 分布式监控配置
- Java23种设计模式之单例模式
- python的panda是什么库_Python的Pandas库简述
- php模拟登录京东,京东jos 获取授权及php-sdk的使用示例
- 从主机名谈Hadoop集群管理
- TensorFlow 辨异 —— tf.add(a, b) 与 a+b(tf.assign 与 =)、tf.nn.bias_add 与 tf.add
- 用于物联网数据收集和传输的边缘网络密钥
- 解决GetTickCount的问题
- Invest授粉模型问题求助
- PS三种切图方式,干货满满,不看绝对后悔
- 云盘同步本地文件和QQ聊天记录
- 售前的价值在哪里?这个问题不简单
- C语言将raw转为bmp,Raw格式转换为Bmp格式
- python概率分布拟合_使用曲线拟合在Python中拟合对数正态分布
热门文章
- a pycharm 标记多个_每周分享五个 PyCharm 使用技巧(二)
- c语言代码可以python运行吗_c语言如何运行python脚本
- threejs中坐标系转换和实现物体跟随鼠标移动
- gui显示文本动态框
- pthread_cond_wait的spurious wakeup问题
- 在 WinCe 平台读写 ini 文件
- python中的类怎样理解_理解Python数据类:Dataclass fields 的概述(下)
- esp虚拟服务器,esp8266接入云服务器
- 【转】ASP.NET 2.0 - 导航(Navigation)SiteMap导航菜单关系
- 详解CSS的相对定位和绝对定位