黑马程序员技术交流社区

标题: 【厦门JavaEE基础7期——每日总结】常用API [打印本页]

作者: 厦门校区    时间: 2019-4-10 18:24
标题: 【厦门JavaEE基础7期——每日总结】常用API
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

3.StringBuilder的作用,为什么要使用StringBuilder
作者: 王卓立    时间: 2019-4-10 21:32
本帖最后由 王卓立 于 2019-5-22 21:38 编辑

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

两个个对象,分别在堆内存和字符串常量池

3.StringBuilder的作用,为什么要使用StringBuilder

StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这个类可以对string字符串进行修改

当字符串需要进行频繁修改时,使用StringBuilder性能更好,不会创建新的对象

作者: 高建有    时间: 2019-4-10 21:33
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆

内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而

StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要

频繁的拼接字符串的时候使用StringBuilder;
作者: 宋加福    时间: 2019-4-10 21:34
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型      因为字符串是常量。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc"); 创建了一个对象,在堆内存中创建
String s = "abc"; 创建了一个对象 在堆内存中的字符串常量池中创建
3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder的内容是可变的。 在要进行多次数的字符串拼接中,不会创建新的对象,可以提高效率。
作者: 阮必文    时间: 2019-4-10 21:34
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为字符串是常量,常量的长度不能改变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s=new String ("abc")创建了一个对象,String s 在栈内存中建立  在内存中建立了{a,b,c}
String s="abc" 创建了一个对象,在栈内存创建String s,在内存中建立一个字符串常量池“abc"

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder的作用:是一个长度可变的字符串每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率
因为它较于String来说它的长度是可变的,而且进行拼接操作自始至终都是一个对象,性能来说做拼接操作的时候性能较高。
作者: LPY    时间: 2019-4-10 21:34

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆

内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而

StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要

频繁的拼接字符串的时候使用StringBuilder
作者: 林晓诗    时间: 2019-4-10 21:35
1String是引用数据类型,字符串的底层是由数组实现的

2
String s = new String("abc");
生成了2个对象,在堆内存生成一个、在常量池生成一个
String s = "abc";
在常量池生成1个对象

3
StringBuilder是一个可变长度的字符串,用于存放经常需要进行拼接的字符串。
String是不可改变长度的,每次字符串拼接都需要消耗空间生成新的字符串,经常需要进行拼接的字符串使用StringBuilder效率更高。
作者: 黄戚君    时间: 2019-4-10 21:39
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

一个对象,堆内存

一个对象,字符串常量池

3.StringBuilder的作用,为什么要使用StringBuilder

StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这个类可以对string字符串进行修改

当字符串需要进行频繁修改时,使用StringBuilder性能更好,不会创建新的对象
作者: 连惠腾    时间: 2019-4-10 21:39
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,字符串是常量;它们的值在创建之后不能更改。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了一个对象,在堆内存中申请了一个内存存放“abc”,并在栈内存中定义个变量接收。

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,在堆内存中的字符串常量池中申请内存存放“abc”;并通过在栈内存中定义变量接收。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 主要作用是对字符串进行拼接。
当频繁的进行字符串的拼接时建议使用StringBuilder,因为使用String拼接会每次拼接都产生一个新的对象占用内存,
而StringBuilder在进行频繁拼接的时候占用内存较小。
作者: 余聪望    时间: 2019-4-10 21:40
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

一个对象,堆内存

一个对象,字符串常量池

3.StringBuilder的作用,为什么要使用StringBuilder

StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这个类可以对string字符串进行修改

当字符串需要进行频繁修改时,使用StringBuilder性能更好,不会创建新的对象
作者: 黄孝贵    时间: 2019-4-10 21:40
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用类型的,字符串是常量创建后值是不能更改的。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
前者创建了一个对象 ,创建在堆内存中,或者也是创建了一个对象,创建在堆内存中字符串常量池。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder的内容是可改变了,StringBuilder进行拼接操作,自始至终都是一个对象;
做拼接操作的时候性能较高;
作者: 郭建(07期)    时间: 2019-4-10 21:41
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型,java中所有被""引起来的都可以用String实现。
    字符串是常量,因此在创建后它的长度不能更改。



2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc");这句代码创建了2个对象
    (1)new String()在堆内存中创建了一个对象
    (2)"abc"在字符串常量池中创建了一个对象

    String s = "abc";创建了1个对象,是在字符串常量池中创建了对象。



