A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
3 StringBuilder的作用,为什么要使用StringBuilder?
4 说说今天你觉得重要的点.

19 个回复

倒序浏览
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String类是引用类型,因为String类的底层是由final修饰的char[]数组构成,所以字符串的长度不可变。
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
String s = new String("abc")这句代码创建了两个对象,分别是堆内存中new的String类型的对象,以及在堆内存中字符串常量池
中创建的字符串常量。   
String s = "abc"创建了一个对象,是在堆内存中字符串常量池中创建的字符串常量。
3 StringBuilder的作用,为什么要使用StringBuilder?
它一个可变的字符序列。它会默认创建一个长度为16的字符串缓冲区,可以用StringBuilder添加字符串,如果添加的字符串超出了16这个长度,会以2n+2的长度动态扩容。
String字符串值不可变的,String字符串拼接字符串时,会新建一个字符串对象,这样会导致浪费堆内存空间(效率低),而字符串缓冲流是一个一个可变的字符序列,可以解决这一问题。
4 说说今天你觉得重要的点.
用新字符串,替换字符串老的字符串:String str  =str. replace(char oldChar, char newChar)。
回复 使用道具 举报
今日整理:
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在使用时不会创建新对象,占用的内存较String少,所以执行效率也高,而且StringBuilder在使用时会自动扩充内存。
4 说说今天你觉得重要的点.
①学会使用API类库查询类的使用;②StringBuilder的使用。
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型,Srting类的字符串是常量
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
一个对象,s在栈中,new String(“abc ”)在堆中
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
一个对象,String s = “abc”都在堆里
3 StringBuilder的作用,为什么要使用StringBuilder?
StringBuilder是一个可变的字符序列对象,可以在一个对象中进行扩容,从而存储更多的字符串
4 说说今天你觉得重要的点.
①- 获取字符串长度的方法: length();
  回顾一下获取数组的长度:length属性;
- 获取字符串中的字符串:char  c = charAt(index);
- 拼接字符串:String  str  = str1.concat(String str2)
- 判断是否包含这个字符:boolean flag = str1.contrains(str2);
- 判断两个字符串的值是否一致:boolean  flag = str1.equals(str2);
- 判断两个字符串的值是否一致,不考虑大小写:boolean  flag = str1.equalsIgnoreCase(str2);
- 获取指定字符串在整个字符串中第1次出现的索引值:int index = str.indexOf(str1);
- 获取指定字符串在整个字符串中最后出现的索引值:int index = str.lastIndexOf(str1);
- 用新字符串,替换字符串老的字符串:String str  =str. replace(char oldChar, char newChar)
- 获取从指定索引到结束的字符串:String newStr = str.substring(int beginIndex)
- 获取从指定索引到指定索引的字符串:String newStr = str.substring(int a,int b)
注意:substring(a,b):截取字符串时,包含起始位置a的字符,不包含结束位置b的字符
②String字符串的本质(字符串效果上相当于char字符数组):
String是通过char字符拼接的字符串,是通过索引查找字符的位置
String字符传串是通过char数组拼接,底层是通过byte数组
③1. 调用字符串对象的length()方法,获取其实是字符串有几个字符组成的
2. 调用字符串对象的charAt(索引)方法,索引的最大值= 字符串的长度-1;
   如果超出了最大索引,会报索引越界异常。
④1. 字符串是常量;它们的值在创建之后不能更改。
    2. 因为 String 对象是不可变的(String str="abc"),所以可以共享
⑤使用== 比较引用类型的对象,其实比较都是对象的地址值;比较对象中的实际的字符串值,而不是比较对象的地址值
   .equals(字符串对象):比较的就是字符串的值
