`

java解惑之—字符串的拼接( 2 )

阅读更多

public class Test{

 

    public static void main(String [] args){

        String s ="haha";

       char [] chs = { '1','2','3'};

       System.out.println(s+chs);

 

   }

}

上面的小程序运行结果不是:haha123。

在执行打印语句时,先是对+号两边的操作数进行转换,而在对chs进行转换时是调用了object类的toString()方法,所以结果不是:haha123,为了输出haha123,要改正如下:

System.out.println(s+String.valueOf(chs));

所以在对字符串进行连接时,要特别小心哈哈。对与不是String的对象注意toString()方法是否被重载。

分享到:
评论

相关推荐

    讲解Java解惑的PPT2

    在这个问题中,主要讨论了Java中的字符串拼接。Java中的`+`运算符在处理字符串时具有特殊性。当至少有一个操作数是字符串时,`+`会进行字符串连接。例如,`"H" + "a"`会拼接成`"Ha"`。但如果两个操作数都是非字符串...

    JAVA面试题解惑系列合集

    字符串是Java中非常特殊的对象类型,字符串的创建和拼接有很多细节,比如字符串连接使用'+'时,会生成多个String对象,而使用StringBuilder或者StringBuffer则更为高效。另外字符串池的存在也使得字符串的操作更加...

    JAVA面试题解惑系列(六)——字符串(String)杂谈[收集].pdf

    在字符串拼接的场景中,如果直接使用`+`运算符连接多个`char`变量,例如`System.out.print(a + b + c + d + e + f)`,实际上会触发隐式的类型转换,`char`变量会被转换为对应的Unicode编码(整数值),然后进行数字...

    java 解惑.pdf

    - **解惑**:字符串拼接时需要注意内存效率和性能问题。使用`StringBuilder`或`StringBuffer`类进行拼接可以提高效率,特别是在处理大量字符串的情况下。 **谜题14:转义字符的溃败** - **描述**:涉及到转义字符的...

    java解惑 书籍类 谜题

    虽然题目没有提供具体的代码示例,但我们可以推测这个谜题可能围绕着字符或字符串的意外行为展开,比如字符串拼接、转义字符的使用、特殊字符的处理等。 **示例问题**:假设有一个方法,旨在打印出字符串中的最后一...

    java解惑 - 最后的笑声

    文章可能分析常见的字符串操作误区,如过度使用`+`进行字符串拼接,以及何时使用`StringBuilder`或`StringBuffer`。 6. **泛型**:泛型提供了一种在编译时检查类型安全的方式。可能涉及的议题包括泛型的基本用法、...

    臧圩人--JAVA面试题解惑系列合集.pdf

    - **知识点**:深入探讨字符串处理技术,包括字符串拼接、比较、格式化等常见操作的内部实现,以及性能优化建议。 **1.7 JAVA面试题解惑系列(七)——日期和时间的处理** - **知识点**:介绍Java中日期和时间API...

    Java面试题解惑系列

    3. **字符串拼接**:使用 `+` 进行字符串拼接时,可能会导致性能问题,特别是在循环中。 **示例分析**: ```java String s1 = "hello"; String s2 = "hello"; String s3 = new String("hello"); System.out....

    iava解惑,深入剖析java

    这个谜题可能与字符串操作有关,例如拼接、查找、替换等。在Java中,可以使用`String`类的方法来处理字符串。 谜题9:半斤 这个谜题可能与重量单位转换有关,涉及到浮点数运算和单位换算。 谜题10:八两 同谜题9,...

    JAVA面试题解惑系列合集.docx

    3. **字符串拼接:** - `String a = "ab" + "cd";` - **创建对象数量**:1个。 - **原理**:编译期优化为字符串常量,直接指向字符串池。 4. **字符串连接:** - `String a = "ab"; String b = "cd"; String c ...

    Java面试解惑

    - **字符串拼接**:使用`+`操作符进行字符串拼接。 - **性能优化**:使用`StringBuilder`或`StringBuffer`进行大量字符串拼接操作。 #### 7. 日期和时间处理 - **`java.util.Date`**:表示特定的瞬间。 - **`java....

    Java面试题及解惑

    - **数字转换为字符**:可以通过`Character`类的方法或者字符串拼接实现。 - **取小数点前两位并四舍五入**:使用`Math.round()`函数配合适当的计算实现。 #### 4. 日期和时间 - **获取年月日、小时分秒**:使用`...

    Java面试题详解,和一些基础知识的深入剖析,个人认为非常棒

    “JAVA面试题解惑系列(六)——字符串(String)杂谈”可能涉及到String池的概念,即JVM会缓存重复的字符串,以提高性能。此外,String的equals()和==的区别也常常是面试的焦点,前者比较内容,后者比较对象引用。 ...

    JAVA开发规范

    - **使用StringBuffer对象**:在字符串频繁拼接时,使用`StringBuffer`或`StringBuilder`以提高性能。 - **避免太多的使用synchronized关键字**:过度同步会导致性能下降,需谨慎使用。 - **换行**:合理安排代码...

Global site tag (gtag.js) - Google Analytics