`
MegRyan
  • 浏览: 2656 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

又是STRING的问题..

阅读更多
等   级:
  发表于:2007-11-17   11:36:404楼   得分:0  
a       和       b       和c       各是一个对象  
相对于String       s=new       String(   "a   ")+new       String(   "b   ")+new       String(   "c   ");  
a和b相加后ab为一个对象,  
ab+c又是一个对象  
整个过程产生了5个对象  
s指向的就是第5个对象。  
其余4个没有被引用的对象会在内存紧缺的时候被垃圾回收。  

个人理解,如果不对楼下一定改正。  
 
=================================================================================

不知道你有没有看过Effictive   Java,这书是写JDK的一牛人写的,现在跑去GOOGLE了,书中说,在写程序时,建议我们不能这样定义一个String:
Java codeString   s=new   String( "a ")


这样不会产生两个String,当时我也纳闷,原来是这样的:“a”本身已经是一个string了,再new了一次,就产生两个了。
=================================================================================================

对于LZ这个问题,我给你个权威的回答吧:其实编译成.class文件后string的加法是由stringbuilder/stringbuffer来连接的。。。

至于产生几个对象,当然是四个了。JDK不会傻到“a”+“b”也产生一个新对象,SUN那些大牛们难道会不知道PERFORMANCE吗。。。。

实际上,编译后可以会变成这个样子:

Java code
StringBuffer ss = new StringBuffer();
ss.append("a").append("b").append("c");
String s = ss.toString;



不信的话,可以去看下.CLASS文件反编译后看下。


还是那句话,学东西要学精。我也在努力。
分享到:
评论

相关推荐

    android String.xml Excel 相互转换工具

    为了方便管理这些多语言资源,Android使用`String.xml`文件来存储应用中的文本字符串。然而,手动编辑这些XML文件既耗时又容易出错,尤其是在处理大量文本时。这时,就需要借助一些工具进行`String.xml`与Excel之间...

    C#中字符串优化String.Intern、IsInterned详解

    C#中字符串优化String.Intern、IsInterned详解 C#中字符串优化是指在编程过程中对字符串进行优化,以减少内存占用和提高程序运行效率。在C#中,字符串是一种特殊的数据类型,它既是基元类型又是引用类型。在编译和...

    String.playground.zip

    在这个`String.playground`文件中,我们可以探索Swift字符串的一些关键特性和用法。 首先,Swift的`String`类型是结构体,这意味着它是值类型的。当你将一个字符串赋值给新的变量或常量时,会创建一个新的内存副本...

    Object,String类练习.doc

    然而,代码存在问题,因为`Person1`和`Person2`的属性都是静态的,这意味着它们是类级别的共享变量,而非实例级别。因此,这个`equals()`方法不会正确地比较两个对象的属性。正确的做法是将属性改为非静态,并在`...

    android用base64实现文件与string相互转换

    Base64是一种常见的编码方式,它可以把二进制数据转换成ASCII字符串形式,同时又能方便地进行解码还原。本篇文章将详细介绍如何在Android中使用Base64来实现文件与String之间的相互转换。 一、Base64编码原理 Base...

    使用Iterator模式将对象转成String.docx

    【Iterator模式】是一种设计模式,它提供了一种顺序访问聚合对象元素的方式,而又不暴露其底层表示。在Java中,Iterator接口是实现此模式的主要工具,它允许我们遍历任何集合,如ArrayList、LinkedList等,而无需...

    Java中所有有关String的函数.ppt

    这种特性使得String对象在处理文本数据时既安全又高效。 创建String对象主要有四种方式: 1. 空字符串构造器:`new String()` 或 `""`,创建一个不包含任何字符的字符串。 2. 传入已有的字符串常量:`new String(...

    stringstream的应用

    在上面的代码中,我们使用同一个 stringstream 对象实现了 string 到 int 的转换,然后又实现了 bool 到 int 的转换。我们需要在每一次转换之后调用 clear() 成员函数,以便重置 stream 对象。 stringstream 是 C++...

    你必须知道的495个C语言问题(PDF)

    然后又使用一些内存分配技巧使namestr 数组用起 来好像有多个元素。这样合法和可移植吗? . . . . . . . . . . . . 8 2.7 是否有自动比较结构的方法? . . . . . . . . . . . . . . . . . . . . 8 2.8 如何向接受...

    string类型的全部函数

    `string`类型在C++中是一个极其强大的工具,它封装了许多字符串操作,使得处理文本数据变得既简单又高效。掌握`string`类的成员函数,可以极大地提高编程效率和代码的可读性。无论是简单的字符串拼接,还是复杂的...

    Java的String类

    `String`类在Java中扮演着至关重要的角色,其丰富的功能和方法使得处理文本数据变得既方便又高效。理解并熟练掌握`String`类的构造函数和各种操作方法,对于任何Java程序员来说都是必不可少的技能。通过本文的介绍,...

    string_xoring.zip_tool_xor encryption

    - **临时加密**:在需要临时保护数据不被窥探,但又没有高级加密需求的场合。 - **密码学中的组件**:XOR经常作为其他更复杂加密算法的一部分使用,如在流密码中。 **许可证文件“license.txt”**: 这个文件通常...

    java String类的实现

    这个特性使得`String`在处理文本时既安全又高效。 ### 1. `String`类的构造方法 `String`类提供了多种构造方法,允许我们以不同方式创建字符串。例如: - `String()`:创建一个空字符串。 - `String(char[] ...

    java中String类型和int类型比较及相互转换

    在Java编程语言中,数据类型的比较与转换是基础但又至关重要的操作,尤其在处理文本与数字信息时。本文将深入探讨Java中String类型和int类型之间的比较方法以及相互转换的技术,这对于理解和优化代码逻辑、提升程序...

    解析Java中的String对象的数据类型 字符串

    如果在常量池中已经存在相同的Unicode字符串常量,那么String.intern()方法将返回该常量池中的字符串常量的引用,否则,它将在常量池中增加一个新的字符串常量。 例如,String s0="kvill";,String s1=new String(...

    在java switch中使用String作为分支条件

    为了解决这一问题,Java 7引入了一个新特性——支持直接在`switch`语句中使用`String`类型的变量。本文将详细介绍如何在Java中利用`switch`语句与字符串进行条件判断,并提供一种在Java早期版本中通过自定义枚举(`...

    10个Java经典的String面试题

    7. String.trim() 方法去掉的是哪些字符? 答案:trim 方法去掉字符串首尾的空白字符。trim 方法返回一个新的字符串,它去掉了字符串首尾的空白字符,但是不影响原来的字符串。 8. String 可以被子类继承吗? ...

    MTK_Add_menu_String.rar_mtk_手机 菜单

    例如,`MTK_Add_menu_String.doc`可能包含了菜单项的文字内容和提示信息,这些需要被添加到项目的资源文件中,以便系统能够正确显示。 5. **集成测试**:在代码编写完成后,需要在模拟器或真机上进行测试,检查菜单...

    string字符串处理.pdf

    `<string.h>`库提供了许多用于处理C风格字符串的函数,包括`strdup`、`strcpy`、`strncpy`、`strcat`和`strncat`等。这些函数对于理解和操作字符串至关重要。 1. `strdup`函数: 函数原型:`char *strdup(const ...

Global site tag (gtag.js) - Google Analytics