面试中常常会被问到这样的问题,为此也搜索阅读过很多文章,看完之后还是不太明白。
所以希望以个人的见解在此做个总结,为大家提供另外一种理解方式,如有不对之处还请诸位留言!
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")的例子思考
主要介绍了Java String 和 new String()的区别的相关资料,需要的朋友可以参考下
今天,我们将探讨C#中char[]与string之间的转换,包括string转换成Char[]和Char[]转换成string,同时也会涉及到byte[]与string之间的转换。 首先,让我们来看一下string转换成Char[]。在C#中,我们可以使用...
String对象的创建问题,分为:编译期和执行期 详细的讲解String对象创建问题
String b=new String("hello world"); //这种用new关键字定义的字符串,是在堆中分配空间的。而分配空间就是由new去完成的,由new去决定分配多大空间,并对空间初始化为字符串"hello world" 返回其在堆上的地址。 ...
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 str1 = new string(arr); 2、byte[]与string之间的转化 string str = 你好,hello; byte[] bytes; //byte[] 转换成 string bytes = Encoding.UTF8.GetBytes(str); //string 转换成 byte[] (字符串是用哪种...
String直接赋值与使用new String的区别description: 研究String直接赋值与new String的区别原文标题:String直接赋值
Java 中颜色的 String 和 Color 对象之间的互相转换 在 Java 中,颜色的表示形式有多种,包括字符串形式和 Color 对象形式。这两种形式可以互相转换,本文将介绍 Java 中颜色的 String 和 Color 对象之间的互相转换...
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类型 具体代码如下: package IndexSearch; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /** * 将txt的路径,将txt文档转换为String内容 ...
易语言JAVA对象模块源码,JAVA对象模块,NewString,NewString_bytes,NewString_bytes_charset,NewString_bytes_offset_length,NewString_bytes_offset_length_charset,NewString_bytes_offset_length_charsetName,New...
//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...
string用法详解
day13-String和StringBuilder 1.String类 1.1字符串的比较【理解】 1.1.1==号的作用 比较基本数据类型:比较的是具体的值 比较引用数据类型:比较的是对象地址值 1.1.2equals方法的作用 方法介绍 示例代码 ...
【JDK】分析 String str=““ 与 new String()(csdn)————程序
java面试的疑惑剪辑 博文链接:https://z-jq1015.iteye.com/blog/248599
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....
上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。...