一、访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。

默认的,也称为 default,在同一包内可见,不使用任何修饰符。

私有的,以 private 修饰符指定,在同一类内可见。

共有的,以 public 修饰符指定,对所有类可见。

受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。

二、非访问修饰符

为了实现一些其他的功能,Java 也提供了许多非访问修饰符。

static 修饰符,用来创建类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法。

synchronized 和 volatile 修饰符,主要用于线程的编程。

abstract 修饰符

-----------------------------------------------------------具体说说abstract修饰符

抽象类:

抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。

一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

抽象类可以包含抽象方法和非抽象方法。

抽象方法

抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。

抽象方法不能被声明成 final 和 static。

----------------------------------------------------------------------------------------

synchronized 修饰符

synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。

transient 修饰符

序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

volatile 修饰符

volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个 volatile 对象引用可能是 null。

volatile 修饰符的使用实践:

用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。

通常情况下,在一个线程调用 run() 方法(在 Runnable 开启的线程),在另一个线程调用 stop() 方法。 如果 第一行 中缓冲区的 active 值被使用,那么在 第二行 的 active 值为 false 时循环不会停止。

但是以上代码中我们使用了 volatile 修饰 active,所以该循环会停止。

JAVA软件海豚_Java 修饰符相关推荐

  1. java中的访问修饰符

    对Java中的修饰符一直记不住,现在结合网上的一些资料进行总结,并重点说明一下protected修饰符. 一. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口.Java语 ...

  2. java修饰方法有哪些,探讨Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...

  3. Java final修饰符的作用,Java中的final修饰符

    1.什么时候可以选择final修饰符 如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰. 2.用final修饰的类 首先大家要明白,用final修饰的类是不能被继承的, ...

  4. [转载] 基本概念:java中的访问修饰符

    参考链接: Java中类或接口的访问说明符 转自:https://www.cnblogs.com/tjudzj/p/4443066.html 对Java中的修饰符一直记不住,现在结合网上的一些资料进行 ...

  5. Java 四种权限修饰符

    Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...

  6. Java有哪些访问修饰符呢?

    转自: Java有哪些访问修饰符呢? Java语言中访问修饰符用于设置类,变量,方法和构造函数的访问级别. 四个不同的访问修饰符为: 无关键字(不指定修饰符):对包可见,不需要修饰符. private ...

  7. 实际上Java注解与普通修饰符(public、static、void等)的使用方式并没有多大区别

    Java 注解 实际上Java注解与普通修饰符(public.static.void等)的使用方式并没有多大区别 注解的定义 日常开发中新建Java类,我们使用class.interface比较多,而 ...

  8. java中 访问修饰符限制性最高的是,问:JAVA中,访问修饰符限制性最高的是( )。(选择一项)...

    问:JAVA中,访问修饰符限制性最高的是( ).(选择一项) A:friendly,B:protected ,C:private ,D:public 正确答案:绛旓細铻烘棆姊ā寮? 绛旓細鑷富鎬? ...

  9. JAVA访问修饰符限制性最高的_问:JAVA中,访问修饰符限制性最高的是protected ( )...

    问:JAVA中,访问修饰符限制性最高的是protected ( ) A:对,B:错 正确答案: 解析: 问:JAVA中,访问修饰符限制性最高的是protected ( )A:对,B:错 相关问题: 密 ...

最新文章

  1. c mysql 索引_MySQL 多列索引的生效规则
  2. log4j 配置,tomcat 启动或有后台操作时,控制台会显示很多 DEBUG 信息
  3. 2015年第六届蓝桥杯C/C++ A组国赛 —— 第五题:切开字符串
  4. C语言实现面向接口编程
  5. python vars name报错_Python vars()全局名称错误
  6. Insert插入不同的列数量,统计信息对比
  7. jQuery中的$(“this“)和$(this)的区别
  8. java中接口与抽象类的区别
  9. css3中的box-sizing的用法
  10. 前端基础--jquery
  11. 一个喜爱电影的人能利用什么工具?
  12. pip下载安装包默认位置_修改pip 下载模块或软件的默认文件夹
  13. 计算机中开方的符号,开方符号-平方根符号怎么打?平方根符号在word和Excel中怎么打?上面 爱问知识人...
  14. 国内android第三方rom,安卓手机第三方rom大盘点,曾经火到不行,如今几乎全军覆没...
  15. 六年开发者亲测,简单好用的「免费」APP内测托管平台
  16. 小红书html布局自适应,Flutter实现马蜂窝小红书自适应高度轮播图
  17. 2020-09-15,小米笔试,java
  18. 怒江java培训班_Graal VM:微服务时代的Java
  19. Linux登入Oracle数据库修改密码
  20. 什么是时钟周期?什么是机器周期?什么是指令周期?

热门文章

  1. 初识滴滴交易策略之二:司乘匹配
  2. 年薪30万的程序员工作,门槛很低?网友:学3月就能上岗,但超累
  3. python发行版是什么意思_anaconda是什么?-Python教程
  4. ca证书demo与相关问题
  5. GMQ交易所为区块链之下的商业未来做准备
  6. uni-app 如何根据环境自动切换请求的地址
  7. 掌门1对1java面试_2019掌门1对1面试经验(JAVA软件工程师,小学数学教师等)
  8. 如何恢复无法修复的Visual Studio 的破损文件
  9. argument 'indices' must be tuple of Tensors, not Tensor
  10. 百度高德地图poi数据获取-下载