Java面试技巧:跳出多重循环与类型转换解析
需积分: 8 78 浏览量
更新于2024-07-16
收藏 37KB DOCX 举报
"Java面试题库,包括了Java语言的基础知识和编程技巧,适用于准备Java面试的人员。"
1、在Java中,跳出多重嵌套循环通常有两种方法。第一种方法是在外层循环前定义一个标号,如`ok:`,然后在内层循环中使用`break ok;`来跳出外层循环。这样可以避免使用多个`break`导致的逻辑混乱。例如:
```java
ok:
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
if(j==5) break ok;
}
}
```
第二种方法是通过改变外层循环的控制条件,使内层循环能够影响其结果。比如在二维数组中查找特定数字的例子:
```java
int arr[][]={{1,2,3},{4,5,6,7},{9}};
boolean found=false;
for(int i=0; i<arr.length && !found; i++) {
for(int j=0; j<arr[i].length; j++) {
if(arr[i][j]==5) {
found=true;
break;
}
}
}
```
这种方法更符合面向对象编程的思想,通过状态(这里的状态是`found`)控制流程。
2、关于short类型的变量,`short s1=1; s1=s1+1;`会导致编译错误,因为`s1+1`操作会提升表达式类型到int,然后尝试将int赋值回short,需要显式转换。而`short s1=1; s1+=1;`则可以正常编译,因为Java编译器会处理这种类型的增强赋值操作,自动进行类型转换。
3、在Java中,char类型用于存储Unicode编码的字符,而Unicode编码集包括了汉字,所以char变量可以存储中文。然而,如果某个汉字不在Unicode编码集中,则无法存储。每个Unicode字符占用2个字节。
4、使用`final`关键字修饰变量时,如果是基本类型,其值不能改变;如果是引用类型,引用本身(即对象的地址)不能改变,但对象的内容可以修改,除非对象是`final`的。例如:
```java
final List<String> list = new ArrayList<>();
list.add("Hello"); // 可以添加元素,因为修改的是引用的对象内容
list = new ArrayList<>(); // 错误,不能重新赋值
final String str = "World";
str = "Java"; // 错误,不能重新赋值
str = "Java"; // 但是字符串对象内的内容(常量池中的引用)不可更改,str.charAt(0) = 'J' 也会报错
```
这些面试题涵盖了Java的基本语法、数据类型、循环控制以及变量修饰符的使用,都是Java程序员应该掌握的基础知识。理解和熟练运用这些知识点,对于面试和实际开发工作都至关重要。
2022-06-03 上传
2021-12-08 上传
2016-11-19 上传
2024-11-09 上传
2023-11-30 上传
2023-02-24 上传
2023-09-04 上传
2023-06-10 上传
2023-07-13 上传