⑥StringBuilder,一个可变的字符序列。它会默认创建一个长度为16的字符串缓冲区,可以用StringBuilder添加字符串。
   如果添加的字符串超出了16这个长度,会以2n+2的长度动态扩容。
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型。
因为JAVA定义的String字符串是一个常量,所以String字符串的长度是一个固定值。
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了两个对象;
String s是在栈内存中,
new String是在堆内存中
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?       
创建了一个对象,在栈内存中创建。
3 StringBuilder的作用,为什么要使用StringBuilder?
StringBuilder是一个可变的字符序列,会默认创建一个长度为16的字符串缓冲区,可以用StringBuilder添加字符串,
如果添加的字符串超出了16这个长度,会以2n+2的长度动态扩容。
StirngBuilder的运行效率高,能够存储更多的字符串
4 说说今天你觉得重要的点.
(1)知道在API里面查找类的使用方法。
(2)String字符串的使用--拼接,反转,遍历
(3)StringBuilder字符串的使用,已经StringBuilder和String的相互转化。
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用类型。字符串是常量。
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
答:一个,堆中。
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:一个,堆中常量池中。
3 StringBuilder的作用,为什么要使用StringBuilder?
答:字符串拼接,速度快。
4 说说今天你觉得重要的点
答:string字符串,stringbuild.
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
  答:引用数据类型. 字符串是常量;它们的值在创建之后不能更改.
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
  答:创建了两个对象,在堆内存中new创建了一个空间,在堆内存中的常量池中创建了“abc”。
   创建了一个对象,在堆内存的常量池中创建了“abc”。

3 StringBuilder的作用,为什么要使用StringBuilder?
  答:StringBuilder可以在对象中拼接字符串,减少创建对象数量,提高程序效率。
4 说说今天你觉得重要的点.
答:StringBuilder字符串缓冲流对象
回复 使用道具 举报
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型,- 因为 String 对象是不可变的,所以可以共享。
- 字符串效果上相当于char字符数组,但底层原理是byte字节数组。数组的长度是固定的
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
答:两个对象   在堆内存中

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:一个,在常量池里;

3 StringBuilder的作用,为什么要使用StringBuilder?
答:StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器
这里的可变指的是 StringBuilder 对象中的内容是可变的
因为对字符串进行拼接操作,每次拼接,都会构建一个新的 String 对象,
既耗时,又浪费内存空间,而这种操作还不可避免,StringBuilder可以很好的解决这个问题它的字符串是可变的。

4 说说今天你觉得重要的点.
StringBuilder的应用。
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   引用数据类型。因为字符串是常量,创建后不可被改变。

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

3 StringBuilder的作用,为什么要使用StringBuilder?
   长度可变的容器字符串缓冲类,因为StringBuilder可以随意添加字符串,而且都是在一个对象上操作,转为String类也只需要调用toString方法即可
4 说说今天你觉得重要的点.
   a:String字符串对象在内存中分配
   b:字符串常量池
   c:StringBuilder字符串缓冲流对象
   d:String和StringBuilder两者的区别和转换
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
   String类是引用数据类型。因为字符串底层是char类型,字符串的长度不能改变。
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   第一句创建了两个对象,一个是new String存放在堆中,另外一个是“abc”存在常量池中。
   第二局创建了一个对象“abc”,存在常量池中。
3 StringBuilder的作用,为什么要使用StringBuilder?
   StringBuilder可以创建初始容量为16的字符串,且可以动态扩容。相比较String来说,
  用StringBuilder进行拼接,反转,获取索引等行为更加便利。而且它拼接字符串的时候
  不会新建字符串对象,节约了内存空间,还能存储更多的字符串。
4 说说今天你觉得重要的点.
(1)如何使用API进行查询
(2)String的常用方法
(3)String和StringBuilder的特点和比较
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:
*String是引用数据类型
*字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变得。

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

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:这句话创建了一个对象,即常量池中的abc

3 StringBuilder的作用,为什么要使用StringBuilder?
答:
概念:StringBulider是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的
作用:创建一个字符串缓冲对象,不会新创建对象,它能存储更多的字符串,节省了空间,极大的提高了运行效率。


4 说说今天你觉得重要的点.
认为API帮助文档是非常重要的,通过API帮助文档,使今后的操作更加贴近和符合Java的设计初衷,Java是一款面向对象的语言,要掌握如何调用对象来为我们服务
回复 使用道具 举报
张恒
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:(2)字符串底层是char数组,而数组在创建之初长度就是固定的,因此字符串的长度是不可变得
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
答:(1)这句代码创建了2个对象,1.在堆内存中新建了一个new String,2.在堆内存的常量池生成一个abc;
3 StringBuilder的作用,为什么要使用StringBuilder?
答:1、StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
4 说说今天你觉得重要的点.
答: 学会了用api查询还有,StringBuilder的基本用法
回复 使用道具 举报
1.
String是引用类型,字符串是常量,所以不可变

