java foreach多线程_java关键字(一)

本文探讨了Java中的关键概念,包括原子操作、Volatile关键字的作用、Static变量的特点、Final关键字的使用以及Transiet修饰符的意义。此外,还深入解析了Foreach循环的内部原理,为理解和优化多线程环境下的Java代码提供了宝贵的知识。
摘要由CSDN通过智能技术生成

原子操作

(1)除long和double之外的基本类型的赋值操作过程
(2)引用reference的赋值操作过程
(3)java.concurrent.Atomic.*包中所有类的一切操作
注释:long和double占用8字节64位,32位系统对64位数据的读写分两次完成,每次读取32位;多线程场景下一个进程写低32位,另一个线程写高32位,此时该变量值会出现异常。

Volatile

在多线程环境下的变量,volatile可以保证原子操作的的可见性,无法保证非原子操作的可见性。
原子操作:线程锁定变量所在缓存行,当新的值回写到主存时候,通知其他读取该变量的线程,其所读取的该变量值无效,需要重新从主存中读取。(具体底层实现咱们可以喝个小酒谈论一天~)
非原子操作:在线程锁定所在缓存行之前,其他线程即可更改其值。

Static

(1)修饰类:1.静态内部类可以创建静态成员,非静态内部类不可以;2.静态内部类只能访问外部类的静态成员,非静态内部类都可以访问(这个特性有助于代码测试时候通过静态内部类实现main方法)
(2)修饰变量:变量只会被加载一次
(3)静态块:某些只需要初始化一次的操作放在静态块中static{}
(4)静态导包:import static .../import static ...*,无需用类名点出来或者new出来,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值