1. Java 中的循环形式有哪几种
- 有 4 种,分别是
while
、do/while
(不常用)、for
、foreach
(Java 5 新增)
2. for( ; ; ) {}
这种写法是否合法
- 合法
- 在
for
语句中,每条语句都可以为空,但分号不能省 - 这是个死循环(无限循环),一直在空转,和
while(true) {}
的效果是一样的
3. foreach
是关键字吗
foreach
不是关键字Oracle Java 8 语言规范:
true
、false
、null
只是字面值,实际上并不是关键字Java 中关键字的分类(Java 中关键字都是小写的)
包相关
关键字 含义 import 导入指定的类或包 package 包 保留字
关键字 含义 goto 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。goto 语句会降低程序的可读性,Java 不允许 goto 跳转 const 类型修饰符,指定字段或局部变量的值是常数,不能被修改 变量引用
关键字 含义 void 声明当前方法没有返回值 this 只表示当前实例对象的引用 super 表明当前对象的父类型的引用或者父类型的构造方法 访问控制
关键字 含义 private 一种访问控制方式:私有模式 public 一种访问控制方式:公有模式 protected 一种访问控制方式:保护模式 错误处理
关键字 含义 try 包装一个可能抛出异常的程序块 catch 捕捉可能抛出的异常 finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 throw 抛出一个异常 throws 声明方法中所有需要抛出的异常 基本类型
关键字 含义 byte 基本数据类型之一,字节类型 short 基本数据类型之一,短整数类型 int 基本数据类型之一,整数类型 long 基本数据类型之一,长整数类型 float 基本数据类型之一,单精度浮点数类型 double 基本数据类型之一,双精度浮点数类型 char 基本数据类型之一,字符类型 boolean 基本数据类型之一,布尔类型 enum 枚举 程序控制语句
关键字 含义 if 条件语句的引导词 else 用在条件语句中,表明当条件不成立时的分支 switch 分支语句结构的引导词 case 用在 switch 语句之中,表示其中的一个分支 do 用在 do-while 循环结构中 while 用在循环结构中 for 一种循环结构的引导词 break 提前跳出一个块 continue 回到一个块的开始处 default 默认,例如,用在 switch 语句中,表明一个默认的分支 return 从方法中返回数据 instanceof 用来判断一个对象是否是指定类型的实例对象 类方法和变量修饰符
关键字 含义 new 用来创建新的实例对象 class 类 static 表明具有静态属性 final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变 native 声明方法是由与计算机相关的底层语言(如C/C++/FORTRAN语言)实现的 abstract 表明类或者成员方法具有抽象属性 extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 implements 表明一个类实现了给定的接口 interface 接口 volatile 表示可以被多个线程异步修改的成员变量,目标是为了确保所有线程所看到的指定变量的值都是相同的。volatile 还可以禁止指令重排,在双重校验锁的单例模式中有其应用。volatile 关键字在许多 Java 虚拟机中都没有实现,Java 语言中的 volatile 变量可以被看作是一种 “轻量级的 synchronized” transient 声明不用序列化的成员域 synchronized 表明一段代码需要同步执行 strictfp 用来声明 FP_strict(单精度或双精度浮点数)表达式遵循 IEEE 754 标准
4. 循环的实现原理
- 和
if
一样,循环内部也是靠条件转移指令和无条件转移指令实现的 - 在
if
中,跳转只会往后跳,而for
会往前面跳。而且,break
、continue
语句也都会转换为跳转指令
5. 循环的意义
- 在算法中也称循环为迭代
- 虽然循环看起来只是重复执行一些类似的操作而已,但它其实是计算机程序解决问题的一种基本思维方式