Java中常用的关键字总结四

【本文参考自《Java程序员面试笔试宝典》】

【switch】switch与case关键字作为分支语句常常一起出现。在使用switch(expr)时,expr只能是一个枚举常量(内部也是由整型或字符类型实现)或一个整数表达式。其中整数表达式可以是基本类型int或其对应的包装类Integer,当然也包括不同的长度类型,例如short。由于byte、short和char类型的值都能被隐式的转换为int类型,因此这些类型以及他们对应的包装类型都可以作为switch的表达式。但是,long、float、double、String类型不能够隐式地转换为int类型,因此它们不能被用作switch的表达式。在Java7中,switch开始支持String类型,但是String类型变量不能为null。

【case】case语句之后可以是直接的常量数值,也可以是一个常量计算式,还可以是final型的变量(final变量必须是编译时的常量),但不能是变量或带有变量的表达式,当然更不能是浮点型数。同样在Java7,case语句开始支持String类型,但是字符串不能为null。

【volatile】volatile关键字是一个类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量。被volatile类型定义的变量,系统每次用到它时都是直接从对应的内存当中提取,而不会利用缓存。在使用了volatile修饰成员变量后,所有县城在任何时候所看到的变量的值都是相同的。需要注意的是,由于volatile不能保证操作的原子性,因此一般情况下volatile不能代替synchronized。此外,使用volatile会阻止编译器对代码的优化,因此会降低程序的执行效率。所以,除非迫不得已,否则,能不使用volatile就尽量不要使用volatile。

【synchronized】synchronized关键字保证了任何时候都只有一个线程访问一个方法或对象。

【transient】如果使用transient关键字声明一个实例对象,当对象存储时,它的值不需要维持。即,在对象进行序列化的时候,不被序列化。

猜你喜欢

转载自blog.csdn.net/weixin_36378917/article/details/80714174