美文网首页
常用关键字

常用关键字

作者: 追逐的梦境 | 来源:发表于2020-06-20 17:38 被阅读0次

final:意思是不可变的

1.修饰类时:表示这个类不可被继承
2.修饰方法时:表示这个方法不可被重写
3.修饰变量时:表示该变量在声明时就必须初始化,而且后面不能修改其内存地址,并没有说不能修改里面的值,比如List,Map中可以修改其中的值。

static:表示为静态 全局 与对象无关 在一定访问可以被共享

1.修改变量时,在类被加载的时候就会初始化,如果该变量时public修饰 表示该静态变量可以被任何类访问,不需要new 对象调用 ,可以直接通过类名.static变量调用即可。
在多线程情况下对共享变量进行读写会存在并发安全问题,比如在类中定义static List<String> list = new ArrayList<String>(); 在多个线程下操作list会出现安全问题。

2.修饰方法时,代表方法与类无关,如果是public修饰的话,可以直接通过类名调用,static方法中的局部变量不会存在线程安全问题,方法在运行时,数据是运行在栈中的,数据是线程独占的,线程之间是隔离的。
3.修饰代码块, 该代码块常用在类启动之前 ,帮我初始化一些值。

volatile:可见的,修饰某个共享变量,当共享变量值被修改了,会通知到其他线程,其他线程就知道共享变量的值被修改了。

原理:当一个线程修改了共享变量的值,修改的是内存中的值,但是线程在拿值时是和CPU缓存打交道, 线程修改的是内存中的值,此时内存中的值和CPU缓存的值不一致,volatile就会触发一种机制,内存会通知CPU缓存,共享变量值被修改了 ,CPU缓存的值已经失效了,CPU缓存从内存中重新拿取新的数据。此时每个CPU缓存都存的是共享变量的新值。其他线程从CPU缓存中读取到的值都是修改之后的值。

如图:


volatile原理

transient:修饰变量,表示该类在序列化的时候,会忽略transient修饰的变量。

default:常用在接口方法上,表示该方法无需子类强制实现,但是该方法在接口中需要有默认实现。

相关文章

  • Kotlin代码实践之关键字与操作符

    关键字 这里的关键字并非仅仅指的是Kotlin定义的编译关键字,还包括内置函数的一些符号(如常用类型,常用操作) ...

  • RF 关键字、变量与循环

    关键字的使用RF的能力是由关键字提供的,所以我们必须对RF的常用关键字有个了解,这样才能把RF用好常用的RF关键字...

  • SQL之模糊查询的四种用法

    MySql 使用 like关键字 进行模糊查询,like关键字 通常用在 where条件查询,like关键字 通常...

  • MySQl 常见面试题

    一、SQL语句 问题、SQL语句有哪些类型,每种类型有哪些常用关键字? DDL:数据定义语句。常用关键字有crea...

  • C++基础入门

    常量的使用 常用编程关键字 变量

  • swift学习笔记 - swift中常用关键字

    swift中常用关键字 **用作声明的关键字: ** class、deinit、enum、extension、fu...

  • swift常用的关键字

    swift常用的关键字 首先我们看上图,我们不难发现extension,@objc等关键字。 extension ...

  • Java入门第一季第二章

    常用关键字。 以上是java中的常用关键字,最低要求眼熟。 标识符 1. 标识符可以由字母、数字、下划线(_)、美...

  • Java中需要知道的关键字

    Java中有一些或常用,或不常用,但却不得不知关键字,本篇文章将讨论这些关键字的作用。 transient tra...

  • 变量与常量

    变量与常量 @(Java学习) 一、关键字 Java语言中具有特殊用途的词称为关键字。 Java中常用的关键字如下...

网友评论

      本文标题:常用关键字

      本文链接:https://www.haomeiwen.com/subject/bukgxktx.html