3.StringBuilder的作用,为什么要使用StringBuilder
答:StringBuilder主要的作用是对字符串进行拼接。
    使用StringBuilder的好处在于,每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率
作者: 维度猎人    时间: 2019-4-10 21:43
郑峰

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型.
        字符串为常量,它们的值和长度在创建后不能被更改。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc");这句代码创建了两个对象,分别在堆内存和常量池中创建。
        String s = "abc";创建了一个对象,是在内存中的常量池中创建。
       
3.StringBuilder的作用,为什么要使用StringBuilder
答:StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的。
        String类的内容是不可变的
,StringBuilder类的内容是可变的
,在进行字符串的多次拼接时,StringBuilder相较于String来说更具效率。
作者: 徐雯雯    时间: 2019-4-10 21:43
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答: 是基本数据类型;因为字符串在堆内存创建生成


2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:  String s = new String("abc") 两个 new String()在堆内存,"abc"在常量池
      String s = "abc";创建了一个  在常量池

3.StringBuilder的作用,为什么要使用StringBuilder
答: StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
     在某些特定情况下 StringBuilder 可以更加有效率的进行字符串拼接
作者: 陈晓煌    时间: 2019-4-10 21:44


1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆

内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而
StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要

频繁的拼接字符串的时候使用StringBuilder

作者: 谢龙炜    时间: 2019-4-10 21:45
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型;
        String类底层其实是对字符数组进行了封装操作,我们在操作时其实也就是在操作数组,既然是数组自然长度不可改变。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:两个对象, new String()在堆内存区域创建,"abc"常量池创建。
        一个对象,"abc"在堆内存区域创建一个常量池。

3.StringBuilder的作用,为什么要使用StringBuilder
答:StringBuilder 主要作用是对字符串进行拼接;
        因为StringBuilder是一个可变的字符串,在进行字符串进行拼接操作时不会构建新的对象,省时省力省了内存空间。
作者: 汪一飞    时间: 2019-4-10 21:46
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

String是引用数据类型
字符串是常量,创建过后不可更改

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc"):创建了两个对象;new String("abc")一个在堆内存开辟一块空间,直接赋值在堆内存创建了一个字符串池。
String s = "abc":创建一个对象在堆内存的字符串池中。



3.StringBuilder的作用,为什么要使用StringBuilder

StringBuilder 作用:一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的

因为用String直接赋值拼接,每次拼接都要在堆内存开辟一块空间。要是拼接次数多影响编程效率和程序性能。而StringBuilder 拼接只需创建一次对象,多次进行拼接的时候可以大幅度提升程序的性能。
作者: Dream梦    时间: 2019-4-10 21:47
潘绍平:
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String类是引用数据类型,因为字符串是常量,底层是char数组,由一个一个字符组成,所以不能改变长度
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

答:String s = new String("abc"); 创建了1个对象,放在堆内存中。
String s = "abc";创建了1个对象,放在字符串常量区域。
3.StringBuilder的作用,为什么要使用StringBuilder
答:是一个长度可变的字符串
好处:
每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率

对比:

长度:
String:不可变
StringBuilder:可变

对象:
String:每一次拼接,都会创建对象
StringBuilder:进行拼接操作,自始至终都是一个对象

性能:
String:做拼接操作的时候性能比较低下
作者: 林美娇    时间: 2019-4-10 21:47
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型。
      String类其实是对字符数组进行了封装操作,我们在操作String类时其实就是在操作数组,既然是数组那长度就是不可变的。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc"): 2个。new String在堆内存中创建了一个对象,"abc"在堆内存中的字符串常量池中创 建了一个对象。
    String s = "abc":  1个。"abc"在堆内存中的字符串常量池中创建了一个对象。

3.StringBuilder的作用,为什么要使用StringBuilder
答:作用就是当频繁拼接字符串的时候,StringBuilder都会在原本对象上做拼接,不会创建对象,可以提高程序的效率。
       当需要频繁做字符串拼接的时候使用,可以节省创建对象,提高效率。
作者: 陈青超    时间: 2019-4-10 21:48
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为String底层是字符数组,数组长度不可以变,因此String类字符串长度不可以变。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s=new String("abc");创建了俩个对象,new String()在堆内存,"abc"在堆内存内的常量池。
String s="abc"创建了一个对象,"abc"在堆内存内的常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder创建了一个可变的字符串长度的存储空间。从创建对象角度看,StringBuilder进行字符串拼接时并不创建新的对象,自始至终只是创建了一个对象,节省了计算机内存空间,提高了运行效率。
作者: 郑方灼    时间: 2019-4-10 21:49
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型,因为它们的值在创建后不能被更改。

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:String s = new String("abc"); 创建了两个对象,在堆内存中和常量池中。
       String s = "abc"; 创建了一个对象 在堆内存中的字符串常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