2.
创建了两个对象,String("abc")在常量池中,String s是在堆内存里
一个对象,在常量池创建

3.
除了可以创建StringBuilder对象,还可以将字符串对象转成StringBuilder对象
StringBuilder效率高,可以储存更多的字符串

4.
StringBuilder和String的常用方法,还有咋在api查询
回复 使用道具 举报
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
答:引用数据类型,- 因为 String 对象是不可变的,所以可以共享。
- 字符串效果上相当于char字符数组,但底层原理是byte字节数组。数组的长度是固定的
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
答:两个对象   在堆内存中

   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
答:一个,在常量池里;

3 StringBuilder的作用,为什么要使用StringBuilder?
答:StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器
这里的可变指的是 StringBuilder 对象中的内容是可变的
因为对字符串进行拼接操作,每次拼接,都会构建一个新的 String 对象,
既耗时,又浪费内存空间,而这种操作还不可避免,StringBuilder可以很好的解决这个问题它的字符串是可变的。
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
        String 是引用数据类型
        创建之后长度内容不可变,每次拼接字符串都会产生新的对象。
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
        三个对象,如果是通过new的方式创建对象,那么每次new ,都会在堆内存中开辟一端空间,每次的字符串都不一样
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
        3个对象,如果定义的字符串常量一样,那么不会在堆内存中新创建String对象,而是直接从常量池中找对应的值。
4 说说今天你觉得重要的点.
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
引用数据类型,字符串是常量
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
2   方法区  堆内存
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
2   常量池  堆
3 StringBuilder的作用,为什么要使用StringBuilder?
可以用stringbuilder添加字符串,使用stringbuilder可以节省内存空间,提升效率
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?
String是引用数据类型        因为字符串是常量  所以不可变
2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
创建了一个对象      s在栈内存中     new String("abc")在堆内存中开了一块内存区域
  String s =“abc” 这句代码创建了几个对象?分别在内存中的哪个区域创建?
一个对象 ,   s在栈中   abc作为字符串常量在堆中
3 StringBuilder的作用,为什么要使用StringBuilder?
StringBuilder默认创建一个长度为16的字符串缓冲区          他的长度是可变的     。StringBuilder不会创建新的对象 效率高  它能存储更多的字符串
4 说说今天你觉得重要的点.
我觉得今天重要的点有StringBuilder。
回复 使用道具 举报
1.引用数据类型,String字符串是常量,不可更改
2. 2个,两个都在堆内创建;
    1个,在堆内创建。
3.它会默认创建一个长度为16的字符串缓冲区,可以用StringBuilder添加字符串,
StringBuilder会在原有的缓冲区(一段堆内存空间)进行拼接,拼接完以后,还是原来的对象。
优点:不会新创建对象(效率高),它能存储更多的字符串

4.StringBuilder
回复 使用道具 举报

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

string 是引用类型,因为字符串是常量,在赋值之后就不可更改

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

String s = new String("abc");创建了两个对象, abc一开始存在string的字符串池中,new一个对象后,得到abc值存到堆中
String s = "abc";创建了一个对象,存在字符串池中。

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

可以创建可变的字符序列,这样便于我们的使用,和空间的节省,运行速度也更快。

4 说说今天你觉得重要的点.

string对象创建值的存放位置,stringbuilder的几个方法
回复 使用道具 举报
今日整理:
1 String类是基本数据类型还是引用数据类型?为什么字符串的长度不可变?

        String类是引用类型
        字符串的长度不可变原因:字符串是常量;它们的值在创建之后不能更改
       

2 String s = new String("abc");这句代码创建了几个对象?分别在内存中的哪个区域创建?
   String s = "abc";创建了几个对象,分别在内存中的哪个区域创建?
   
   String s = new String("abc"):2个对象,“abc”存在常量池,String s存在堆区
   String s = "abc":创建1个对象,“abc”存在堆区的常量池中,String s存在栈区
   
3 StringBuilder的作用,为什么要使用StringBuilder?

        优点:不会新创建对象(效率高),它能存储更多的字符串

4 说说今天你觉得重要的点.

        A、StringBuilder和String的区别
       
        B、==和equals区别
       

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马