让我们来看两种赋值方式:
第一种:直接赋值

String name1 = "Tom";
String name2 = "Tom";
System.out.println(name1 == name2);//用来判断name1和name2的地址是否相同,相同为true,不同为false
//此时打印的结果就是:true

之所以会出现这种结果就是:
– 当代码执行到第一行时,会在Java内存区中的常量池里开辟一个空间来存储“Tom”,并有一个地址(假如是0x123),将该地址存储到“”里面;
– 当执行到第二行时,会首先在常量池中查找是否有一个“Tom"的字符串,当发现有一个时,就会直接将该字符串(即原有的“Tom”)的地址存储到“”中的name2里面;若发现没有,则在常量池中新创建一个空间并将空间地址传给变量。这种赋值方法称为直接赋值

让我们用一个图来形象的表示一下:

第二种:创建对象赋值

String name3 = new String("Lucy");
String name4 = new String("Lucy");
System.out.println(name1 == name2);
//此时打印的结果就是:false

因为通过上面这种方法来赋值,则每创建一个对象,都会在“堆”中创建一个新的空间,并将地址赋值给变量

String创建方式及其区别(快速了解)相关推荐

  1. 线程的4种创建方式及区别

    四种基本实现方式 1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 4.创建线程池 实现Runnable和实现Callable接口的方式基本相同,不过前者线程执行体r ...

  2. 多线程 三种创建方式及区别

    线程概念 进程:启动一个程序就是一个进程. 线程:在一个程序里面,多个事情同步进行,这个事情是由线程来完成 不使用多线程的效果 如果我们不使用线程,会怎么样呢?看下面代码 新建立一个hero类包含英雄 ...

  3. Java数组—三种创建方式与区别

    Java创建数组有三种方式 1. 第一种方式 int arr [ ]  = new int [5] ; 属于动态创建,声明并创建内存空间,等待赋值. //创建数组的第一种方式 //属于动态创建,声明并 ...

  4. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  5. go面向对象编程:结构体struct详解、结构体实例的创建方式、结构体之间的转换(type取别名的使用)、方法的注意事项及与函数的区别

    入门示例 package main import "fmt" //定义老师结构体,将老师中的各个属性 统一放入结构体中管理: type Teacher struct{//变量名字大 ...

  6. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  7. String实例化两种方式的区别

    如上图所示,第一种直接赋值的是str1地址直接指向常量池中的"abc",假如"abc"的地址值为1234,那么str1所存的地址值就是1234.而注意str2存 ...

  8. Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

    创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等. 经常面试会问到继承Thread类和实现Runnable的区别,然 ...

  9. Java多线程学习(二)---线程创建方式

    线程创建方式 摘要: 1. 通过继承Thread类来创建并启动多线程的方式 2. 通过实现Runnable接口来创建并启动线程的方式 3. 通过实现Callable接口来创建并启动线程的方式 4. 总 ...

最新文章

  1. 浅谈Android四大组件之Service
  2. 漫话:如何给女朋友解释什么是云计算?
  3. php文件怎么阅读器,Vue文件阅读器组件FileReader API
  4. pgpool-II 高可用搭建
  5. 【转】那些令人喷饭的注释
  6. 万年历Java有界面_java万年历界面版
  7. 计算机辅助设计课程设计评分标准,CAD考试规则评分标准.doc
  8. android6.0彩蛋小游戏,安卓系统暗藏彩蛋?隐藏小游戏让你玩到停不下来
  9. Python的pandas安装超级详细
  10. 稳定同位素(stable isotope)标记氨基酸,聚氨基酸,PEI,聚合物,抑制剂,离子液体,石墨烯,黑磷,透明质酸,荧光材料,脂质体复合物
  11. 请问大家,有没有法学相关的毕业论文选题 ?
  12. 小程序 VS APP优缺点
  13. ARPG游戏中怪物AI实现
  14. 中关村e谷:产业服务终靠一颗赤诚之心
  15. 【一起读源码】1. Java 中元组 Tuple
  16. java锁的种类以及辨析(一):自旋锁
  17. MacbookPro使用小记
  18. js格式化时间(YYYY-MM-DD)
  19. 液晶面板里面有些什么配件_液晶模组和液晶面板有什么区别?
  20. 新品周刊 | 可口可乐与时尚包袋品牌Kipling推出联名系列;阿迪达斯推出电竞灵感跑鞋...

热门文章

  1. putty 串口登录开发板
  2. C语言中整型在计算机中的存储
  3. SAP EWM 代码实现Transportation Unit(TU)的创建
  4. PHP面试内容 整理搜集 PHP面试涉及技术 一文回顾全部 主要含PHP面试命令列表 方法列表...
  5. [bzoj1064][Noi2008]假面舞会
  6. Python函数中的参数(一)
  7. [转]c# 泛类型(泛型) 以及强类型与弱类型的 理解及优化
  8. Android -- DrawerLayout
  9. Git使用笔记(一)
  10. 从空间数据库中删除所有拓扑对象