Character.String.StringBuffer.Vector谁是直接赋值存放字符串长量的对象?(简单扩展)(概念)

作业题

在 Java 中,直接赋值存放字符串常量的对象属于( )类对象。

A.Character

B.String

C.StringBuffer

D.Vector

答案:B

解析

A:

Character 类用于对单个字符进行操作。

Character 类在对象中包装一个基本类型 char 的值

B:

正确答案
以下为String的内容扩展:

马克- to-win的文章写到:

栈中有共享池的概念:比如下面例子中,sz="hello";在栈中创建一个String对象引用变量sz,然后看看栈中有没有"hello",如果没有,则将"hello"存放进栈,并令sz指向”hello”,如果已经有”hello” 则直接令sz指向“hello”。对于int, float 类型的变量也是一样的有这种共享池的概念

另一种解释(),

关于String str = "abc"的内部工作。Java内部将此语句转化为以下几个步骤:

(1) 先定义一个名为str的对String类的对象引用变量放入栈中。

(2) 在常量池中查找是否存在内容为"abc"字符串对象。

(3) 如果不存在则在常量池中创建"abc",并让str引用该对象。

(4) 如果存在则直接让str引用该对象。

另一种(菜鸟教程):

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

以上只是作为学习参考,看到这的人不要被影响自己的思路

本人初步了解,之后具体研究后再区分一下共享池,公共池,字符串池,,(区别) 

C:

不选c的主要原因:StringBuffer 和 StringBuilder 类创造的对象不可直接赋值存放字符串常量

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了,如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

D

Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:

  • Vector 是同步访问的。
  • Vector 包含了许多传统的方法,这些方法不属于集合框架。

Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

-----------学习笔记

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值