static关键字总结

static关键字的使用1. static: 静态的2. static 用来修饰的结构:属性、方法; 代码块、内部类;3. static修饰属性3.1 复习:变量的分类方式1:按照数据类型:基本数据类型、引用数据类型方式2:按照类中声明的位置:成员变量:按照是否使用static修饰进行分类:使用static修饰的成员变量:静态变量、类变量不使用static修饰的成员变量:非静态变量、实例变量局部变量:方法内、方法形参、构造器内、构造器形参、代码块内等。3.2 静态变量:类中的属性使用static进行修饰。对比静态变量与实例变量:① 个数>静态变量:在内存空间中只有一份,被类的多个对象所共享。>实例变量:类的每一个实例(或对象)都保存着一份实例变量。② 内存位置>静态变量:jdk6及之前:存放在方法区。 jdk7及之后:存放在堆空间>实例变量:存放在堆空间的对象实体中。③ 加载时机>静态变量:随着类的加载而加载,由于类只会加载一次,所以静态变量也只有一份。>实例变量:随着对象的创建而加载。每个对象拥有一份实例变量。④ 调用者>静态变量:可以被类直接调用,也可以使用对象调用。>实例变量:只能使用对象进行调用。⑤ 判断是否可以调用 ---> 从生命周期的角度解释类变量         实例变量类            yes            no对象          yes            yes类可以调用类变量(静态变量)对象可以调用类变量(静态变量)类不可以调用实际变量对象可以调用实际变量⑥ 消亡时机>静态变量:随着类的卸载而消亡>实例变量:随着对象的消亡而消亡4. static修饰方法:(类方法、静态方法)> 随着类的加载而加载
> 可以通过“类.静态方法”的方式,直接调用静态方法
> 静态方法内可以调用静态的属性或静态的方法。(属性和方法的前缀使用的是当前类,可以省略)不可以调用非静态的结构。(比如:属性、方法)>                     类方法         实例方法类            yes            no对象          yes            yes
> static修饰的方法内,不能使用this和super> 补充:在类的非静态方法中,可以调用当前类中的静态结构(属性、方法)或非静态结构(属性、方法)5. 开发中,什么时候需要将属性声明为静态的?> 判断当前类的多个实例是否能共享此成员变量,且此成员变量的值是相同的。> 开发中,常将一些常量声明是静态的。比如:Math类中的PI什么时候需要将方法声明为静态的?> 方法内操作的变量如果都是静态变量(而非实例变量)的话,则此方法建议声明为静态方法> 开发中,常常将工具类中的方法,声明为静态方法。比如:Arrays类、Math类

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

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

相关文章

第十四届省赛大学B组(C/C++)子串简写

原题链接:子串简写 程序猿圈子里正在流行一种很新的简写方法: 对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。 例如 internationalization 简写成 i18n,Kubernetes 简写成 K8s&#…

Java基础知识总结(37)

JUC容器 JUC基于非阻塞算法(Lock Free 无锁编程)提供了一组高并发的List、Set、Queue、Map容器。 JUC高并发容器是基于非阻塞算法实现的容器类,无锁编程算法主要通过CAS(Compare And Swap)volatile的组合实现&#x…

【SaaS,PaaS? XaaS -微参考】

介绍 以下是关于各种云服务模式的简要介绍,包括全称、定义、典型场景和应用: 缩写全称定义关键词典型场景和应用SaaSSoftware as a Service将软件以服务的形式交付给用户,用户通过互联网访问软件。提供软件电子邮件、在线办公套件&#xff…

JavaAPI操作HBase-Day2

Java代码操作HBase pom依赖,依赖版本要和软件一致 <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.5.5</version></dependency><dependency>…

android 14 apexd分析(1)apexd bootstrap

Apex的由来&#xff0c;我们都知道普通的apk我们可以通过应用商店playstore等进行更新&#xff0c;apex的引入是google希望也能通过playstore更新bin文件.so etc配置文件等类型文件. 这些文件的安装实际通过apexd来进行&#xff0c;现在我们来解析一下apexd&#xff0c; apexd的…

JAVAEE——文件IO之文件操作

文章目录 文件的创建和销毁File概述构造方法常用的方法getAbsolutePath()exists()isDirectory()isFile()createNewFile()delete()deleteOnExit()list()listFiles()mkdir() 文件的创建和销毁 上面我们介绍了文件的读写操作那么文件的创建等的操作如何进行呢&#xff1f;这个操作…

.NET 设计模式—简单工厂(Simple Factory Pattern)

简介 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;属于类的创建型模式&#xff0c;又叫静态工厂方法模式&#xff08;Static FactoryMethod Pattern&#xff09;,是通过一个工厂类来创建对象&#xff0c;根据不同的参数或条件返回相应的对象实例。这种模式隐藏…

前视声呐目标识别定位(四)-代码解析之启动识别模块

