关于类的静态变量和非静态变量区别的一个研究例子

【JavaEE基础与高级 第12章】类变量(static静态变量)和实例变量(非静态变量)的区别 一、两种变量的来源 二、类变量(static静态变量) 🔶类变量(static静态变量)的定义格式 ​ 三、实例变量(非静态变量,无static修饰) 🔶 实例变量(非静态变量,无static修饰)的定义格式 四、区别 作者:KJ.JK 文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习............... 阅读详情

例子如下:

    public class testclass
    
{
        
public static  testclass t = new testclass();
        
public static int staticNum = 1;
        
public static int i;
        
public int num = 1;

        
public testclass()
        
{
            Console.WriteLine(
"第{0}次",++i);
            Console.WriteLine(
"staticNum={0}", staticNum);
            Console.WriteLine(
"num={0}", num);
            
            Console.Read();
        }

    }


    
public class StaticTest
    
{
        
public static void Main(String[] args)
        
{
            testclass tt 
= new testclass();
        }

    }

 输出结果如下:

################################################################################

第1次
staticNum=0
num=1

第2次
staticNum=1
num=1

###############################################################################

  这了例子我一时也很难弄明白,了解多少就说多少吧。

  首先看 staticNum=0 这个输出结果。这说明,当生成静态对象t时,静态变量staticNum只是声明而没有初

始化,即没分配内存空间(如果没声明,在调用时就会出现错误而无法通过编译的)。

  不过,如果将 public static int staticNum = 1 放在 public static  testclass t = new

testclass() 之前,如下:

 

        public static int staticNum = 1;
        
public static  testclass t = new testclass();
        
public static int i;
        
public int num = 1;

  则输出结果就变成了:

########################################################################### 

第1次
staticNum=1
num=1

第2次
staticNum=1
num=1

###############################################################################

 这时候的静态变量staticNum就不仅声明而且经过初始化了。

 具体原理可能要涉及到类的编译,等我理清楚了再继续写。

类中静态成员变量和普通变量的区别——实例代码(VS2010) 类中静态成员变量和普通变量的区别——实例代码(VS2010),已测试,没有问题。 立即下载

相关推荐

一口气看完TransformerXL详细解释带代码一:相对位置编码

相对位置编码(Relative Position Encoding)是Transformer模型中用于捕捉序列元素间相对位置关系的一种方法,与绝对位置编码(如BERT中的固定位置嵌入)不同,它直接建模元素之间的相对距离,从而更灵活地处理长序列或不同长度的序列。1. 为什么需要相对位置编码?​。

m0_73426548的博客 1426

对于Java静态成员变量和非静态成员变量的一些学习方法

内存的划分 首先,一个程序在执行的时候,不同的代码会在内存开辟不同的区域. 基本上是: 代码区(code segment):主要存放程序的代码. 数据区(data segment):存放静态成员变量和字符串常量 栈(stack):局部变量 堆(heap):通过new创建出来的对象. heap stack data segment

脚踏实地、方显英雄本色 1108

Vofa+使用笔记(1):用Vofa+通过串口连接显示波形

1. 介绍 Vofa+有三种协议设置 rawdata:你发什么就显示什么,跟普通的串口助手一样 firewater:最简单在VOFA+里绘制波形的协议,建议仅在通道数量不多、发送频率不高的时候使用。 justfloat:有一定的数据格式,此协议非常适合用在通道数量多、发送频率高的时候。 2. 使用步骤 设置号下面三个地方,使用的协议以及传输的方式 拉出控件 (最开始上位机没有识别到你的数据的时候,右边是没有数据显示的,如果你想要y轴显示什么数据,右边设置显示也可以,右键波形图然后Y轴设置也行) 把进

苏释州的博客 5万+

java编程-静态变量/非静态变量

