Stringa变量如何用Java基础创建并初始化为abc?

2026-06-11 11:094阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计364个文字,预计阅读时间需要2分钟。

Stringa变量如何用Java基础创建并初始化为abc?

1. String a=abc; // 首先在栈中定义了一个引用变量a,检查字符串常量池中是否存在abc

2.String b=abc; // 再定义一个引用变量b,检查常量池中是否存在abc

3.System.out.println(a==b); // 输出结果为true,因为常量池中已存在abc,a和b指向同一内存地址

1、Stringaabc;首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在abc如果存在直接将a指向这个地址注意

1、String a "abc";

首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在"abc"如果存在直接将a指向这个地址注意指向的是字符串常量池中的地址

如果字符串常量池中不存在"abc"则进行如下操作1、在栈中创建三个char型的值a,b,c然后在堆中new一个String对象它的值是刚才在栈中创建的三个char型值组成的数组{a,b,c}接着这个String对象会被存放进字符串常量池中最后将a指向这个对象在字符串常量池中的地址。

String a "abc";

等效于

char data[] {a, b, c};

String a new String(data);

Stringa变量如何用Java基础创建并初始化为abc?

2、String a   new String("abc");

首先在栈中定义了一个引用变量a然后在堆中new一个String对象a指向这个对象然后new出来的String对象再指向常量池中的abc。

3、比较

String a "abc";

String b "abc";

String c new String("abc");

String d new String("abc");

System.out.println(ab);

System.out.println(ac);

System.out.println(c d);

执行结果

true

false

false

注意new String("abc") 无论字符串常量池中是否存在“abc”都会在堆中生成一个新的对象所以a、c、d三者不相等。

以上为个人理解如果有误欢迎指正。

本文共计364个文字,预计阅读时间需要2分钟。

Stringa变量如何用Java基础创建并初始化为abc?

1. String a=abc; // 首先在栈中定义了一个引用变量a,检查字符串常量池中是否存在abc

2.String b=abc; // 再定义一个引用变量b,检查常量池中是否存在abc

3.System.out.println(a==b); // 输出结果为true,因为常量池中已存在abc,a和b指向同一内存地址

1、Stringaabc;首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在abc如果存在直接将a指向这个地址注意

1、String a "abc";

首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在"abc"如果存在直接将a指向这个地址注意指向的是字符串常量池中的地址

如果字符串常量池中不存在"abc"则进行如下操作1、在栈中创建三个char型的值a,b,c然后在堆中new一个String对象它的值是刚才在栈中创建的三个char型值组成的数组{a,b,c}接着这个String对象会被存放进字符串常量池中最后将a指向这个对象在字符串常量池中的地址。

String a "abc";

等效于

char data[] {a, b, c};

String a new String(data);

Stringa变量如何用Java基础创建并初始化为abc?

2、String a   new String("abc");

首先在栈中定义了一个引用变量a然后在堆中new一个String对象a指向这个对象然后new出来的String对象再指向常量池中的abc。

3、比较

String a "abc";

String b "abc";

String c new String("abc");

String d new String("abc");

System.out.println(ab);

System.out.println(ac);

System.out.println(c d);

执行结果

true

false

false

注意new String("abc") 无论字符串常量池中是否存在“abc”都会在堆中生成一个新的对象所以a、c、d三者不相等。

以上为个人理解如果有误欢迎指正。