`
xinglongbing
  • 浏览: 147840 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

论坛上一个讨论String的问题

 
阅读更多

public class Test {

public static void changeStr(String str) 

  str="name"; 


public static void main(String []args) 

  String str=null;
  changeStr(str); 
  System.out.println(str); 

}

问题是打印结果为什么为null。

很多人讨论的结果是由于String属于一个Immutable类,因此当改变其内容时返回的实际上是一个新对象的引用。

这个问题应该跟String是什么类型没有关系的,完全是怎末理解传值或传引用的问题。

这里虽然传递到changeStr方法的参数是引用,但实际也是一个引用值的拷贝,在方法里面是该引用指向了其他对象

也就是改变了该引用值,对方法外的引用值是没有影响的,因此这还是一个传值问题而不是其他String为不可变类型

的问题。

分享到:
评论

相关推荐

    字符串数组转换成string类型的

    `stringstream`允许你将一个字符串流当作输入/输出流来处理,而`accumulate`则可以用来累加容器中的元素。例如,你可以这样做: ```cpp #include #include #include <string> #include std::vector<std::...

    String类的重写 C++

    在本篇中,我们将探讨如何重写`String`类,实现其基本模块,并讨论在面试中常见的与`String`类相关的问题。 首先,让我们来看一下`String`类的基本结构。一个自定义的`String`类通常会包含以下组成部分: 1. **...

    Java中String判断值为null或空及地址是否相等的问题

    本文主要讨论了如何正确判断Java中的String对象是否为null、空值("")以及它们的地址是否相等。在处理字符串时,了解这些概念对于避免程序出错至关重要。 首先,我们需要区分`null`和空字符串`""`。`null`表示变量...

    java自制string类例程

    在Java编程语言中,String类是一个非常基础且重要的部分,它是不可变的,也就是说一旦创建了一个String对象,就不能更改它的内容。然而,许多初学者在学习过程中可能会尝试自己创建一个类似的字符串类,以便更好地...

    介绍java中String类的方法

    下面我们将详细讨论String类的一些主要特性、实例化方式以及常用方法。 1. **String类的实例创建**: - 直接赋值:`String userName = "Eric";` 这种方式创建的String对象是在常量池中,如果已有相同内容的字符串...

    自己参考些资料写的string类(简单的一个类,大家看看然后指点下)

    这里我们将讨论如何创建一个自定义的`string`类,以及可能涉及到的关键知识点。 首先,自定义`string`类的基本思想是模仿标准库中的`std::string`,提供类似的功能,如构造、赋值、拷贝、比较、插入、删除、查找等...

    数据结构学习——我的string类

    在C++编程中,"数据结构学习——我的string类"是一个典型的任务,旨在帮助初学者理解数据结构的基本概念,并通过实现自定义的string类来深化对C++的理解。下面将详细讨论这个主题,以及相关的知识点。 首先,让我们...

    JAVA String.format方法使用介绍

    在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一...

    C++里如何将int类型的16进制数转换成string类型[归类].pdf

    这个问题的核心是如何将数字转换成字符串。 在 C++ 中,有多种方法可以将 int 类型的 16 进制数转换成 string 类型。下面我们将讨论两种常见的方法。 方法一:使用 ostringstream 在问题中,我们看到的代码使用 ...

    String类运算符重载(采用动态内存分配)

    在这个场景中,我们将讨论如何为`String`类重载`+`、`=`以及`+=`运算符。 首先,让我们理解运算符重载的基本概念。在C++中,每个运算符都有其预定义的行为,如加法运算符`+`用于数值相加。但是,当我们定义一个...

    java String Vector简单初学者代码

    在Java中,`String`是一个不可变的字符序列,这意味着一旦创建了`String`对象,就不能再更改其内容。它提供了大量的方法,如`length()`用于获取字符串长度,`indexOf()`用于查找子串,`substring()`用于截取子字符串...

    string.h的函数大全

    在C++编程语言中,`<string.h>`头文件是C标准库的一部分,它提供了处理C风格字符串(字符数组)的一系列函数。虽然在C++中我们通常使用`std::string`类来处理字符串,但了解`<string.h>`中的函数仍然很重要,特别是...

    sizeof和sizeof(string)的问题 - wanghetao - 博客园1

    下面将详细讨论`sizeof`以及与`sizeof(string)`相关的问题。 首先,`sizeof`可以应用于任何类型的变量,包括基本类型(如int、char、float等)、自定义类型(如结构体、类)以及数组。对于基本类型,`sizeof`返回的...

    String.intern – 字符串池

    这篇文章将要讨论 Java 6 中是如何实现 String.intern 方法的,以及这个方法在 Java 7 以及 Java 8 中做了哪些调整。

    String encryption

    标题中的“String encryption”指的是字符串加密,这是一个在IT领域中至关重要的主题,特别是在网络安全和数据保护方面。字符串加密是将可读的文本(明文)转换为不可读的形式(密文),以保护信息免受未经授权的...

    C++ STL string类 字符串处理函数 第二版

    在这个"第二版"的教程中,我们将深入探讨STL中的string类,这是一个专为处理文本字符串而设计的容器。我们将讨论如何使用string类提供的各种字符串处理函数,并通过`StringProcess.cpp`、`trim() 调试.cpp`和`...

    头文件 string.h cstring string 区别.pdf

    `<string>`是C++标准库的一部分,它定义了`std::string`类模板,这是C++中的字符串对象。`std::string`提供了丰富的字符串操作方法,如赋值、拼接、查找、比较等,并且支持迭代器和STL容器的操作。使用`<string>`...

    JAVA小论文(浅谈String类)

    String类对象有这样一个重要特性:只读性,就是其内容一旦确定了就不可以更改。 在Java中,字符串可以由英文双引号(” ”)引起,字符串就是一个字符序列。例如:“This is a string.”。而由英文单引号(’’)...

    MyBatis 参数类型为String时常见问题及解决方法

    首先,我们来看第一个问题:**参数为String时的插值问题**。在MyBatis中,当接口方法的参数类型为String时,Mapper XML文件中的动态SQL部分可能会出现异常。例如,我们有一个`findByAccountType`方法,其参数类型为...

    java String源码和String常量池的全面解析

    在上面的代码中,我们使用 new 关键字创建了一个 String 对象 a,並使用字面量创建了另一个 String 对象 b。由于 a 和 b 引用的是不同的对象,所以输出结果为 false。 通过这两个示例代码,我们可以看到 String ...

Global site tag (gtag.js) - Google Analytics