Java 修饰符关键字

news2024/11/24 9:36:15

💟这里是CS大白话专场,让枯燥的学习变得有趣!

💟没有对象不要怕,我们new一个出来,每天对ta说不尽情话!

💟好记性不如烂键盘,自己总结不如收藏别人!

static 

💌 static 表示静态,可以修饰成员方法(静态方法)成员变量(静态变量)

静态变量

🍠 特点:被该类所有对象共享

🍠 调用方式:类名调用、对象名调用。

P.S. 当用类名调用的时候,静态变量是优先于对象存在的,随着类的加载而加载到堆内存的静态存储区。

静态方法

🍠 特点:多用在测试类和工具类中。

🍠 调用方式:类名调用、对象名调用。

P.S. 静态方法只能访问静态变量和静态方法,没有 this 关键字。

final

💌 final 修饰方法为最终方法,不能被重写;修饰为最终类,不能被继承;修饰变量为常量,只能被赋值一次,若变量为基本类型数值不能改变,若变量为引用类型地址值不能改变,内部属性可以改变。

volatile

💌 volatile 主要作用:实现并发编程下共享变量的可见性,禁止指令重排,不能保证原子性操作,也不能保证多线程安全。

重排序:为了提高性能,编译器和处理器常常会对既定的代码执行顺序进行指令重排序。原因:一个好的内存模型实际上会放松对处理器和编译器规则的束缚,也就是说软件技术和硬件技术都为同一个目标而进行奋斗:在不改变程序执行结果的前提下,尽可能提高执行效率。JMM 对底层尽量减少约束,使其能够发挥自身优势。因此,在执行程序时,为了提高性能,编译器和处理器常常会对指令进行重排序。一般重排序可以分为如下三种:
🍠 编译器优化的重排序:编译器在不改变单线程程序语义的前提下,重新安排语句的执行顺序;
🍠 指令级并行的重排序:现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序;
🍠 内存系统的重排序:由于处理器使用缓存和读/写缓冲区,这使得加载和存储操作看上去可能是在乱序执行的。

变量被 volatile 修饰后,编译器会保证每次访问该变量时都从内存中读取最新值,并且将该变量的修改立即写入到内存中。这样可以保证多个线程同时访问该变量时能够看到正确的值。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/579513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图神经网络】手把手带你快速上手OpenHGNN

手把手带你快速上手OpenHGNN 1. 评估新的数据集1.1 如何构建一个新的数据集 2. 使用一个新的模型2.1 如何构建一个新模型 3. 应用到一个新场景3.1 如何构建一个新任务3.2 如何构建一个新的trainerflow 内容来源 1. 评估新的数据集 如果需要,可以指定自己的数据集。…

【ROS】服务通信、话题通信的应用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 服务通信、话题通信的应用 0. 话题发布1.话题订阅2.服务调用3.话题通信与服务通信的比较 本章将来学习如何利用话题通信,服务…

【软件分析/静态分析】学习笔记02——中间表示Intermediate Representation

