String补充
String类不可变和可变字符序列区别_字符串比较

String类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。也就是指对象内部成员变量的值无法再改变,
public class TestString{
public static void main(String []args){
String str = "aabbcc";
String str2 = str.substring(2,5);
System.out.println(str);
System.out.println(str2);
}
}
public class TestString{
public static void main(String []args){
String str1 = "hello" + " java";
String str2 = "hello java";
System.out.println(str1 == str2);
String str3 = "hello";
String str4 = " java";
String str5 = str3 + str4;
System.out.println(str2 == str5);
System.out.println(str2.equals(str5));
}
}
编译器在这里3,4位置做了优化,直接在编译的时候将字符串"hello" 和 " java"进行了拼接,相当于str1 = "hello java";而str2 = "hello java";所以两者拼接后是同一个对象,所以打印出true。而str3 , str4在10的位置编译的时候不知道变量中存储的是什么,所以没办法在编译的时候优化,
在此我建议大家在做字符串比较的时候,建议使用.equals()不要使用 “==”。
String补充的更多相关文章
- Flex入门(三)——微架构之Cairngorm
大家都知道我们在开发后台的时候,都会使用MVC,三层等分层架构,使后台代码达到职责更为分明单一,高内聚低耦合,比如,Dao层仅仅是进行和数据库打交道,负责处理数据:Service(B层)仅仅是进行逻辑 ...
- SQLite中7(8)形参的query语句的用法
SQLite中7(8)形参的query语句的用法 我们先来看看这种7形参的query语句的形参列表: public Cursor query(String table, String[] column ...
- Android——ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap
ArrayList .LinkList.List 区别 & 迭代器iterator的使用 & HashMap.Hashtable.LinkedHashMap.TreeMap 一.几个 ...
- 【JAVA语法】01Java-变量与数据类型
数据类型初阶 基本数据类型的包装类 整数类型&浮点类型&字符类型 大小类型转换 通过Scanner从控制台获取数据 变量相关基础算法 Java的错误类型 字符串String 补充-Pa ...
- c++ stl在acm的入门及使用
stl的全称为Standard Template Library,即为标准模板库,它主要依赖于模板,而不是对象,所以你需要对这个模板进行实例化,选择你要使用的类型.我们用的都是一些简单的容器吧 这里可 ...
- C#中使用Dictionary实现Map数据结构——VC编程网
转载自: http://blog.51cto.com/psnx168 在VC中使用过CMap以及在Java中使用过Map的朋友应该很熟悉,使用Map可以方便实现基于键值对数据的处理,在C#中,你就需要 ...
- Effective.Java第23-33条(泛型相关)
23. 类结构层次优于标签类 有时你会碰到一个类,它的实例有一个或多个风格,并且包含一个tag属性表示实例的风格.例如,如下面的类表示一个圆或者矩形: public class Figure { / ...
- 这 100 道 Python 题,拿去刷!!!
2020年,学 Python 还有价值吗? 根据 2020 年 2 月的 TIOBE 编程语言排行榜显示,Python仍然稳居第三位. 此排行榜排名基于互联网上有经验的程序员. 课程和第三方厂商的数量 ...
- String "+" 的补充说明---行粒度
String 中“+” 的操作的补充说明 在使用“+”的时候,会创建一个StringBuilder对象,然后invokevirtual append()操作 “+”操作创建StringBuilder的 ...
随机推荐
- git - 1.基础
配置 C:\Users\Administrator λ git config --global user.name 'tangsansan' C:\Users\Administrator λ git ...
- TweenMax.js
适用于移动端和现代互联网的超高性能专业级动画插件Tweenmax是GreenSock 动画平台的核心,配合其他插件 可动画CSS属性.滤镜效果. 颜色. 声音. 色彩. 帧. 饱和度. 对比度. 色调 ...
- .Net Core Web/Console 下使用Nlog
.Net Core Console 下使用Nlog 官方介绍: https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-C ...
- 字符串正则匹配(递归/DP)
Wildcard-Matching & Regular Expression Matching Wildcard-Matching中?匹配任意一个字符,*匹配任意长度字符串包括空字符串 方法 ...
- 快速从一个空虚拟机,空idea打通提交spark
https://www.cnblogs.com/xxbbtt/p/8143593.html #!/bin/bash # Install Spark on CentOS 7 yum install ja ...
- python第六天(元组、字典、集合)
一.元组(tuple) 作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要用来读 定义:与列表类型相比,只不过把[ ]换成() age=(11,22,33,44,55)prin ...
- Shell编程-控制结构 | 基础篇
if-then-else分支结构 if-then-else是一种基于条件测试结果的流程控制结构.如果测试结果为真,则执行控制结构中相应的命令列表:否则将进行另外一个条件测试或者退出该控制结构. if- ...
- python之socketserver实现并发
python之socketserver实现并发 服务端 import socketserver #socketserver模块是用来实现并发 # 我们自己的类里一定要继承socketserver.Ba ...
- 字节跳动19春招研发第一次在线笔试-A卷
结果:凉. 说明 此博客仅为笔试记录所用,如涉及版权或保密问题,请联系我及时删除. 联系方式:georgehu716@qq.com 1. 找零 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C ...
- native的详细用法
目录 1.JNI:Java Native Interface 3.用C语言编写程序本地方法 一.编写带有 native 声明的方法的java类 二.使用 javac 命令编译所编写的java类,生成. ...