「埃尔法哥哥」JAVA中的关键字和保留字( 三 )


(7)synchronized:可以应用于方法或语句块 , 并为一次只应由一个线程执行的关键代码段提供保护 。 可防止代码的关键代码段一次被多个线程执行 。 如果应用于静态方法 , 那么 , 当该方法一次由一个线程执行时 , 整个类将被锁定 。 如果应用于实例方法 , 那么 , 当该方法一次由一个线程访问时 , 该实例将被锁定 。 如果应用于对象或数组 , 当关联的代码块一次由一个线程执行时 , 对象或数组将被锁定 。
(8)transient:可以应用于类的成员变量 , 以便指出该成员变量不应在包含它的类实例已序列化时被序列化 。 当一个对象被串行化的时候 , transient型变量的值不包括在串行化的表示中 , 然而非transient型的变量是被包括进去的 。 Java的serialization提供了一种持久化对象实例的机制 。 当持久化对象时 , 可能有一个特殊的对象数据成员 , 我们不想用serialization机制来保存它 。 为了在一个特定对象的一个域上关闭serialization , 可以在这个域前加上关键字transient 。 transient是Java语言的关键字 , 用来表示一个域不是该对象串行化的一部分 。 当一个对象被串行化的时候 , transient型变量的值不包括在串行化的表示中 , 然而非transient型的变量是被包括进去的 。
(9)volatile:用于表示可以被多个线程异步修改的成员变量 。 注意:volatile关键字在许多Java虚拟机中都没有实现 。 volatile的目标用途是为了确保所有线程所看到的指定变量的值都是相同的 。 Java语言中的volatile变量可以被看作是一种"程度较轻的synchronized";与synchronized块相比 , volatile变量所需的编码较少 , 并且运行时开销也较少 , 但是它所能实现的功能也仅是synchronized的一部分 。
D、程序控制语句
条件循环(流程控制)(共12个)
「埃尔法哥哥」JAVA中的关键字和保留字
文章图片
(1)if:指示有条件地执行代码块 。 条件的计算结果必须是布尔值 。 if语句可以有可选的else子句 , 该子句包含条件为false时将执行的代码 。 包含boolean操作数的表达式只能包含boolean操作数 。
(2)else:总是在if-else语句中与if关键字结合使用 。 else子句是可选的 , 如果if条件为false , 则执行该子句 。
(3)while:用于指定一个只要条件为真就会重复的循环 。
(4)for:用于指定一个在每次迭代结束前检查其条件的循环 。 for语句的形式为for(initialize;condition;increment)控件流进入for语句时 , 将执行一次initialize语句 。 每次执行循环体之前将计算condition的结果 。 如果condition为true , 则执行循环体 。 每次执行循环体之后 , 在计算下一个迭代的condition之前 , 将执行increment语句 。
(5)switch:用于基于某个表达式选择执行多个代码块中的某一个 。 switch条件的计算结果必须等于byte、char、short或int 。 case块没有隐式结束点 。 break语句通常在每个case块末尾使用 , 用于退出switch语句 。 如果没有break语句 , 执行流将进入所有后面的case和/或default块 。
(6)case:用来标记switch语句中的每个分支 。 case块没有隐式结束点 。 break语句通常在每个case块末尾使用 , 用于退出switch语句 。 如果没有break语句 , 执行流将进入所有后面的case和/或default块 。
(7)default:用来标记switch语句中的默认分支 。 default块没有隐式结束点 。 break语句通常在每个case或default块的末尾使用 , 以便在完成块时退出switch语句 。 如果没有default语句 , 其参数与任何case块都不匹配的switch语句将不执行任何操作 。
(8)do:用于指定一个在每次迭代结束时检查其条件的循环 。 do循环体至少执行一次 。 条件表达式后面必须有分号 。


推荐阅读