第五章 数组和字符串
一, 填空题
1. Java 语言提供的用于处理可变字符串的字符串类是 ______。(StringBuffer)
2. Java 语言提供的用于处理不可变字符串的字符串类是 ______。(String)
3. 使用运算符==判定两个String 类的对象是否相等, 此时判定的是______。java定义一维数组并赋值(两个对象在内存中的存储空间是否相同)
4. 数组静态初始化是指______。(在数组声明的同时给数组元素符初值)
5. 数组动态初始化时, 必须使用______分配空间。(new运算符)
6. 数组下标可以是______。(整型常量或表达式)
7. 执行String s1= 023368; String s2 =s1.replace (3,6); 后, s2的值是______。(026668)
二, 填空题
1. 在Java中是如何完成数组边界检查的?
在Java 中, 数组下标从0 开始, 数组中的元素个数length 是数组类中唯一的数据成员变量。 使用new 创建数组时系统自动给length 赋值。 数组一旦创建完毕, 其大小就固定下来。 程序运行时可以使用length 进行数组边界检查。 如果发生越界访问, 则抛出一个异常。
2. 请简述数组创建的过程. 如何创建一个对象数组?
数组声明仅仅是定义了一个数组引用, 系统并没有为数组分配任何内存, 因此现在还不能访问它的任何元素。 必须经过数组初始化后, 才能使用数组的元素。 初始化的过程就是数组的创建过程。 对于类类型的数组, 使用运算符new 只是为数组本身分配空间,并没有对数组的元素进行初始化。 所以对类类型的数组, 空间分配需要经过两步: 1. 先创建数组本身: 类型 数组名[] = new 类型[数组大小]; 2. 分别创建各个数组元素: 数组名[0] = new 类型(初始表); …………数组名[数组大小-1] = new 类型(初始表);
3. 数组的内存分配是如何完成的?
数组的初始化为数组分配内存空间。 数组的初始化分为静态初始化和动态初始化两种。 所谓静态初始化就是在定义数组的同时给数组元素赋初值。 静态初始化使用一对大括号将初值括起来, 每个元素对应一个引用(内存地址)。 动态初始化使用运算符new 为数组分配内存空间,它只指定数组的长度, 由系统为每个数组元素指定初始值。
4. String 类和StringBuffer 类有什么区别?
String类的对象实例是不可改变的,一旦创建就确定下来。对字符串实施操作后并不改变字符串本身,而是又生成了另一个实例。 StringBuffer 类处理可变字符串,当修改一个StringBuffer类的字符串时,不是再创建一个新的字符串对象,而是直接操作原字符串。
5. 是否可以继承String 类?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。