🔗 课程链接:李樾老师和谭天老师的:南京大学《软件分析》课程02(Intermediate Representation)_哔哩哔哩_bilibili 目录 第二章 Intermediate Representation 2.1 编译器与静态分析器的关系(Compilers & Static …

SpringCloudAlibaba(简介及核心组件使用)

微服务架构常见的问题 一旦采用微服务系统架构,就势必会遇到这样几个问题: 这么多小服务,如何管理他们?服务发现/服务注册---》注册中心 这么多小服务,他们之间如何通讯?Feign -> 基于 http 的微服务调…

使用【Python+Appium】实现自动化测试

一、环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境,path添加E:\Software\Android_SDK\platform-tools 4.安装Appium for windows,官网地址 Redirecting 点击下载按钮会到GitHub的…

使用golang 基于 OpenAI Embedding + qdrant 实现k8s本地知识库

使用golang 基于 OpenAI Embedding qdrant 实现k8s本地知识库 文章博客地址:套路猿-使用golang 基于 OpenAI Embedding qdrant 实现k8s本地知识库 流程 将数据集 通过 openai embedding 得到向量组装payload,存入 qdrant用户进行问题搜索,通过 openai embedding 得到向量,从…

“Jmeter WebSocket协议压测”,助你轻松应对高并发场景!

目录 引言 背景说明 步骤1:安装插件JMeter WebSocket Samplers 步骤2:采集器使用 步骤3:脚本执行 结语 引言 在当今高并发的网络环境下,WebSocket协议已经成为了最受欢迎的实时通信技术之一。然而,对于开发人员来…

CorelDRAW2023序列号及下载安装条件

始于1989年并不断推陈出新,致力为设计工作者提供更高效的设计工具!CorelDRAW滋养并见证了一代设计师的成长!在最短的时间内交付作品,CorelDRAW的智能高效会让你一见钟情!CorelDRAW 全称“CorelDRAW Graphics Suite“,也…

Linux:命令tar、zip、unzip对文件或文件夹进行压缩与解压

Linux:命令tar、zip、unzip对文件或文件夹进行压缩与解压 .tar压缩操作: 创建要进行压缩的文件: 对文件进行压缩: 将三个文件压缩成text.tar文件,压缩到当前路径下(默认也是在当前路径) 对比体积: 发现&…

关于f-stack转发框架的几点分析思考

使用DPDK收包,想要用到TCP协议栈,可选的方案有linux原生的tun/tap口以及DPDK自带的KNI驱动,这两种都是通过将DPDK收到的报文注入到linux内核来使用TCP协议栈的功能,然后,用户态协议栈可以考虑开源的f-stack&#xff0c…

在页面使用富文本编译器

富文本编译器的选择 Editor.mdTinyMCESimpleMDECKEditor 还有一些,这里讲的是我用的TinyMCE 1、下载 下载地址:下载tiny | TinyMCE中文文档中文手册 下载开发版本,我下载的最新版 tinymce_6.4.2_dev.zip 将压缩包解压后可以看到下面目录&…

(哈希表 ) 202. 快乐数——【Leetcode每日一题】

❓202. 快乐数 难度:简单 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到…

Groovy系列一 Groovy基础语法

目录 为什么要学习Groovy Groovy 介绍 Groovy 特点 Groovy 实战 动态类型 简单明了的list,map类型 在groovy世界任何东西都是对象 属性操作变得更容易 GString 闭包 委派:delegate Switch变得更简洁 元编程 强制类型检查 Elvis Operator 安全访问 为…

【五】设计模式~~~创建型模式~~~单例模式(Java)

【学习难度:★☆☆☆☆,使用频率:★★★★☆】 5.1. 模式动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一…

一波三折,终于找到 src 漏洞挖掘的方法了【建议收藏】

0x01 信息收集 1、Google Hack 实用语法 迅速查找信息泄露、管理后台暴露等漏洞语法,例如: filetype:txt 登录 filetype:xls 登录 filetype:doc 登录 intitle:后台管理 intitle:login intitle:后台管理 inurl:admin intitle:index of /查找指定网站&…

C++:征服C指针:指针(二)

指针二 1. 指向数组的指针2. 多维数组三级目录 上一篇文章我们介绍了:什么是指针,指针常见的问题,本篇我们主要介绍 :指针与数组。 1. 指向数组的指针 int *p[n] : 指针数组, 它包括 n 个成员,每个成员都是…

探索Maven创建项目全过程(超详细~~~)

文章目录 1.Maven介绍2.Servlet介绍2.1 Servlet定义2.2 Servlet的主要任务 3.创建Servlet程序步骤3.1 创建项目3.2 引入依赖3.3 创建目录3.4编写代码3.5 打包程序3.6 部署程序3.7 验证结果 4.更方便的部署方式4.1.下载Tomcat插件4.2 配置Tomcat插件4.3运行项目 1.Maven介绍 Ma…

认识Tomcat

hi,大家好,今天为大家带来Tomcat的相关知识 🍭1.Tomcat是什么 🍭2.Tomcat的下载安装 🍭3.Tomcat的目录结构 🍭4.启动Tomcat 🍭5.部署博客系统到Tomcat 🍉1.Tomcat是什么 我们之前也已经学了http,http…

【JAVAWEB】HTML的常见标签

目录 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 注释标签 标题标签:h1-h6 段落标签:p 换行标签:br 格式化标签 图片标签 超链接标签:a 表格标签 列表标签 表单标…

Windows 同时安装 MySQL5 和 MySQL8 版本

👏作者简介:大家好,我是Rockey,不知名企业的不知名开发着 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝联系方式:he18339193956,…