Java中关于String的两种赋值方式

 更新时间:2024年01月16日 14:36:00   作者:.二丫.  
这篇文章主要介绍了Java中关于String的两种赋值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

String的两种赋值方式

一、直接赋值

二、new对象赋值

String类比较是否相等

  • 1.== 比较的是栈内存中的值 而基本数类型 在栈内存储的就是本身的值 所以基本数据类型比较就用 ==
  • 2.引用数据类型在栈内存储的是地址值,所以==比较引用数 据类型就相当于比较两个对象的地址值,而只要是new出来的 地址值肯定不相同。所以比较地址值无意义。

我们应该比较引用数据类型堆内存中的真正内容所以 字符串比较堆内存中的具体值需要用到equasl方法

String两种赋值方式的区别

  • 1.如果是new对象赋值那么直接开辟空间
  • 2.==直接(字面量)赋值涉及到共享涉及模式 系统默认处理 第一个赋值的会开辟空间,随后每个赋值的如果有和这个相等的则指向同一块内存
package Object;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		/*
		 * String s1 = "hello world";
		 * String s2 = new String("hello world");
		 *
		 * System.out.println(s1 == s2);
		 * 结果为:false
		 */
		
		/*
		 * String s1 = new String("hello"); 
		 * String s2 = new String("hello");
		 * 
		 * System.out.println(s1==s2); 
		 * 结果为:false
		 * 
		 * //比较的是堆栈中的内容
		 * boolean f = s1.equals(s2); 
		 * System.out.println(f); 
		 * 结果为:true
		 */

		/*
		 * String s1 ="world";
		 * String s2 ="world";
		 * 
		 * System.out.println(s1==s2);
		 * 结果为:true
		 * 
		 * 
		 */

	}

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • netty中的ByteBuf源码详解

    netty中的ByteBuf源码详解

    这篇文章主要介绍了netty中的ByteBuf源码详解,ByteBuf,顾名思义,就是字节缓冲区,是Netty中非常重要的一个组件,某些场景下性能不是太好,netty开发团队重新设计了ByteBuf用以替代原生ByteBuffer,需要的朋友可以参考下
    2023-11-11
  • 一篇文章带你入门Java接口

    一篇文章带你入门Java接口

    这篇文章主要介绍了JAVA中接口的定义和接口的实现,文中讲解非常细致,配合代码更好的帮大家学习参考,感兴趣的朋友可以了解下
    2021-08-08
  • 取消idea双击shift键时出现的全局搜索的问题分析

    取消idea双击shift键时出现的全局搜索的问题分析

    这篇文章主要介绍了取消idea双击shift键时出现的全局搜索的问题分析,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • 解决lambda表达式内出现异常无法throw抛出的问题

    解决lambda表达式内出现异常无法throw抛出的问题

    这篇文章主要介绍了lambda表达式内出现异常无法throw抛出的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot多环境配置及配置文件分类实例详解

    SpringBoot多环境配置及配置文件分类实例详解

    这篇文章主要介绍了SpringBoot多环境配置及配置文件分类,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 200行Java代码如何实现依赖注入框架详解

    200行Java代码如何实现依赖注入框架详解

    依赖注入对大家来说应该都不陌生,下面这篇文章主要给大家介绍了关于利用200行Java代码如何实现依赖注入框架的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-05-05
  • java编程FinalReference与Finalizer原理示例详解

    java编程FinalReference与Finalizer原理示例详解

    这篇文章主要为大家介绍了java编程FinalReference与Finalizer的核心原理以及示例源码的分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • Java8 将一个List<T>转为Map<String,T>的操作

    Java8 将一个List<T>转为Map<String,T>的操作

    这篇文章主要介绍了Java8 将一个List<T>转为Map<String, T>的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java Iterator.remove()实例方法分析

    java Iterator.remove()实例方法分析

    在本篇文章里小编给大家整理了一篇关于java Iterator.remove()实例方法分析,有兴趣的朋友们跟着学习下。
    2021-01-01
  • 如何把char数组转换成String

    如何把char数组转换成String

    这篇文章主要介绍了如何把char数组转换成String问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论