String对象不可改变的特性

1. 声明String对象

[java] view plain copy

  1. String s = "abcd";

图1

2. 将一个字符串变量赋值给另一个String变量

[java] view plain copy

  1. String s2 = s;

图2

3. 字符串连接

[java] view plain copy

  1. s = s.concat("ef");
  2. // s = s + "ef"; // 等价

图3

总结:
一个String对象在 堆内存 中创建以后, 就不能被改变了. 请注意String对象的所有方法都不会改变其本身,而是会返回一个新的String对象.
如果我们需要可改变的字符串,则需要使用 StringBuffer 或者 StringBuilder. 否则每次创建一个新String对象的话,就会造成大量的内存浪费,需要耗时来执行垃圾回收。可以参考:
StringBuilder的使用示例

时间: 2024-10-29 02:58:13

String对象不可改变的特性的相关文章

【ThinkingInC++】22、函数必须用它特有的方式去改变外部的string对象

/** * 功能:创建两个函数,一个接受一个string*参数,另外一个接受一个string&参数.每个 * 函数必须用它特有的方式去改变外部的string对象.在main()中,创建和初始化一个 * string对象,输出它,然后传给每个函数,输出结果. * 时间:2014年8月16日12:24:50 * 作者:cutter_point */ #include<iostream> #include<cstdlib> #include<cstring> usin

string 对象及其操作

标准库类型string 标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件.作为标准库的一部分,string定义在命名空间std中.接下来的示例都假定了已包含了下述代码: #include <string> using std::string; 本节描述最常用的string操作. 定义和初始化string对象 如何初始化类的对象是由类本身决定的.一个类可以定义很多种初始化对象的方式,只不过这些方式之间必须有所区别:或者是初始值的数量有所区别,或者是初

Java学习之String对象为什么是不可变的

转自:http://www.2cto.com/kf/201401/272974.html,感谢作者的总结 什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 区分对象和对象的引用 对于Java初学者, 对

原生JS:String对象详解

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); String对象 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) JavaScript中的 String 类型用于表示文本型的数据. 它是由无符号整数

String s=new String("xyz");创建几个String对象的问题

首先让我们了解几个概念: 栈 :由JVM分配区域,用于保存线程执行的动作和数据引用. 堆 :由JVM分配的,用于存储对象等数据的区域. 常量池constant pool :在堆中分配出来的一块存储区域,用于存储显式 的String,float或者integer.这是一个特殊的共享区域,可以在内存中共享的不经常改变的东西,都可以放在这里. 进入正题: String a = "abc";①String b = "abc";② 使用String a = "abc

实习第二天-String对象的不可变性-未解决

public class Reverse { public static void main(String[] args) { String c1=new String("abc"); String c2=new String("abc"); String c3=c1; System.out.println("c1==c2:"+ (c1==c2)); //c1==c2:false 第一个输出语句c1==c2很好理解,因为c1和c2都是用new 创

Java基础知识强化101:Java 中的 String对象真的不可变吗 ?

1. 什么是不可变对象?       众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的. 不能改变状态的意思是:不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 2. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: 1 String s =

Java String对象的经典问题(转)

public class StringTest { public static void main(String[] args) { String strA = "abc"; String strB = "abc"; String strC = new String("abc"); System.out.println(strA == strB);//true System.out.println(strA == "abc")

JavaScript String对象

String 字符串对象 1. 介绍 String 对象,对字符串进行操作,如:截取一段子串.查找字符串/字符.转换大小写等等. 2. 定义方式 2.1 new String(Value) 构造函数:返回一个内容为Value的String对象 参数: ①value {String} :字符串 返回值: {String对象} 返回一个内容为Value的String对象 示例: var demoStr = new String('abc'); console.log(typeof demoStr);