Java工程师面试时必知的几个Java关键字

栏目:求职攻略 日期:2018-05-22 17:14 来源:武汉课工场 作者:武汉课工场

关于一些熟悉的Java关键字,大家应该都知道。可是往往有一些被各位遗漏的java关键词,今天小课就为大家整理了一些java工程师面试时的关键词,在面试的时候能够更加的得心应手。

1、native

字如其名,用来修饰java本地(原生)调用的方法。简单的说就是java调用原生的C/C++的方法。Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C或者C++。

标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。

2. transient

transient(临时的)变量修饰符,只能用来修饰字段。被它修饰的变量,在对象存储时(序列化),这些变量状态不会被持久化。当对象序列化的保存在存储器上时,不希望有些字段数据被保存,为了保证安全性,可以把这些字段声明为transient。

3. strictfp

strictfp, 全称strict float point (精 确浮点)。

strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。

在进行科学计算时可以使浮点运算更加精 确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp。算钱的花还是算了,用整形会更好一点。

4. default

肯定有人说,这也算?哪个switch里没有个default?这里所说的default不是switch的默认,而是jdk8新增的特性。default方法。我们都知道在Java语言的接口中只能定义方法名,而不能包含方法的具体实现代码。接口中定义的方法必须在接口的非抽象子类中实现。

default方法,也可以称Defender方法,或者虚拟扩展方法(Virtual extension methods)。Default方法是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。

5. volatile

volatile(易变的)变量修饰符,也只能用来修饰字段,用于多线程的场合。volatile修饰变量。在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

这样可以防止两个方法同时被执行,还可以保证j和i被同时更新,这样一来i和j的值一直是一样的。

Java语言规范中指出:为了获得更好的速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。

这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。

而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。

使用建议:在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。

由于使用volatile屏蔽掉了VM中必要的代码优化,所以在效率上比较低,因此一定在必要时才使用此关键字。

以上是小课总结的即是java中容易被忽略的几个关键字,但是这几个关键字又经常会在面试的时候出现,朋友们可以记一下。

责任编辑:Java项目
开班情况
  • 01 Java零基础班 06.27报名中
  • 02 Java就业班 06.29 报名中
  • 03 Java远程零基础班 06.27 报名中
  • 04 Java远程就业班 06.28报名中
  • 05 Java业余班 06.27 报名中

只为了方便您就学 课工场华中直营总校 课工场华中直营总校

武汉市洪山区珞喻路718号春和天地3楼

全真项目实战 入学签就业协议

Copyright (c) 2006-2020 武汉科思沃斯教育科技有限公司 版权所有 All Rights Reserved.