答:因为StringBuilder是可变的,所以可以更方便地对String字符串进行各种操作,提高效率和性能。
作者: 李侄旭    时间: 2019-4-10 21:49



1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆

内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而
StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要

频繁的拼接字符串的时候使用StringBuilder
作者: 伍志晟    时间: 2019-4-10 21:50
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:
引用数据类型。
因为字符串的底层是一个不可改变长度的数组。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:
1、创建了两个对象,“abc”在常量池中,new String();在堆内存中。
2、创建了一个对象,“abc”在常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
答:
作用:形成一个可变的字符串。
在多个字符串拼接时使用StringBuilder可以提高性能。

作者: 陈明捷    时间: 2019-4-10 21:50
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型
字符串是常量,常量的长度不能改变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s=new String ("abc")创建了一个对象,String s 在栈内存中建立  在内存中建立了{a,b,c}
String s="abc" 创建了一个对象,在栈内存创建String s,在内存中建立一个字符串常量池“abc"

3.StringBuilder的作用,为什么要使用StringBuilder
对字符串进行拼接
因为它较于String来说它的长度是可变的,而且进行拼接操作自始至终都是一个对象,性能来说做拼接操作的时候性能较高
作者: 伪神    时间: 2019-4-10 21:51
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

String是引用数据类型;String是引用数据类型

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc");
生成了2个对象,在堆内存生成一个、在常量池生成一个
String s = "abc";
在常量池生成1个对象




3.StringBuilder的作用,为什么要使用StringBuilder

StringBuilder是一个可变长度的字符串,用于存放经常需要进行拼接的字符串。
String是不可改变长度的,每次字符串拼接都需要消耗空间生成新的字符串,经常需要进行拼接的字符串使用StringBuilder效率更高。
作者: 刘正    时间: 2019-4-10 21:51

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   String s = new String("abc"); 创建了两个对象,在堆内存中和常量池中。
   String s = "abc"; 创建了一个对象 在堆内存中的字符串常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 主要作用是对字符串进行拼接;
        因为StringBuilder是一个可变的字符串,在进行字符串进行拼接操作时不会构建新的对象,省时省力省了内存空间。
作者: 吴晓斌    时间: 2019-4-10 21:51
1:它们的值在创建后不能被更改所已它们的长度不可变。
   
   String类属于引用类型

2:一个对象,就是“abc”,在堆内存区域创建。

   一个对象,在字符串常量池中创建。
  
  
3:StringBuilder的作用:是一个长度可变的字符串每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率
因为它较于String来说它的长度是可变的,而且进行拼接操作自始至终都是一个对象,性能来说做拼接操作的时候性能较高。
作者: 郑斐均    时间: 2019-4-10 21:53
郑方灼 发表于 2019-4-10 21:49
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:String是引用数据类型,因为 ...

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为字符串是常量,常量的长度不能改变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s=new String ("abc")创建了一个对象,String s 在栈内存中建立  在内存中建立了{a,b,c}
String s="abc" 创建了一个对象,在栈内存创建String s,在内存中建立一个字符串常量池“abc"

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder的作用:是一个长度可变的字符串每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率
因为它较于String来说它的长度是可变的,而且进行拼接操作自始至终都是一个对象,性能来说做拼接操作的时候性能较高。
作者: 严显辉    时间: 2019-4-10 21:55
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   String s = new String("abc"); 创建了两个对象,在堆内存中和常量池中。
   String s = "abc"; 创建了一个对象 在堆内存中的字符串常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 主要作用是对字符串进行拼接;
        因为StringBuilder是一个可变的字符串,在进行字符串进行拼接操作时不会构建新的对象,省时省力省了内存空间。
作者: 叶晓翔    时间: 2019-4-10 21:57
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用数据类型,字符串是常量;它们的值在创建之后不能更改。
2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了一个对象,在堆内存中申请了一个内存存放“abc”,并在栈内存中定义个变量接收。

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,在堆内存中的字符串常量池中申请内存存放“abc”;并通过在栈内存中定义变量接收。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 主要作用是对字符串进行拼接。
当频繁的进行字符串的拼接时建议使用StringBuilder,因为使用String拼接会每次拼接都产生一个新的对象占用内存,
而StringBuilder在进行频繁拼接的时候占用内存较小。
作者: 黄锐.    时间: 2019-4-10 21:58
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
(1)引用数据类型
(2)因为字符串是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
(1)String s = new String("abc");2个对象 在堆内存和常量值中创建
(2)String s = "abc";1个对象 在常量值中创建

