volatile、native、synchronized


1、volatile

        用volatile修饰的成员变量称为易失变量,通常这个变量同时被几个线程控制和修改,也就是说,这个成员变量不仅被当前程序所掌握,在运行过程中可能存在其他未知的程序操作来影响和改变该变量的取值。通常volatile用来修饰接收外部输入的变量。如表示当前的时间变量,由系统后台线程随时修改,以确保程序中总能取到最新的系统时间,可以把它定义为易失变量。

 

 

2、native

        用native修饰的是一种特殊的方法,一般用来声明用其他语言编写的方法体并具体实现方法功能。由于native的方法使用其他语言在外部编写,因此native方法没有方法体,而使用一个“;”代替。在Java语言中采用其他语言编写的模块作为类方法可以充分利用已有的程序功能模块,避免重复工作和提高程序的安全性、准确性。要注意的是,native方法模块中是以非字节码形式嵌入到Java程序之中,而这种二进制代码只能运行在编译生成它的平台上,所以Java的跨平台将受到破坏,除非native引入代码也具有跨平台性,因此使用这类方法要小心。

 

3、synchronized

        如果使用synchronized修饰一个类方法,那么在调用执行前,将把系统类中对应的当前类对象加锁。如果用synchronized修饰一个对象方法,那么在调用执行前,将把当前对象加锁。

        synchronized主要用于多线程共存的程序中线程的协调与同步。


(来自《Java程序设计实用教程》)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值