Static用法

C语言中static的用法与总结 详细介绍和总结说明static关键字的用法。 阅读详情
→静态:static
用法:是一个修饰符,用于修饰成员(成员变量,成员函数)
class Person
{
    String country = "cn";
}
/*每实例化一个Person对象,每个对象在堆内存中都有一个country
而加上static以后,就只在内存总存在一个静态的country被其他的对象直接调用,可以节省内存空间。
当成员被静态修饰以后,除了可以被对象调用外,还可以直接被类名调用。*/
特有内容随着对象存储
比如person类,每个中国人都有自己的名字,而国籍都是一样的中国,所以contry可以定义为static而name不用。




→static特点
1、随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2、优先于对象存在
3、被所有对象所共享
4、可以直接被类名调用
   
→int age(成员变量)实例变量和 static int age(静态成员变量)类变量的区别
1、存放为着
实例变量是随着对象的创建而存在堆内存中
类变量随着类的加载而存在于方法区中
2、生命周期
实例变量随着对象的消失而消失
类变量生命周期最长,随着类的消失而消失


→静态使用注意事项
1、静态方法只能访问静态成员
2、静态方法中不可以定义this,super关键字
因为静态优先于对象存在,所以静态方法中不可以出现this
3、主函数是静态的


→静态的好处和坏处
好处:对对象的数据进行单独空间的存储,节省空间,没有必要每个对象中的存储一份
          可以直接被类名调用(Person.country)
坏处:生命周期过长。
          访问出现局限性。(只能访问静态)


→什么时候使用静态呢?


要从两个方面入手
因为静态修饰的内容有成员变量和成员方法(函数)


什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰
对象中的特有数据要定义成非静态存在于堆内存中。


什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。




→静态的应用


每一个应用程序都有共性的功能
可以将这些功能进行抽取,独立封装
以便复用。
把成员方法都定义成static的直接用类名调用。


一个类中会有一个默认的构造函数,这个构造函数的权限和所属的类一致
静态代码块
格式:
static
{
    静态代码块中的执行语句;
}
//特点:随着类的加载而执行,只执行一次。用于给类进行初始化。


如下例子:
class StaticCode
{
    static 
    {
        System,out.println("a");
    }
}


加载顺序 静态代码块-->构造代码块-->构造函数


对象的初始化过程
Person p = new Person("zhangsan",20);
1、因为new用到了Person.class。所以会先找到Person.class文件并加载到内存中。
2、执行该类中的static代码块(静态代码块),如果有的话,给Person.class类进行初始化
3、在堆内存中开辟空间,非配内存地址
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显示初始化
6、对对象进行构造代码块初始化
7、对对象进行对应的构造函数初始化
8、将内存地址付给栈内存中的p变量
STM32H743内存告急?手把手教你用CubeMX+FMC外扩32MB SDRAM(W9825G6KH-6) 本文详细介绍了如何在STM32H743上使用CubeMX和FMC外扩32MB SDRAM(W9825G6KH-6),解决内存不足问题。从硬件选型、CubeMX配置到初始化代码实现,提供完整的配置教程和性能优化技巧,帮助开发者高效扩展内存,适用于图形界面和复杂算法处理。 阅读详情

相关推荐

Anomalib实战:从零开始构建自定义数据集的异常检测模型

本文详细介绍了如何使用Anomalib 2.1.0从零开始构建自定义数据集的异常检测模型。通过实战演示,指导读者准备符合规范的数据集结构,快速上手训练Patchcore等先进算法,并完成模型推理与调优,为工业质检、医疗影像等场景提供高效的视觉异常检测解决方案。

weixin_29165465的博客 109

Static的特点

