2018 Java面试精华:=='与equals'差异、 goto与逻辑运算符对比及多层循环控制

需积分: 7 1 下载量 62 浏览量 更新于2024-07-18 收藏 47KB DOCX 举报
在2018年的Java面试题中,面试官可能会考察以下几个关键知识点: 1. 关于类和源文件:一个.java源文件中确实可以包含多个类,但是这些类的组织有一定的规则。虽然可以有多个类,但只能有一个类被声明为public,且其类名必须与源文件名相同,遵循命名规范。这强调了命名一致性以及类在Java中的组织结构。 2. 关于`goto`关键字:尽管Java中有保留字`goto`,但它已经不被现代Java语言支持,意味着在实际编程中不应使用`goto`来实现流程控制,因为它可能导致代码可读性和维护性降低。Java更倾向于使用`break`和`continue`来控制循环流程。 3. `&`与`&&`的区别:两者都是逻辑与运算符,但在行为上有所不同。`&`不仅用于逻辑判断,还可以作为位运算符进行二进制位操作。在逻辑判断中,`&&`是短路的,即当左侧表达式为假(false)时,不会进一步计算右侧表达式,避免可能的空指针异常。如`if(str!=null&&!str.equals(""))`,当`str`为null时,不会抛出异常。而`&`在非布尔类型中执行按位与运算,如`0x31&0x`会获取0x31的最低4位。 4. 跳出多重循环:Java提供多种方式来跳出嵌套循环。一种是使用标号和`break`语句,如在两个嵌套循环中,当满足特定条件时,可以在里层循环中通过`break ok;`跳到外层循环结束。另一种更为推荐的做法是调整外层循环的条件,使其根据内层循环的执行结果动态改变。 5. 二维数组遍历:面试时可能会考察如何在二维数组中高效查找元素,比如使用嵌套循环和`boolean`变量`found`来标记查找结果,直到找到目标值或遍历完整个数组。 这些知识点展示了面试者对Java基础语法和逻辑控制的理解程度,也反映了编码实践中的最佳做法。准备这类面试时,不仅要熟知理论,还要能灵活运用并解释这些概念。