字符串提问

来源:2-1 什么是 Java 中的字符串

菜鸟的羽毛

2016-08-11 09:29

String S1=“imooc”;

String S2=new String("imooc");


请问S1与S2区别在哪?

写回答 关注

5回答

  • 刘忠新
    2016-08-11 10:11:55
    已采纳

    没区别,一个是直接定义,另一个是通过创建一个对象的方式进行定义

    菜鸟的羽毛

    非常感谢!

    2016-08-11 10:17:03

    共 1 条回复 >

  • AI方法
    2016-09-08 10:55:17

    是有区别,学语言最怕得过且过。

  • 蚂蚁_0014
    2016-08-30 22:08:25

    区别在于,第一个在字符串常量池中创建。第二个实际在堆上。如果用==来比较两个字符串返回的是false。应为==是比较地址。字符串常量池不是栈哦

  • qq_张浩_7
    2016-08-21 17:42:53

    http://img.mukewang.com/57b977160001535706670339.jpg这实例化种方法一般会在堆内存中开辟两个空间,只用一个,比较浪费资源;所以一般采用直接赋值法


  • 木吉他__秋
    2016-08-11 10:41:04

    个人感觉是通过S1的方式创建的字符串是存放在栈区中的,而S2的创建方式是创建在堆中的,所以二者地址不一样,使用==得到的也是false

    木吉他__秋 回复菜鸟的羽毛

    额...看看数据结构或者百度一下吧

    2016-08-11 11:30:53

    共 2 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题