静态:static。 是一个修饰符,用于修饰成员(成员变量,成员函数),当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外, 还可以直接被类名调用。类名.静态成员。 static关键字的特点: 1,随着类的加载而加载。 也就说:静态会随着类的消失而消失。说明它的生命周期最长。 2,优先于的对象存在,明确一点:静态是先存在。对象是后存在的。 3,被所有对象所共享 4,可以直接被类名所调用。 静态使用注意事项: 1,静态方法只能访问静态成员。非静态方法既可以访问静态也可以访问非静态。 2,静态方法中不

weixin_45731154的博客 1890

快手极速版抓包实战:安卓/iOS双端获取client_salt全流程解析(避坑指南)

本文详细解析了在安卓和iOS平台上获取快手极速版关键参数`client_salt`的全流程,包括环境配置、抓包工具使用、参数识别与转换等实战技巧。特别针对双端差异和反抓包机制提供了避坑指南,帮助开发者高效安全地完成数据获取任务。

weixin_29021195的博客 714

Static(静态)关键字总结

Static(静态)关键字 一、static关键字特点 1. static是个修饰符,用于修饰成员(成员变量和成员函数) 2. Static修饰的成员被所有的对象所共享 3. Static 优先于对象存在,因为static成员随着类的加载就已经存在了 4. Static修饰的成员多了一种调用方式,可以直接被类名所调用,调用格式类名.静态成员 5. Static修饰的数据是共享数据,对象

jffhy2017的博客 1271

SV--对象拷贝、参数化的类

对象拷贝,参数化的类

创芯人--fly的博客 1570

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战)

本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发。

rose2的博客 557

static关键字

一,static关键字的特点 1、static是一个修饰符,用于修饰成员。(成员变量,成员函数)static修饰的成员变量 称之为静态变量或类变量。 2、static修饰的成员被所有的对象共享。 3、static优先于对象存在,因为static的成员随着类的加载就已经存在。 4、static修饰的成员多了一种调用方式,可以直接被类名所调用,(类名.静态成员)。 5、static修饰的数据是共享数据...

weixin_43999048的博客 390

ReportStudio入门教程(四十一) - 固定报表列宽

我们继续上一篇博客,让他看起来

什么是江湖? 3518

static(静态)关键字的特点和用法

