JAVA第五、六、七、八章测验:对象创建与字符串比较

需积分: 0 1 下载量 95 浏览量 更新于2024-08-05 收藏 520KB PDF 举报
在Java第五、六、七、八章的测验中,包含了一系列关于基础概念和技术的题目,主要考察了对字符串处理、对象创建、比较以及基本运算的理解。以下是每个问题的详细解释: 1. **程序段输出结果** 该问题考查的是`StringBuffer`类的使用。`StringBuffer`是一个可变的字符序列,题目中创建了一个容量为20的实例`buf1`。`length()`方法返回字符串中字符的数量,初始时为0;`capacity()`方法返回当前对象能容纳的字符数量,即初始容量。所以,`buf1.length()`为0,`buf1.capacity()`为20。因此,答案是C. 20, 20。 2. **对象创建** 在Java中,字符串常量池会存储唯一的字符串实例。题目中的`Strings1 = "abc"` 和 `Strings2 = "abc"` 都引用了同一个字符串常量池中的"abc",因此它们指向同一个对象。所以,答案是B. 1,创建了1个对象。 3. **再次对象创建** 当`Strings2 = new String(s1)`时,它创建了一个新的字符串对象,即使`s1`的值与常量池中的"abc"相同。因此,这里创建了2个不同的对象:一个来自常量池,另一个是新的。答案是C. 2。 4. **代码段输出结果** 这段代码中,`s1`和`s2`都初始化为"bc",然后分别检查它们的引用和内容是否相等。由于`s1`是原始字符串,而`s2`是通过构造函数创建的新字符串,两者不相等但内容相同。所以输出将是`s1!=s2 s1equals s2`,答案是D。 5. **代码执行结果** 第一个输出是字符串连接,`s+x+y`的结果是`"hello" + 1 + 6`,即`hello7`。第二个输出顺序不变,结果还是`hello7`。第三个输出是字符串连接数字,`"abc" + 2.0`的结果是`"abc2.0"`。所以,答案是C. hello7,因为第一个和第二个输出相同。 6. **生成5个空字符串** 要生成5个空字符串,可以创建一个长度为5的`String`数组并全部初始化为空字符串。正确的代码是`String a[] = new String[5];`。答案是缺失的,但根据上下文应该是A. String a[] = new String[5];。 这些题目涵盖了Java中基础的字符串操作、对象管理以及类型转换,有助于巩固对这些核心概念的掌握。