3.StringBuilder的作用,为什么要使用StringBuilder
(1)StringBuilder是一个可变的字符串类
(2)在频繁的拼接字符串的时候使用StringBuilder
作者: 唐仲泽    时间: 2019-4-10 21:59
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型;因为String是常量

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?

String s = new String("abc") 创建了2个对象,其中new String() 在堆内存中创建, "abc" 在堆内存的常量区中的创建
String s = "abc" 在堆内存的常量区中创建了一个对象;

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder是一个可变的字符序列;
因为String在拼接字符串的时候,由于其长度不可变的特性,会不断的创建新对象导致性能的损失,而StringBuilder是可变的字符序列,在拼接字符串时只会新建一个对象,极大的提高了性能,所以当需要频繁的拼接字符串的时候使用StringBuilder;
作者: 林勇华    时间: 2019-4-10 21:59
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用
因为字符串的底层是byte数组,数组长度不可变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc");创建了两个对象,分别在堆内存和字符常量池里
String s = "abc";创建了一个对象,在堆内存字符常量池里创建

3.StringBuilder的作用,为什么要使用StringBuilder
创建一个可变字符串
频繁拼接,使用StringBuilder类,大大提高效率
作者: 余鹏程    时间: 2019-4-10 22:00
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:
String类是引用数据类型
因为在String类创建对象时就已经决定了字符串的长度所以它的长度不可变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:
(1)创建了两个对象,分别在堆内存中的常量池,new创建在堆内存的
(2)创建了1个对象,在堆内存中的常量池中创建

3.StringBuilder的作用,为什么要使用StringBuilder
答:
(1)作用是在字符串拼接时不会创建新的对象,提高程序效率
(2)在频繁的使用字符串拼接时如果使用string则会创建很多对象,但是使用StringBuilder则只会创建一个对象,大大的提高了程序的效率。
还有就是string的字符串长度不可变,StringBuilder的字符串长度可变。

作者: 林聪全    时间: 2019-4-10 22:01
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型,
因为一旦创建,长度就不可改变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:2个,在堆内存中     
1个,在常量池中
3.StringBuilder的作用,为什么要使用StringBuilder
答:形成一个可变字符串
做拼接操作性能较高


____林聪全
作者: 宋涵耀    时间: 2019-4-10 22:02
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型,
String 创建一个字符串时回在字符常量池内创建一个地址值 如果字符串长度变化 字符串的地址值也将发生变化

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
创建了一个对象,在堆内存中创建
没有创建对象,在常量池中创建

3.StringBuilder的作用,为什么要使用StringBuilder
在堆创建一个可以更改字符长度的字符串,不会创建新对象
做拼接操作时性能更高,提高运行效率
作者: 刘炯榕    时间: 2019-4-10 22:04

1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
是引用数据类型,因为字符串是常量,常量的长度不能改变

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s=new String ("abc")创建了一个对象,String s 在栈内存中建立  在内存中建立了{a,b,c}
String s="abc" 创建了一个对象,在栈内存创建String s,在内存中建立一个字符串常量池“abc"

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder的作用:是一个长度可变的字符串每一次做字符串拼接,都会在原本对象之上做拼接,不会创建新的对象,提高程序的效率
因为它较于String来说它的长度是可变的,而且进行拼接操作自始至终都是一个对象,性能来说做拼接操作的时候性能较高。
作者: 王卓立    时间: 2019-5-22 21:37
王卓立 发表于 2019-4-10 21:32
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因 ...

收到,多谢指正
作者: 黄戚君    时间: 2019-5-22 21:49
1.String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

引用数据类型,底层是char数组,因此不可直接修改长度

2.String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   String s = new String("abc"); 创建了两个对象,在堆内存中和常量池中。
   String s = "abc"; 创建了一个对象 在堆内存中的字符串常量池中。

3.StringBuilder的作用,为什么要使用StringBuilder
StringBuilder 主要作用是对字符串进行拼接;
        因为StringBuilder是一个可变的字符串,在进行字符串进行拼接操作时不会构建新的对象,省时省力省了内存空间。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2