`
wandejun1012
  • 浏览: 2730829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

String为什么不用new

    博客分类:
  • java
 
阅读更多

情况一:

String a="abc";

String b="abc"

 

上面2个变量指的其实是同一个内存地址,且是放在栈内存里的。

 

而且运行以下代码:if(a==b),结果是true.

 

=====================================================

情况二:

String a="abc"

String b=new String("abc");

2个的内存地址是不一样的,a是在栈内存,b的内存地址在堆内存里面

而且运行if(a==c),是false.

但是运行if(a.equals(c))是true,因为equals在比较地址不等后,会比较值。

 

 

refurl:http://bbs.csdn.net/topics/10456225

分享到:
评论

相关推荐

    String对象创建问题

    在上述代码中,`s5`的值为`"hello world"`,但整个过程只创建了一个`StringBuilder`对象和最后的`String`对象。这比使用`+`运算符进行字符串拼接更高效,尤其是在循环中。 总的来说,理解`String`对象在编译期和...

    关于String s=new String( "Hello")的例子思考

    关于String s=new String( "Hello")的例子思考

    StringtoList和StringtoMap和StringtoObject和StringtoArray

    Map<String, String> map = gson.fromJson(jsonString, new TypeToken<Map<String, String>>(){}.getType()); ``` 4. **String to Object** 如果JSON字符串代表的是一个自定义Java对象,你可以创建一个对应的类...

    String[] list 相互转化

    String[] arr = (String[]) list.toArray(new String[size]); ``` 这里的关键点在于 `list.toArray(new String[size])` 这一行代码。`toArray` 方法接受一个数组对象作为参数,并返回一个新的包含列表所有元素的...

    c++结构体string无法用malloc分配内存

    这里,`new temp`会为`temp`结构体分配内存,并调用默认构造函数初始化所有成员,包括`std::string`的构造函数,使得`s`能够正确地存储字符串。 C++的结构体和类确实都隐式地拥有一个默认构造函数,即使我们没有...

    C#中char[]与string之间的转换 string 转换成 Char[]

    string result = string.Concat(new string[] { " A ", strOr, " B ", Environment.NewLine, " C ", strOr, " D " }); ``` 这里,我们使用string.Concat方法将string数组转换成string。 在C#中,我们还可以使用...

    list转换成string数组

    在Java编程语言中,经常需要将`List<String>`类型的数据转换为`String[]`数组类型,以便于进行某些特定的操作或适应某些方法的要求。本文将详细探讨这一转换过程,并通过几个具体的示例来帮助理解。 #### 一、基础...

    List转换成String数组

    本文将详细介绍如何将一个`List<String>`类型的集合转换为`String[]`数组,并通过不同的方法来实现这一过程。这不仅有助于提高代码的可读性和效率,还能帮助开发者更好地理解和运用Java集合框架。 #### 一、背景...

    Java String 和 new String()的比较与区别

    这也就是为什么 str1 和 str2 使用 == 运算符比较时返回 true 的原因,因为它们指向的是同一个对象。 但是,当我们使用 new String("abcd") 创建一个字符串对象时,情况就不同了。new String("abcd") 会直接在堆中...

    String.txt

    String b =new String("abc"); //创建字符串方式2 System.out.println(a==b); //false,内存地址不相等 String c =new String("abc"); String d =new String("abc"); System.out.println(c==d...

    String型的不可变性

    那么,为什么 String 对象不能被修改呢?这就需要从 Java 的内存分配机制说起。 Java 把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存。在函数中定义的一些基本类型的变量和对象的引用变量都在栈...

    C# char[]与string byte[]与string之间的转换详解

    string str1 = new string(arr); 2、byte[]与string之间的转化 string str = 你好,hello; byte[] bytes; //byte[] 转换成 string bytes = Encoding.UTF8.GetBytes(str); //string 转换成 byte[] (字符串是用哪种...

    txt文档转化为String

    将.txt文档转化为String类型 具体代码如下: package IndexSearch; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /** * 将txt的路径,将txt文档转换为String内容 ...

    JavaBean与JsonString的相互转换

    要将JavaBean对象转换为JsonString,我们可以使用一些流行的JSON库,如Jackson、Gson或Fastjson。以Jackson为例,首先需要在项目中引入Jackson库,然后可以使用`ObjectMapper`类的`writeValueAsString()`方法: `...

    String a="hello" String b="hello" a==b 返回true的问题分析

    为什么会出现上面的情况呢? String a="hello world"; String b="hello world"; 通过上面的讲解可以知道,a和b都是指向常量池的同一个常量字符串"hello world"的,因此它们返回的地址是相同的。a和b都是引用...

    android GBK转换为String

    String unicodeStr = new String(gbkBytes, "GBK"); ``` 2. **Unicode转GBK(字符串)**: - 反之,如果已有Unicode字符串,需要编码成GBK,可以使用`CharsetEncoder`: ```java String unicodeStr = ...; // ...

    java String 使用详解

    实际上创建了两个 String 对象,一个是”abc”对象,存储在常量空间中,一个是使用 new 关键字为对象 s 申请的空间。 二、字符串的常见操作 字符串的常见操作包括 charAt 方法、compareTo 方法、concat 方法等。 ...

    string 对象 与json互转

    `org.json`库提供了一个名为`JSONObject`的类,可以将`String`转换为JSON对象。首先,确保你的项目中已添加了`org.json`的依赖,例如在Maven项目中添加以下依赖: ```xml <groupId>org.json <artifactId>json ...

    正确使用String类的几点注意

    通过上述案例可以看出,在没有调用`intern()`方法之前,虽然`s1`和`s2`的内容相同,但由于`s2`是通过`new`关键字创建的,因此它们的地址不同,所以`s1 == s2`的结果为`false`。调用`s2.intern()`之后,由于`s2`已经...

    Android String字符串数组动态增加

    4. **转换为Array**: 如果需要将ArrayList转换回String数组,可以使用toArray()方法,但需要传递一个空的String数组作为目标。 ```java String[] newArray = new String[stringList.size()]; stringList.toArray...

Global site tag (gtag.js) - Google Analytics