→静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数) class Person { String country = "cn"; } /*每实例化一个Person对象,每个对象在堆内存中都有一个country 而加上static以后,就只在内存总存在一个静态的country被其他的对象直接调用,可以节省内存空间。 当成员被静态修饰以后,除了可以被...

weixin_30483013的博客 287

汽车TSN时间敏感网络测试技术与探索系列讲座4 -TSN802.1AS同步要求及验证方法

TSN网络各设备类型同步性能要求是什么?各类设备的测试组网及测试内容。也将通过演示来展示相关测试结果,及如何解决上述的测试关注点。

weixin_43903833的博客 761

在RStudio中使用GitHub Copilot:代码自动生成,从此告别手敲!

可以通过自定义提示词来引导Copilot生成符合自己需求的代码。再看一个做统计分析的。

Codewar的博客 333

Static关键字

一般情况下,我们想调用某一个对象的方法时,需要new一个对象,但是有有时希望在不创建对象的情况下,通过类名就可以直接调用某个方法,要实现这样的效果,只需要在成员方法前加上static关键字,使用static关键字修饰的方法通常称为静态方法。在 static 方法内部只能访问类的 static 修饰的属性或方法,不能访问类的非 static 的结。设置学校为静态变量,让所有对象共享,一旦需要对学校进行改动,就只需要带动这个静态变量即可。1、被类的所有实例所共享,就用 static 修饰即可,称为类变量。

2301_80768157的博客 653

项目篇:移动平台机械臂视觉定位抓取实施(基于ROS架构)

ROS包内容: 这篇日志的目的是快速项目实施,所以详细的部分会不断补充。 1、相机采集包(创建抓取图像服务,单张) Realsense Camera(微软深度摄像头,官方提供ros包) Pylon Camera(basler相机,官方提供ros包) 2、定位算法包(抓取图像,定位标志物) Aruco_ros (二维码定位,官方提供ros包) Apriltag (二维码定位,官方提供ros包)...

南北粉面馆 6049

Java中static的用法

        在Java中,有一个使用频率非常高的关键字——static,那么大家知道它的用法吗?下面我们一起来了解一下它吧。 1、static的用法:         static可以用来修饰成员变量、成员方法以及代码块等,被static关键字修饰的成员都会具备一些特殊属性。 2、static修饰成员变量:         被static修饰的成员变量叫做静态变量。静态变量具有以下两个...

LIAO_7053的博客 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java中static的用法

java中static关键字的用法和注意事项 1.static的作用范围及用法 2.static 的应用—单例模式 3.static注意事项总结

虽然但是 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

c语言static的用法_C语言关键字 static 的用法

接上文:C语言的32个关键字C语言 static 关键字的常见用法有三种:用于局部变量的修饰符;用于全局变量的修饰符;用于函数的修饰符。1、用于局部变量的修饰符当 static 用于修饰局部变量时,通常是在某个函数体内,只能在该函数内被调用。这样定义的变量通常被称为局部静态变量,它的值不会因为函数调用的结束而被清除,当函数再次被调用时,它的值是上一次调用结束后的值。如下面这段代码所示,变量 x 是...

weixin_35756130的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

static类成员和static变量用法

adfasdf

u014640201的专栏 443

C# static的用法详解

C# static用法详解

种一抹馨香的博客 291

C++学习:static关键字的作用和用法

四大作用 作用1:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 作用2:保持变量内容的持久。(static变量中的记忆功能和全局生存期)存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static...

Lingyun 854

C语言中static、const、typedef的用法

一、static关键字 1、定义: 实际开发中,我们通常将不需要被其他模块调用的全局变量或函数用 static 关键字来修饰,static 能够将全局变量和函数的作用域限制在当前文件中,在其他文件中无效。下面我们通过一个实例来演示。 module.c 源码: main.c 源码: 运行结果: http://c.biancheng.net n = 100 2、static 局部变量 static 除了可以修饰全局...

一只特立独行的zhu.. 1232

const和static的一些用法

qq_31598345的博客 277

static用法总结

qq_43808700的博客 157

c++中static的用法详解

c++中static的用法详解

四个程序员的博客 197

static在 C++ 中的四种用法

但是注意,静态成员函数无法访问类的非静态成员变量,因为这些变量是与类的实例关联的,而静态成员函数不属于任何具体的类的实例。这个版本的 std::thread 的构造函数会保存 this 指针,并在新的线程中用它来调用成员函数 bar。在这种情况下,我们不能直接传递一个非静态成员函数,因为非静态成员函数需要一个隐含的 this 指针,而我们在创建线程的时候不能提供这个 this 指针。因为非静态成员函数在调用时需要一个对象的上下文,而全局的函数无法提供这样的上下文。即使函数结束,静态局部变量的值也会保留。

qq_35662333的博客 1647

static的用法

1.static修饰普通变量 static修饰全局变量: 1.作用域:改变链接属性,只在本文件有效,即使extern外部声明也不行,其他文件可定义相同名字的变量 2.初始化:只能被初始化一次,如果是整型不初始化就会自动赋值为0,字符型初始化为空 3.存储区:静态存储区没变 static修饰局部变量: 1.作用域:改变链接属性,生命周期在整个文件有效,但是出了其作用域便不可再用,因此作用...

baidu_37964044的博客 5920

static关键字的用法与作用

在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们先来了解一下static关键字及其用法。 总结(个人觉得概括的很不错的,所以转载了。) static是java中非常重要的一个关键字,而且它的用法也很丰富,主要有四种用法: 用来修饰成员变量,将其变为类的成员,...

从放弃到开始 2万+
上一篇: 数据结构-并查集
下一篇: 反射--进阶理解
ProsperousSun
博客等级 码龄10年 4粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值