原文:new String("abc"),到底在不在常量池中存储"abc"?

问之:这行代码到底有没有在字符串常量池中创建 Hello World 字符串呢 答曰:有。 问之:为什么 答曰:先看String类的构造函数。 在这个过程中, Hello World 作为形参传递给original,这个过程相当于 String original Hello World ,因此,在常量池中创建字符串 Hello World 。 之后,我们都知道,new的对象都存在在堆中,因此,n ...

2020-08-04 22:31 0 691 推荐指数:

查看详情

JAVA基础知识|String a = "abc";String a = new String("abc");

1、String a = "abc"; 首先在栈中定义了一个引用变量a,检查字符串常量池中是否已经存在"abc",如果存在直接将a指向这个地址,注意:指向的是字符串常量池中的地址; 如果字符串常量池中不存在"abc",则进行如下操作:1、在栈中创建三个char型的值'a','b','c ...

Fri Jun 05 01:16:00 CST 2020 0 1480
Java String a=new String("ABC")的创建

题目 String s = new String(“hello”)和String s = “hello”;的区别? 区别 String s = new String(“hello”)会创建2(1)个对象,String s = “hello”创建1(0)个对象。 注:当字符串常量池中有对象 ...

Wed Aug 15 01:22:00 CST 2018 0 1418
java中String s="abc"及String s=new String("abc")详解

1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直 ...

Thu May 09 20:34:00 CST 2019 0 804
java中String s="abc"及String s=new String("abc")详解

1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直 ...

Tue Apr 10 18:31:00 CST 2012 3 16700
String s=new String("abc")创建了几个对象?

String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 答案应该是1个或者2个。 1个的情况:如果字符串池中已经存在了"abc"这个对象,那么直接在创建一个对象放入堆中,返回str引用。 2个的情况 ...

Tue Jan 09 17:13:00 CST 2018 0 4385
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM