strictfp, volatile, transient关键词

2023-11-12 01:49

本文主要是介绍strictfp, volatile, transient关键词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Key: strictfp

使用对象:类、方法

自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下。

strictfp的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

你可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字,例如下面的代码:

1. 合法的使用关键字strictfp

strictfp interface A {}

public strictfp class FpDemo1 {
    strictfp void f() {}
}

2. 错误的使用方法

interface A {
    strictfp void f();
}

public class FpDemo2 {
    strictfp FpDemo2() {}
}

一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。例如一个类被声明为strictfp,那么该类中所有的方法都是strictfp的。

 

Keys: volatile

使用对象:字段

介绍:因为异步线程可以访问字段,所以有些优化操作是一定不能作用在字段上的。volatile有时

可以代替synchronized。

 

Keys:transient

  使用对象:字段

  介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

这篇关于strictfp, volatile, transient关键词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394257

相关文章

关键字synchronized、volatile的比较

关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随着JDK新版本的发布,synchronized关键字的执行效率上得到很大提升,在开发中使用synchronized关键字的比率还是比较大的。多线程访问volatile不会发生阻塞,而synchronize

zblog自定义关键词和描述,zblog做seo优化必备插件

zblog自定义关键词和描述,zblog做seo优化必备插件     首先说下用到的一款插件:CustomMeta自定义数据字段 ,我们这里用到的版本是1.1,1.1+版增加了列表页标签支持!     插件介绍:文章,分类等添加自定义数据字段。1.1+版适用于 Z-Blog 2.0 B2以上版本。     在zblog2.0beta1里面,这个插件是集成到了程序里面,beta2里面默认没有了

一个统计文件中关键词数量的小程序-优化版本

public class computeWxxFileNum{public static void main(String[] args) throws IOException {//读文件File sourceFile = new File("e:\\55-tmp\\xxx.log");FileReader in = new FileReader(sourceFile); LineNumber

一个统计文件中关键词数量的小程序

public class computeFileNum{public static void main(String[] args) throws IOException {File sourceFile = new File("e:\\55-tmp\\xxx.log"); FileReader in = new FileReader(sourceFile); LineNumberReader

关键字volatile有什么含意?

1. 并行设备的硬件寄存器。存储器映射的硬件寄存器通常加volatile,因为寄存器随时可以被外设硬件修改。当声明指向设备寄存器的指针时一定要用volatile,它会告诉编译器不要对存储在这个地 址的数据进行假设,也就是要去相应的内存地址里取。 2. 一个中断服务程序中修改的供其他程序检测的变量。volatile提醒编译器,它后面所定义的变量随时都有可能改变。因此编译后的程序每次需要存储或读取这

【网络安全 | 甲方建设】开发、测试、部署关键词详解

原创文章,不得转载。 文章目录 需求与开发原生需求重构新增服务调用 测试与覆盖率单元测试增量代码单测UT覆盖率CR前覆盖率APP回归测试回归测试自动化冒烟 部署与环境Stable环境部署待部署服务名称代码分支待部署代码分支PR链接灰度发布蓝绿发布Canary发布热修复(Hotfix)Mock环境Redis非Cluster模式Nacos变更 持续集成与交付持续集成(CI)持续交付(C

影响关键词排名稳定的因素有哪些?

网站上线了很久关键词还是没有出现排名,很多站长都非常关心这个问题,为什么我正常优化的网站就是没有排名呢?下面,曾庆平SEO为大家分析一下影响关键词排名的因素有哪些,快看一下自己的网站是不是出现了以下问题。 一、网站内部结构 首先网站一定要充分考虑两个方面,一个是用户,一个就是搜索引擎。 (1)用户喜欢什么样的网站?网站主题是不是够明确?用户在进入网站后如果在几秒内看不懂网站的主题就会退

那么手机网站关键词优化排名该怎样做?

现今移动端流量的增长,这让越来越多的企业逐渐重视起移动端网站的用户流量,做好移动SEO排名优化效果已是刻不容缓的。但移动端网站推广的方式和技巧有很大的差异,如用PC端的优化方式来做手机网站关键词排名,那么这样的移动端网站排名是很难有较大的提升的。那么手机网站关键词优化排名该怎样做? 1、网站的logo PC端的网站首页权重最高的位置就是在左上角,因此我们市场会看到这个位置均放置的为网站logo

java内存模型及volatile关键字

文章目录 一、基本概念二、java内存模型三、volatile关键字 一、基本概念 在并发编程过程中,我们经常会遇到三类问题:原子性问题,可见性问题,有序性问题。下面我们来介绍一下和这些问题相关的三个概念。 1.原子性 也就是执行一个操作,要不全部执行成功,要不执行失败。比如a=0,这个操作就是原子性的,要么赋值成功,要么赋值失败。再比如a++操作,这个操作就不是原子性的,它是三

1. Verilog2. C语言3. 数组4. 关键词5. 模块

### 5.2.4 Verilog 数组 VS C 语言数组 #### Verilog 数组 在 Verilog 语言中,数组通常被称作内存。以下是一个定义的例子: ```verilog (*ram_style = "distributed"*) reg [0:31] MyMem [0:7] ``` 这行代码定义了一个长度为32位,包含7个元素的数组。具体来说: - `r