package day04; class Man{ String name; static String country;//静态变量被所有的成员共享,它的值一旦变化,就意味着,所有成员的这个值都变了 public Man(String n,String c) { name = n; country = c; } public void speak() { System...

JiangDong 328

FreeSurfer安装避坑指南:从邮箱选择到环境变量设置的全流程解析

本文详细解析了在Windows系统上安装和配置FreeSurfer神经影像分析工具的全流程避坑指南。重点涵盖WSL2深度配置、软件版本选择、许可邮箱获取策略、环境变量模块化设置以及图形界面调试等关键步骤,帮助用户高效构建稳定的分析环境,避免常见安装陷阱。

weixin_29243063的博客 229

从玩具车到手机充电:手把手带你用Multisim仿真Buck/Boost电路(附工程文件)

本文通过Multisim仿真软件,手把手教你搭建Buck降压电路和Boost升压电路,实现从12V到5V或3.7V到5V的电压转换。文章详细介绍了电路搭建步骤、关键波形观测技巧及常见故障排查方法,并附赠工程文件,帮助电子爱好者快速掌握电源转换技术。

weixin_29159127的博客 242

静态成员变量与非静态成员变量

静态成员变量从属于一个类而非某个具体的对象,它的值被该类的所有对象所共享.对于public的静态成员变量而言,它既可以由类名直接通过 “.” 操作符引用,也可以由对象名通过“.”操作符来引用,并且两者效果相同. 静态成员按照它们在类中声明的顺序进行初始化,并且此过程先于Main函数执行。 非静态成员变量则为独个对象所拥有,而不被各个对象所共享.因此不能用类名来直接引用. 例如:   在内存上的

gdscp的博客 2926

为什么PCB设计中的50Ω阻抗如此重要?从USB到以太网的实战解析

本文深入解析了PCB设计中50Ω特征阻抗的核心重要性及其工程权衡起源。文章从传输线理论出发,阐释了阻抗匹配对防止信号反射、确保信号完整性的关键作用,并对比了USB、以太网等不同应用场景的阻抗标准。同时,文章结合实际案例,剖析了在两层板等简单设计中实现精准阻抗控制的难点与实战解决方案。

weixin_29268385的博客 297

静态变量与非静态变量的区别

静态变量或方法: 就是以static修饰的变量或方法, 如static int count; 它的意义是让系统分配一个静态空间给这个变量count, 那么包含这个变量的类的全部实例就会共用这个变量, 任何一个改变了count都会对其余的实例产生影响, 它是在文件编绎时就被初始化的, 比一切其它non-static 变量都要早; non-static 变量就是: 每一个类实例都有自己的coun

格色情调的博客 7251

fpga学习——zynq图像处理中的DVP流接口封装

之前文章介绍了基于zynq的图像处理架构问题。其中,作为开发者,需要重点关注图像传感器接口、处理算法、显示接口,这些模块。现在我们一同学习用于视频数据接口的DVP模块,并将其封装成AXI-stream接口便于直接和VDMA IP通信。 DVP_AXI stream IP v1.0使用说明 1.设计概述 •用于cmos传感器视频数据采集,将cmos输出的8位视频数据拼接成RGB 565模式 •AXI_stream主机接口,用于和PS端内存的数据交互 •基于vivado 18.3软件设计 2.模块分析

weixin_41895751的博客 4582

用Python搞定超效率SBM模型:从数据清洗到结果可视化全流程指南

本文详细介绍了如何使用Python实现超效率SBM模型,从数据清洗到结果可视化的全流程指南。超效率SBM模型作为传统DEA的进化版本,能有效处理非期望产出(如环境污染)并对高效单元进行精细排序。通过实战案例和代码示例,帮助读者掌握这一先进模型的Python实现技巧,提升效率评估的准确性和可视化效果。

silver的专栏 650

Java基础知识面试题(2020最新版)

Java概述 何为编程 什么是Java jdk1.5之后的三大版本 JVM、JRE和JDK的关系 什么是跨平台性?原理是什么 Java语言有哪些特点 什么是字节码?采用字节码的最大好处是什么 什么是Java程序的主类?应用程序和小程序的主类有何不同? Java应用程序与小程序之间有那些差别? Java和C++的区别 Oracle JDK 和 OpenJDK 的对比 基础语法 数据类型 Java有哪些数据类型 switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

菇凉,不骄不躁 4383

无人机——电机篇(一)

1. 电机的定义 电机俗称“马达”,是无人机的动力来源,无人机通过改变电机的转速来改变无人机的飞行状态。即改变每个电机的速度,使得无人机能够盘旋空中,上升或下降,或向各个方向移动。2. 电机的分类 电机分为:“无刷电机”和“有刷电机” - 无刷电机:是采用半导体开关器件来实现电子换向,具有可靠性高、低干扰、低噪声低、寿命长等优点。一般应用在稍大型的飞行器,载重大,可以有更广泛的用途。 - 有刷电机:是内含电刷装置的将电能转换成机械能(电动机)或将机械能转换成电能(发电机)的旋转电机。有刷电机是所有电机的基

weixin_46066938的博客 1万+

静态变量和非静态变量的区别

静态变量和非静态变量的区别: 非静态变量可以有局部变量和全局变量 静态变量实际上就是指在内存中的地址是静态不变的。 1、内存分配:局部变量存储在堆区或者栈区,静态变量和全局变量一样存储在全局区, 静态变量在应用程序初始化时,就存在于内存当中,直到它所在的类的程序运行结束时才消亡; 而非静态变量需要被实例化后才会分配内存。 2、生命周期:静态变量和全局变量存在于整个应用程序存在的周期,而

wangxiaokang1_1的专栏 1805

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

成员变量、类变量和静态变量三者的区别

实例变量(成员变量) 在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。 当一个对象被实例化之后,每个实例变量的值就跟着确定; 实例变量在对象创建的时候创建,在对象被销毁的时候销毁; 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息; 实例变量可以声明在使用前或者使用后; 访问修饰符可以修饰...

知行合一^_^的博客 7142

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

静态变量(类变量)和非静态变量(成员变量、实例变量)的区别

由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。 不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量,也就是说对象共享类变量。 成员变量和类变量的区别: 1、两个变量的生命周期不同 成员变量随着对象的创建而存在,随着对象的回收而释放。 ...

zhsworld的博客 2552

WINCC7.3破解文件

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

asp.net中静态变量和非静态变量的区别

静态变量: 静态变量使用 static 修饰符进行声明 在所属类被装载时创建 通过类进行访问 所属类的所有实例的同一静态变量都是同一个值 非静态变量: 不带有 static 修饰符声明的变量称做非静态变量 在类被实例化时创建 通过对象进行访问 同一个类的不同实例的同一非静态变量可以是不同的值 示例: [复制到剪贴板]CODE: using System; us

u011877729的专栏 689

Java中静态属性和非静态属性有什么区别?

一、什么是静态属性和非静态属性? 静态属性是指被static修饰符修饰的类、方法、变量或代码块等。 非静态属性是指没有被static修饰的。 二、静态属性和非静态属性的特点是什么? 静态属性特点: 1. 一声明就被存储在栈中,直接占据内存,可以快速稳定的调用。 2. 生命周期长,从jvm加载开始到jvm加载结束。 ...

weixin_42518042的博客 1万+

完全理解Java中静态代码块,静态方法,静态变量,非静态代码块,非静态变量,构造函数初始化顺序

一、定义 1、静态代码块(静态初始化块,静态域): 使用static关键字和{}声明的代码块,格式如下: public class People{ static{ System.out.println("静态代码块"); } } 作用: 需要在项目启动时就执行的代码,一般放在静态代码块中。比如一个项目启动时需要加载大量的配置文件,静态资源等信息。并且静态代码块指初始化一...

JSai的博客 5001

1.静态变量和非静态变量的区别?

<br />1.静态变量和非静态变量的区别?<br />2.const 和 static readonly 区别?<br />3.extern 是什么意思?<br />4.abstract 是什么意思?<br />5.internal 修饰符起什么作用?<br />6.sealed 修饰符是干什么的?<br />7.override 和 overload 的区别?<br />8.什么是索引指示器?<br />9.new 修饰符是起什么作用?<br />10.this 关键字的含义?<br />11. 可以使

fanxiaoling2013的专栏 1134

为什么静态方法内部不能调用非静态变量

通过本文可理解静态变量、静态方法的含义,可以知道为什么静态方法内部不能调用非静态变量

u010814949的博客 2950

c#静态变量和非静态变量的区别

c#静态变量和非静态变量的区别   静态变量的类型说明符是static。静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 详解: 一,静态资源在首次访问时会调用静态构造器创建类类型对象(静态属于类,动态属于对象,静态被静态构造器创建,...

gansilian的专栏 489

静态变量和非静态(实例)变量的区别

静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。 实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。

tx16bing的专栏 2367

java 静态变量和非静态_Java中静态和非静态变量之间的区别

变量为我们提供了程序可以操纵的命名存储。Java中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。可以存储在该内存中的值的范围;以及可以应用于该变量的一组操作。静态变量静态变量也称为类变量,在类的对象之间通用,并且也可以使用类名来访问此变量。非静态变量非静态类的任何变量称为非静态变量或实例变量。以下是静态变量和非静态变量之间的重要区别。序号键静态的非静态1个访问A static va...

weixin_42307002的博客 1145
上一篇: 对委托内部机制的研究(补完篇)
下一篇: 头疼的“事件”
Anckly
博客等级 码龄20年 6粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值