首先给大家看一段代码

package javaapptest;

public class JavaAppTest {

    public static void main(String[] args) {

        String str1 = "Hello";
String str2 = new String("Hello");
String str3 = str2 ;
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str2==str3); } }

  运行结果为: false

         false

          true

下面给大家说一下为什么前两个比较会为false,我们这里用 “==”符号不会比较字符串的内容 而是比较字符串地址里面的值,下面上一张图给大家看就明白了;

如果把赋值代码改成下面代码

        String str1 = "Hello";
String str2 = "Hello";
String str3 = "Hello"

它会把str1,str2,str3都去指向一个Hello,不会再开辟新的空间

如果要比较字符串里面的内容我们可以使用equals来比较字符串的内容,如下代码

package javaapptest;

public class JavaAppTest {

    public static void main(String[] args) {

        String str1 = "Hello";
String str2 = new String("Hello");
String str3 = str2 ;
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println(str2==str3); } }

  就写到这里了,希望能帮到你。

JAVA中String类的比较的更多相关文章

  1. Java中String类的方法及说明

    String : 字符串类型 一.      String sc_sub = new String(c,3,2);    //      String sb_copy = new String(sb) ...

  2. java中String类学习

    java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...

  3. 在java中String类为什么要设计成final

    在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087

  4. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.      String sc_ ...

  5. 在java中String类为什么要设计成final?

    大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工 ...

  6. Java中String类为什么被设计为final?

    Java中String类为什么被设计为final   首先,String是引用类型,也就是每个字符串都是一个String实例.通过源码可以看到String底层维护了一个byte数组:private f ...

  7. java中String类、StringBuilder类和StringBuffer类详解

    本位转载自http://www.cnblogs.com/dolphin0520/p/3778589.html  版权声明如下: 作者:海子 出处:http://www.cnblogs.com/dolp ...

  8. java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  9. java中String类为什么不可变?

    在面试中经常遇到这样的问题:1.什么是不可变对象.不可变对象有什么好处.在什么情景下使用它,或者更具体一点,java的String类为什么要设置成不可变类型? 1.不可变对象,顾名思义就是创建后的对象 ...

  10. 在Java中String类为什么要设计成final?String真的不可变吗?其他基本类型的包装类也是不可变的吗?

    最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下. 1.String的不可变String类被final修饰,是不可继承和 ...

随机推荐

  1. c语言中指针和多维数组的理解

    1.复习指针和数组之间的特殊关系:不带方括号的数组名是一个指针,指向该数组的第一个元素. 2.多维数组: ][];//声明一个二维数组作为举例 a.理解方式1:可以将数组看成行和列构成,即理解成2行4 ...

  2. Java架构师笔记-你必须掌握的 21 个 Java 核心技术!(干货)

    闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘复盘.而写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Jav ...

  3. MySql索引基本

    1.什么是索引 索引用于快速找出在某个列中有一特定值的行.如果不使用索引,需要遍历整张表,表越大查询耗时越大: MySQL中的索引的存储类型有两种:BTREE.HASH.具体实现机制参照另一篇博客: ...

  4. CF 1130C Connect

    链接:https://codeforces.com/contest/1130/problem/C C. Connect time limit per test 1 second memory limi ...

  5. sd卡分区步骤

    1.将sd卡通过优盘插在电脑上 2.fdisk  /dev/sdb 3.   m   //帮助 d    //删除分区 4.  n   //添加新的分区. p  //默认主分区 回车 +400M   ...

  6. USB Reverse Tether (a dirty solution)

    Tether your android phone to your PC using USB cable could share your 3g Internet connection with PC ...

  7. 【shell】概述

    功能简介 批量自动初始化系统(update,软件安装,时区设置,安全策略...) 批量自动部署软件(LAMP,LNMP,Nginx,LVS,Tomcat) 管理应用程序(KVM,集群管理扩容,MySQ ...

  8. Nginx_安全2

    Nginx与安全有关的配置 隐藏版本号 http {    server_tokens off;} 经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然 ...

  9. 二十七、rsync同步工具

    1.什么是rsync? Rsync是一款开源的.快速的,多功能的,可实现全量及增量的本地或者远程数据同步备份的优秀工具.windows和linux都可以. 官网:http:www.samba.org/ ...

  10. Servlet&JSP复习笔记 04

    1.状态管理 因为HTTP协议是无状态协议,但很多时候需要将客户端和服务端的多次请求当做一个来对待.将多次交互中设计的数据进行保存. 状态:数据 管理:对数据的维护 2.Cookie 客户端向服务器发 ...