java ==号比较String字符串的地址

==号比较String字符串
java ==号比较
java ==号比较String
java ==号比较


/*** 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));}
}

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

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

相关文章

javaweb jsp页面无法解析${message}

我遇到的问题是jsp 页面无法解析/${ } 标签&#xff0c; 后台和页面都没有报错。 原因时web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001…

vue element-ui 无法渲染表格数据解决

页面无报错 ajax请求数据。数据正常到达。 但是无法渲染。 换成 axios.get("/user/findAll").then(resp > {this.tableData resp.data;});问题解决。 虽然不知道为啥。但是问题解决了。哈哈&#xff01;

java数组及Arrays创建一个int 类型数组 数组元素由键盘录入,每次打印插入排序的结果(数组扩容,数组排序,键盘录入)

author silence丶你的名字 java数组及Arrays创建一个int 类型数组 数组元素由键盘录入&#xff0c;每次打印插入排序的结果 初始数组元素1 for死循环 获取用户录入的数据&#xff0c;如果为9527 程序结束&#xff0c;否则拷贝一个新数组&#xff0c;进行排序 避免原始数组被排…

三个球A,B,C大小形状相同,且其中有一个球与其他球的重量不同,要求找出这个不一样的球

import java.util.Arrays; import java.util.Scanner;/*** author silence丶黎明* 三个球A,B,C大小形状相同&#xff0c;且其中有一个球与其他球的重量不同&#xff0c;要求找出这个不一样的球* 输入格式&#xff1a;* 输入在一行中给出3个正整数 顺序对应球 A,B,C 的重量* 输出…

编写程序,随机产生20个0到1之间的数,将这20个数写入文本文件中,要求每行5个数

import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; import java.util.Random;/*** author silence丶黎明* 编写程序,随机产生20个0到1之间的数,将这20个数写入文本文件中&#xff0c;要…

调用SMS腾讯云短信验证码API的几个坑,及详细使用流程

前言 首先说下&#xff0c;几个坑已解决。准备说一下。使用的一些步骤 因为项目有一个短信验证码登录注册的&#xff0c;首先注册的是阿里的。但是审核没有审核通过&#xff0c;所以有注册了腾讯的 本来向截图一下阿里的&#xff0c;结果登录出错了&#xff0c;这里就不说了。…

腾讯云COS对象存储图片文件API的详细步骤过程

首先创建一个桶。相当于你存储图片的容器。我这里是存储图片。 我选则是共有读&#xff0c;私有写。因为不选择共有读的话&#xff0c;以后别的地方没办法访问 注意&#xff1a; 公有读权限可以通过匿名身份直接读取您存储桶中的数据&#xff0c;存在一定的安全风险&#xff0c…

java PageUtil + stream 手动计算List 分页

交代一下前言&#xff0c;数据是redis中查询 140,193,88,117 格式大概是这样。 需要切割为long类型的list数组。需要手动计算分页&#xff0c;去mongodb中查询数据。这里我用的手动计算分页的是 hutool 工具包 import cn.hutool.core.util.PageUtil; 里面挺多实用的工具 <…

Redis 缓存 Key

/*** controller 缓存key 自定义前缀 url param token* 生成redis key&#xff1a;SERVER_CACHE_DATA rul 参数&#xff08;param&#xff09; token** param request HttpServletRequest* return createRedisKey*/public static String createRedisKey(HttpServletReques…

UserThreadLocal 用户线程Token拦截验证

注册拦截器 package com.tanhua.server.config;import com.tanhua.server.interceptor.RedisCacheInterceptor; import com.tanhua.server.interceptor.UserTokenInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.co…

jsonwebtoken jwt token 简单加密

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency> //生成tokenMap<String, Object> claims new HashMap<String, Object>();claims.put(&q…

RelativeDateFormat时间计算工具类

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;/*** 时间计算工具类*/ public class RelativeDateFormat {private static final long ONE_MINUTE 60000L;private static final long ONE_HOUR 3600000L;private static final …

随机名字生成小demo源码

根据提供的文字随机生成指定字符的名称&#xff0c;挺简单的&#xff0c;一个小demo吧 源字符 package com.example.demo;import cn.hutool.core.util.RandomUtil;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.F…

silence丶你的名字

/*** 自媒体文章自动审核服务** author silence丶你的名字* createTime 2021-08-22-17:57*/ Service Log4j2 public class WemediaNewsAutoScanServiceImpl implements WemediaNewsAutoScanService {/*** fastServer 地址*/Value("${fdfs.url}")private String fileS…

java.security.invalidkeyexception: illegal key size or default parameters

解决原文摘自&#xff1a;Java实现AES加密,异常java.security.InvalidKeyException: Illegal key size 的解决_走过的足迹-CSDN博客Java实现AES加密&#xff0c;抛出异常如下&#xff1a;java.security.InvalidKeyException: Illegal key size代码参考 http://my.oschina.net/J…

Caused by: org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use 端口占用

Caused by: org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use 解决引用&#xff1a; 在dos下&#xff0c;输入 netstat -ano|findstr 8080 //说明&#xff1a;查看占用8080端口的进程 显示占用端口的进程 taskkill /pid 9476 …

Linux+Docker+腾讯云/阿里云服务器 安装MySQL相关命令整理

注&#xff1a;主要是收集整理一些常用的命令 主要参考&#xff1a;狂神说docker以及其他的一些命令收集。主要是因为平常安装的mysql外部无法访问 MYSQL的创建用户&#xff0c;授权用户&#xff0c;删除用户&#xff0c;查看用户_ZJE-CSDN博客_mysql 显示用户1.查看用户2.创…

list.size为1但是内容为null

又是一件离奇的事被我遇到了&#xff0c;哈哈。测试环境暴露出来的问题。还奇怪了好一会儿。然后查了一下资料。原来很多人都遇到了。大概原因就是 sql语句使用了计算函数sum(),但是where条件出来的数据为空&#xff0c;最后返回到java 映射进list了。 造成了list.size为1但是内…

遍历这些字符串,如果字符串没有包含数字的,就将字符串中的小写字母转成大写字母并打印字符串

package cn.silence;public class StrDemo3 {/*** 有如下字符串:"12ab","java","cd","Server78"* //遍历这些字符串&#xff0c;如果字符串没有包含数字的&#xff0c;就将字符串中的小写字母转成大写字母并打印字符串*/public static…