JAVA笔试重点:String对象与浮点数特性解析

需积分: 4 0 下载量 10 浏览量 更新于2024-10-08 收藏 44KB DOC 举报
"JAVA笔试题精华版1.0" 这篇资料主要聚焦于Java编程语言的基础概念,特别是关于字符串(String)对象、浮点数(float)表示以及函数参数传递机制。以下是这些知识点的详细说明: 1. 字符串(String)的不可变性: 在Java中,字符串对象是不可变的,这意味着一旦创建了一个`String`对象,就不能更改它的内容。当执行`a+="World"`这样的操作时,并非直接修改原始的`a`对象,而是创建了一个新的`String`对象,包含原始字符串`a`与"World"的拼接结果。这个新对象随后赋值给`a`,而原来的`a`对象仍然存在,但不再被引用。这解释了为何在给定的代码示例中,即使调用了`link`方法,输出仍然是"Hello"。 2. Java中的函数参数传递: Java采用“值传递”(Call by value)的方式进行函数参数传递。这意味着函数内部对参数的任何修改都不会影响到函数外部的原始变量。在`link`方法中,传入的`a`是`String`对象的引用副本,而不是对象本身,所以即使在方法内部改变了`a`,也不会影响到主方法中的`a`。 3. 浮点数(float)的表示: `float`类型的变量在Java中占用32位,这个位数由`Float.SIZE`常量表示。`Float.SIZE`为32,意味着`float`类型可以表示的数值范围和精度是有限的。在给出的代码片段中,`a.SIZE`两次打印出32,展示了`float`类型的位宽。 4. 字符串常量的比较: 当使用双等号`==`比较两个`String`对象时,实际上是在比较它们是否指向内存中的同一个对象。如果比较的是字符串常量,如`"ja"+"va"=="java"`,由于常量池的优化,它们会被存储在同一位置,因此`==`比较返回`true`。同样的逻辑适用于比较`final`修饰的字符串变量,如`str=="java"`。 5. 字符串操作错误的选项分析: - A选项`m=a-t;` 是错误的,因为`String`对象不支持减法操作。 - B选项`m=a[3]+"one";` 是正确的,因为可以访问`String`对象的字符并进行拼接操作。 - C选项没有给出完整代码,但从语法上看,它可能试图将一个`String`对象与另一个`String`对象进行拼接,但缺少了加号`+`。 通过这些题目,我们可以深入理解Java中的字符串操作、对象的不可变性以及基本数据类型和`String`对象的区别。这些知识对于Java程序员来说是基础且重要的。