java String 是不可改变的类型。

String a = "hello2";
String d = "hello";
final String b = "hello";
String c = b + "2";// final相当于常量,编译阶段直接加入常量池

String cc = “hello”+“2”; 类似于 final修饰的,在编译期间,会自动优化处理为:hello2 并加入常量池,所以和a比较相等,和e比较不等
String e = d + "2";

System.out.println((a == c));// true 
System.out.println((a == e));//false
System.out.println((e == c));//false

//e.intern()方法会检查e是否在常量池中,如果不在则将e所指向的对象添加到字符串常量池中,并返回指向常量池中对象的引用

e=e.intern();//e 是通过+ new出来的 在堆中,不在常量池中,所以加入常量池后,比较相等

System.out.println((a == c));// true 
System.out.println((a == e));//true
System.out.println((e == c));//true

String s=“a”+“b”+“c”;创建几个对象?   因为“+”号编译器会自动优化,所以只创建一个对象“abc” 并存在JVM常量区中

以上使用equal都是相等的

java String final + equal == 区别的更多相关文章

  1. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  2. java基础知识回顾之---java String final类普通方法的应用之“按照字节截取字符串”

    /*需求:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符.但对应的字节数不同,一个汉字占两个字节.定义一个方法,按照最大的字节数来取子串.如:对于“ab你好”,如果取三 ...

  3. java基础知识回顾之---java String final类 容易混淆的java String常量池内存分析

    /** *   栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放  在常量池中). 堆(heap):存 ...

  4. java中“==”和equal区别

    8个月以后就要正式找工作啦,我觉得现在是时候花时间好好深入研究一下以前比较混肴的知识.这就当作是自我成长的第一步! 对于String中的“equal方法”和“==”一直有点混肴,今天重新看了一下他们两 ...

  5. java中 == 与 equal区别 转

    java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==) ...

  6. java基础知识回顾之---java String final类普通方法的应用之“模拟字符串Trim方法”

    /* * 4,模拟一个trim功能一致的方法.去除字符串两端的空白  * 思路: * 1,定义两个变量. * 一个变量作为从头开始判断字符串空格的角标.不断++. * 一个变量作为从尾开始判断字符串空 ...

  7. java基础知识回顾之---java String final类普通方法的应用之“两个字符串中最大相同的子串”

    /* * 3,两个字符串中最大相同的子串. * "qwerabcdtyuiop" * "xcabcdvbn" *  * 思路: * 1,既然取得是最大子串,先看 ...

  8. java基础知识回顾之---java String final类普通方法的应用之“子串在整串中出现的次数”

    /* * 2 一个子串在整串中出现的次数. * "loveerlovetyloveuiloveoplove" * 思路: * 1,要找的子串是否存在,如果存在获取其出现的位置.这个 ...

  9. java基础知识回顾之---java String final类普通方法的应用之字符串数组排序

    /* * 1,给定一个字符串数组.按照字典顺序进行从小到大的排序. * {"nba","abc","cba","zz", ...

随机推荐

  1. 8148 8168 中移植live55 出现except rtsp 中途莫名的断流

    在解码中,接了浙江宇视的ipc相机,解码一般就挂了,vlc 也是中途断流.费解? vlc异常信息如下: packetizer_h264 warning: waiting for SPS/PPS pac ...

  2. iOS 生命周期 -init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear 区别和用途

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...

  3. Android Studio报Error:Execution failed for task ':Companion:preDexDebug'.

    错误例如以下: Error:Execution failed for task ':Companion:preDexDebug'. > com.android.ide.common.proces ...

  4. [转]为 windows cmd 设置代理

    为 windows cmd 设置代理 转自:http://blog.csdn.net/lovelyelfpop/article/details/69586366 通过cmd命令行执行某些命令,如果这些 ...

  5. jvm的字符串池

    1 jvm中是有专门的字符串池的内存空间的,这块空间和栈和堆不同. 2 String s = "string constant"; 这个时候,如果string pool中没有&qu ...

  6. 打广告:B站广告

    https://www.bilibili.com/video/av52230444/ https://www.bilibili.com/video/av52230444/ https://www.bi ...

  7. 超轻量级、高性能C日志库--EasyLogger

    [ 声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:armink.ztl@gmail.com] EasyLogger 1. 介绍 EasyLogger 是一款超轻量级(ROM<1.6K, ...

  8. centos7.0下删除yum和python之后恢复的办法

    centos 7如果卸载了yum和python之后恢复的办法(该方法已经测试). 下载 地址 http://mirrors.163.com/centos/7/os/x86_64/Packages/ 下 ...

  9. wechat JS-SKD (getLoaction) 定位显示百度map

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  10. ABAP下载服务器文件到本机

    转自http://blog.sina.com.cn/s/blog_701594f40100l8ml.html ABAP:下载服务器文件到本机 对服务器的文件进行读写操作,SAP提供了OPEN DATA ...