前视声呐目标识别定位&#xff08;一&#xff09;-基础知识 前视声呐目标识别定位&#xff08;二&#xff09;-目标识别定位模块 前视声呐目标识别定位&#xff08;三&#xff09;-部署至机器人 前视声呐目标识别定位&#xff08;四&#xff09;-代码解析之启动识别模块 …

C语言之分支语句和循环语句

前言 一、什么是语句&#xff1f; 二、分支语句&#xff08;选择结构&#xff09; 2.1 if语句 2.2 switch语句 三、循环语句 3.1 while循环 3.2 break与continue语句 3.3 getchar()与putchar() 3.3.1 缓冲区 3.4 for循环 3.4.1 一些for循环的变种 3.5 do...while循…

AcWing 785. 快速排序——算法基础课题解

AcWing 785. 快速排序 文章目录 题目描述CGo模板 题目描述 给定你一个长度为 n 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&#xff08;所有…

C语言中的结构体:高级特性与扩展应用

前言 结构体在C语言中的应用不仅限于基本的定义和使用&#xff0c;还包含一些高级特性和扩展应用&#xff0c;这些特性和应用使得结构体在编程中发挥着更加重要的作用。 一、位字段&#xff08;Bit-fields&#xff09; 在结构体中&#xff0c;我们可以使用位字段来定义成员…

AJAX —— 学习(二)

目录 一、利用 JSON 字符串 返回数据 &#xff08;一&#xff09;基础代码 &#xff08;二&#xff09;原理及实现 二、nodmon 工具 自动重启服务 &#xff08;一&#xff09;用途 &#xff08;二&#xff09;下载 &#xff08;三&#xff09;使用 三、IE 缓存问题 &a…

QA测试开发工程师面试题满分问答8: mysql数据库的索引定义、用途和使用场景

MySQL数据库索引是一种数据结构&#xff0c;用于提高数据库的查询效率。索引是基于表中的一个或多个列构建的&#xff0c;它们允许数据库系统快速定位和访问表中的特定数据&#xff0c;而无需扫描整个表。 索引的定义 在MySQL中&#xff0c;可以使用CREATE INDEX语句定义索引…

pulsar集群部署流程及方案

# 部署方案: 集群模式部署,broker和bookie混合部署,zk同时部署在三台机器上面(资源充足zk最好单独部署,注意pulsar和zk版本兼容性) # 1.集群资源使用(实际测试情况CPU使用率比内存高,建议CPU设置大于内存,不同业务场景有差异) 三台主机centos7 16核16GB,每台挂载1TB机械硬盘(不…

Linux:进程终止和等待

一、进程终止 main函数的返回值也叫做进程的退出码&#xff0c;一般0表示成功&#xff0c;非零表示失败。我们也可以用不同的数字来表示不同失败的原因。 echo $?//打印最近一次进程执行的退出码 而作为程序猿&#xff0c;我们更需要知道的是错误码所代表的错误信息&#x…

MongoDB聚合运算符:$lte

文章目录 语法举例 $lte聚合运算符用于比较两个值&#xff0c;如果第一个小于等于第二个&#xff0c;返回true&#xff1b;如果第一个值大于第二个值&#xff0c;返回false。 语法 { $lte: [ <expression1>, <expression2> ] }$lte可以用来比较任何类型的值&…

嵌入式算法开发系列之卡尔曼滤波算法

卡尔曼滤波算法 文章目录 卡尔曼滤波算法前言一、卡尔曼滤波算法原理二、算法应用三、C语言实现总结 前言 在嵌入式系统中&#xff0c;传感器数据通常受到噪声、误差和不确定性的影响&#xff0c;因此需要一种有效的方法来估计系统的状态。卡尔曼滤波算法是一种基于概率理论的…

网络安全系统之——PKI体系

一、公钥基础设施 公钥基础设施 PKI&#xff08;Public Key Infrastructure&#xff09;是通过使用公钥技术和数据证书来提供信息系统安全服务&#xff0c;并负责验证数字证书持有者身份的一种体系。PKI 基础设施采用证书管理公钥&#xff0c;通过第三方可信任认证中心&#xf…

【信号与系统 - 2】傅里叶变换与反变换

1 傅里叶变换与频谱密度函数 非周期信号可以看成是 T → ∞ T\to{\infty} T→∞ 的周期信号 由于 w ↓ 2 π T ↑ w\downarrow\frac{2\pi}{T\uparrow} w↓T↑2π​&#xff0c; T T T 无限大&#xff0c;则基波频率 w w w 无限小&#xff0c;可以视为 d w dw dw 在频谱图…

RL — 强化学习算法概述

目录 一、说明二、无模型算法三、基于模型的 RL四、价值学习五、策略梯度5.1 强度:5.2 局限性5.3 蒙特卡洛政策梯度六、TRPO公司七、行动者兼评论家八、基于模型的 RL一、说明 我们在本系列中研究了许多强化学习 (RL) 算法,例如,用于 MoJoCo 任务的策略梯度方法、用于 At…