`
sjk2013
  • 浏览: 2204292 次
文章分类
社区版块
存档分类
最新评论

String和New String()的区别

 
阅读更多

面试中常常会被问到这样的问题,为此也搜索阅读过很多文章,看完之后还是不太明白。

所以希望以个人的见解在此做个总结,为大家提供另外一种理解方式,如有不对之处还请诸位留言!

String str ="test";

String str2 =new String ("test");

String str ="test";先在常量池中查找有没有"test" 这个对象,如果有,就让str指向那个"test".如果没有,就让str指向在常量池中新建的对象"test"。

String str2 =new String ("test");是在堆中建立的对象"test",在栈中创建堆中"test" 对象的内存地址。


无法理解的看图吧:



之前的写法有错误,误导大家不好意思哦!

在栈中的局部变量表只包括基本类型(boolean、byte、char、short、int、float、long、double)没有String

以下为相等的in1==in2 都存放在栈中!

int in1 = new Integer(1);
int in2 = 1;


分享到:
评论

相关推荐

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

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

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

    主要介绍了Java String 和 new String()的区别的相关资料,需要的朋友可以参考下

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

    今天,我们将探讨C#中char[]与string之间的转换,包括string转换成Char[]和Char[]转换成string,同时也会涉及到byte[]与string之间的转换。 首先,让我们来看一下string转换成Char[]。在C#中,我们可以使用...

    String对象创建问题

    String对象的创建问题,分为:编译期和执行期 详细的讲解String对象创建问题

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

    String b=new String("hello world"); //这种用new关键字定义的字符串,是在堆中分配空间的。而分配空间就是由new去完成的,由new去决定分配多大空间,并对空间初始化为字符串"hello world" 返回其在堆上的地址。 ...

    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...

    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[] (字符串是用哪种...

    zjinc36#zjinc36.github.io#20190627-String直接赋值与使用new-String的区别1

    String直接赋值与使用new String的区别description: 研究String直接赋值与new String的区别原文标题:String直接赋值

    Java中颜色的String和Color对象之间的互相转换

    Java 中颜色的 String 和 Color 对象之间的互相转换 在 Java 中,颜色的表示形式有多种,包括字符串形式和 Color 对象形式。这两种形式可以互相转换,本文将介绍 Java 中颜色的 String 和 Color 对象之间的互相转换...

    C#_string_byte数组转换解析

    string类型转成ASCII byte[]:("01" 转成 byte[] = new byte[]{ 0x30, 0x31}) 1 byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str ); ASCII byte[] 转成string:(byte[] = new byte[]{ 0x30, 0x31...

    txt文档转化为String

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

    易语言JAVA对象模块

    易语言JAVA对象模块源码,JAVA对象模块,NewString,NewString_bytes,NewString_bytes_charset,NewString_bytes_offset_length,NewString_bytes_offset_length_charset,NewString_bytes_offset_length_charsetName,New...

    java io读取文件到String

    //ret = new String(ba); } finally { if(is!=null) {try{is.close();} catch(Exception e){} } } long endTime = System.currentTimeMillis(); System.out.println("方法1用时"+ (endTime-beginTime) + "ms")...

    java中int_char_string三种类型的相互转换

    Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...

    string用法详解

    string用法详解

    跟我学Java-day13-String和StringBuilder.pdf

    day13-String和StringBuilder 1.String类 1.1字符串的比较【理解】 1.1.1==号的作用 比较基本数据类型:比较的是具体的值 比较引用数据类型:比较的是对象地址值 1.1.2equals方法的作用 方法介绍 示例代码 ...

    【JDK】分析 String str=““ 与 new String()(csdn)————程序.pdf

    【JDK】分析 String str=““ 与 new String()(csdn)————程序

    new String(\"abc\")创建几个对象的解释

    java面试的疑惑剪辑 博文链接:https://z-jq1015.iteye.com/blog/248599

    string sql

    string sql; string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|ASPNET20Book.mdb;Persist Security Info=True"; System.Data.OleDb.OleDbConnection cn = new System.Data....

    String s = new String(” a “) 到底产生几个对象?

    上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。...

Global site tag (gtag.js) - Google Analytics