首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈static a={0};中static作用

我们又知道,static int a;表示在全局区为变量a分配内存,同理我们在数组前面加上static之后,系统也为该数组在全局区分配内存,全局区总内存比较大,一般会满足我们需求。...如题:当n*m比较大时,这就是为什么static a[n*m]={0};必须带着static原因了。 静态分配,有两种情况: 1....方法内部静态变量: 方法内部静态变量,执行完静态变量值不消失,再次执行此对象方法时,值仍存在, 它不是在栈中分配,是在静态区分析, 这是与局部变量最大区别; 1.static意思是静态,可以修饰类...、字段、属性、方法 2.标记为static就不用创建实例对象调用了,可以通过类名直接点出来 3.static三种用法: 4.用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量值为程序这次运行最后一次为变量赋值时值...(参数,下面同)) { ~~~~(方法内容,下面同) } static void s(....) { ~~~~ } } 7.当你在其他方法里调用这个类中方法s,则不用先声明这个类变量如直接调用方法:

63010

static有什么作用

关键字static作用是什么 全局静态变量 在全局变量前加上关键字static,全局变量就定义成一个全局静态变量. 存储在内存中位置:静态存储区,在整个程序运行期间一直存在。...初始化:未经初始化全局静态变量会被自动初始化为0(自动对象值是任意,除非他被显式初始化); 作用域:全局静态变量在声明他文件之外是不可见,准确地说是从定义之处开始,到文件结尾。...内存中位置:静态存储区 初始化:未经初始化全局静态变量会被自动初始化为0(自动对象值是任意,除非他被显式初始化); 作用域:作用域仍为局部作用域,当定义它函数或者语句块结束时候,作用域结束。...但是当局部静态变量离开作用域后,并没有销毁,而是仍然驻留在内存当中,只不过我们不能再对它进行访问,直到该函数再次被调用,并且值不变; 静态函数 在函数返回类型前加static,函数就定义为静态函数。...函数实现使用static修饰,那么这个函数只可在本cpp内使用,不会同其他cpp中同名函数引起冲突; warning:不要再头文件中声明static全局函数,不要在cpp内声明非static全局函数

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

java中static关键字作用_java中static关键字作用

大家好,又见面了,我是你们朋友全栈君。 java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一存储空间,而与创建对象个数无关。...static修饰成员方法:该方法属于类方法,可以通过 ClassName.methodName 直接引用,而不需要new出类实例。...static修饰内部类:static不能修饰普通类,只能修饰内部类,被static修饰内部类创建方式: new OuterClass.InnerClass()。...static导入包:语法“import static java.lang.Math.*”,这样在类中就可以直接使用Math类中静态方法而不需要写类名,个人认为,在频繁使用某个类时候比较方便,但是降低了可读性...,要达到这样目的只能把创建对象方法声明为static,程序实例如下: classSingleton {private static Singleton instance = newSingleton

60950

java中static关键字作用_Java:Java中static关键字作用

static关键字最基本用法是: 1、被static修饰变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2、被static修饰方法属于类方法,可以通过类名.方法名直接引用,...而不需要new出一个类来 3、被static修饰变量、被static修饰方法统一属于类静态资源,是类实例之间共享。...从JVM类加载机制角度讲,静态资源是类初始化时候加载,而非静态资源是类new时候加载。 静态块 静态块也是static重要应用之一。...也是用于初始化一个类时候做操作用,和静态变量、静态方法一样,静态块里面的代码只执行一次,且只在初始化类时候执行。 需要注意三点: 1、Static修饰方法执行顺序是怎么样?...知识点: 1、Java中static关键字不会影响到变量变量或者方法作用域。 2、虽然对于静态方法来说没有this,但是我们在非静态方法中能够通过this访问静态方法成员变量。

73420

static关键字作用总结

1、静态全局变量 (1)在全局数据区分配内存,静态局部变量也是; (2)未经初始化静态全局变量会被程序自动初始化为0; (3)静态全局变量作用域是声明此变量所在文件,其他文件即使用 extern...但其作用域为局部作用域,当定义它函数或语句块结束时,其作用域随之结束。... 静态资源是类初始化时候加载,而非静态资源是类实例化对象时候加载。...int Student::count=0;// static关键字只能用于类定义体内部声明中,定义时不能标示为static 非静态成员函数有 this 指针,而静态成员函数没有 this 指针。...const定义常量在超出其作用域之后其空间会被释放,而static定义静态常量在函数执行后不会释放其存储空间。 static const int a可以在声明时候初始化,也可以在类外初始化。

26420

java static关键字作用_java中static关键字作用是什么

java中static关键字作用:1、java中可以通过statin关键字修饰变量达到全局变量效果;2、static修饰方法属于类方法,不需要创建对象就可以调用;3、static代码块常用于初始化静态变量...java中static关键字作用: 在java语言中有四种使用情况:成员变量、成员方法、代码块和内部类 (1)static成员变量 java中可以通过statin关键字修饰变量达到全局变量效果。...static修饰变量(静态变量)属于类,在类第一次通过类加载器到jvm时被分配内存空间。 (2)static成员方法 static修饰方法属于类方法,不需要创建对象就可以调用。...static方法中不能使用this和super等关键字,不能调用非static方法,只能访问所属类静态成员变量和静态方法。...静态内部类不能访问外部类普通变量,只能访问外部类静态成员变量和静态方法。

39050

Java中static关键字作用

static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一存储空间,而与创建对象个数无关。...:用static关键字修饰静态变量和不用static关键字修饰实例变量。...static方法是类方法,不需要创建对象就可以被调用,而非static方法是对象方法,只有对象被创建出来后才可以被使用 static方法中不能使用this和super关键字,不能调用非static方法...同理,static方法也不能访问非static类型变量。 单例设计模式: static一个很重要用途就是实现单例设计模式。...,只能通过该类提供方法来获取类对象,要达到这样目的只能把创建对象方法声明为static,程序实例如下: class Singleton{ private static Singleton instance

1.2K30

Java之static作用全方位总结

1、深度总结  引用一位网友的话,说非常好,如果别人问你static作用;如果你说静态修饰 类属性 和 类方法 别人认为你是合格;如果是说 可以构成 静态代码块,那别人认为你还可以; 如果你说可以构成...3)static代码块   static关键字还有一个比较关键作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中任何地方,类中可以有多个static块。...,因为方法内定义变量是局部变量,离开该方法,变量就失去了作用,也就会自动被消除,而内部类却不会离开它所在方法就失去作用,它有更广生命周期,下面通过一个实例加以说明: ?...在这里只需要记住一点:与C/C++中static不同,Java中static关键字不会影响到变量或者方法作用域。...3.static作用于局部变量么?   在C/C++中static是可以作用域局部变量,但是在Java中切记:static是不允许用来修饰局部变量。不要问为什么,这是Java语法规定。

1.5K21

java中static关键字作用

声明(在这里所讲排除了类访问控制),例如: 未声明为static例子: class ClassA{ int b; public void ex1(){...例子: class ClassA{ static int b; static void ex1(){ … } } class ClassB{...用来修饰类成员主要作用了,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,最基本有Integer.parseInt(),Float.parseFloat...接下来讲一下被static修饰后变量问题,刚才在前面讲过,被static修饰后成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类所有对象都会共享这块内存空间,看一下下面这个例子...5,接着声明对象tt,调用无参数构造函数,那么就把对象tt成员变量i值初始化为4了,注意了,在这里i是static,那就是说该类所有对象都共享该内存,那也就是说在实例化对象tt时候改变了i

29920

初识C语言——关键字static作用

修饰函数-称为静态函数 (1).static修饰局部变量 下面我们通过两段代码来理解static修饰局部变量意义。...然后我们来对比一下它们结果: 我们可以看到,两段代码只有一处不同,代码1test函数中整型变量i没有被static修饰,而代码2test函数中整型变量i有被static修饰,就因为这一处不同...接下来解释一下代码2 结果: 我们调式观察: 总结:局部变量被static修饰后,将存储在静态区,出作用域后将不会被销毁,而是保留在静态区,生命周期改变(本质上改变了存储类型),这时它生命周期就是程序声明周期...(3).static修饰函数 static修饰函数也是一样作用,和修饰全局变量一样。...以上就是对C语言中关键字static介绍。

10910

【答疑解惑】java中static关键字作用

static方法 static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this,因为它不依附于任何对象,既然都没有对象,就谈不上this了。...static变量 static变量也称作静态变量,静态变量和非静态变量区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。...而非静态变量是对象所拥有的,在创建对象时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量初始化顺序按照定义顺序进行初始化。...static代码块 static关键字还有一个比较关键作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中任何地方,类中可以有多个static块。...在类初次被加载时候,会按照static顺序来执行每个static块,并且只会执行一次。为什么说static块可以用来优化程序性能,是因为它特性:只会在类加载时候执行一次。

65670

Java中static作用及用法详解「建议收藏」

用public修饰static成员变量和成员方法本质是全局变量和全局方法,当声明它类对象市,不生成static变量副本,而是类所有实例共享同一个static变量。...1.2 static变量 按照是否静态对类成员变量进行分类可分两种:一种是被static修饰变量,叫静态变量或类变量;另一种是没有被static修饰变量,叫实例变量。...1.4static代码块 static代码块也叫静态代码块,是在类中独立于类成员static语句块,可以有多个,位置可以随便放,它不在任何方法体内,JVM加载类时会执行这些静态代码块,如果static...在成员声明前面加上关键字static(静态)就能创建这样成员。如果一个成员被声明为static,它就能够在它任何对象创建之前被访问,而不必引用任何对象。...声明为static方法有以下几条限制: • 它们仅能调用其他static方法。 • 它们只能访问static数据。

69331

《Monkey Java》课程5.1之static关键字作用

本节课程将学习以下内容: 静态成员变量语法特点 静态函数语法特点 静态代码块语法特点 ---- 静态成员变量语法特点 在定义成员变量时候,在前面添加一个static关键字。...格式:static int i; 特点: 静态成员变量可以直接用类名来调用,格式为:类名.成员变量名; 所有的对象使用静态变量是同一份,任何一个对象静态变量被修改,那么其他对象静态变量也会被修改...例子:(请动手加深理解) 1.新建一个名为Person.javaJava源代码文件: class Person{ static int i; } 2.新建一个名为Demo01.javaJava源代码文件...(); // 用类名直接调用静态函数 Dog.shout02(); } } 静态代码块语法特点 作用:主要作用是为静态变量赋值初始值。...格式: static{ 语句; } 特点: 没有名字,只有一个static; 静态代码块在装载当前所在类时候执行。

40510

Java中static关键字作用与用法「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 一、static关键字特点: static是一个修饰符,用于修饰类成员方法、类成员变量,另外可以编写static代码块来优化程序性能。...3. static修饰代码块 static关键字还有一个比较重要作用就是用来形成静态代码块以优化程序性能。static块可以置于类中任何地方,类中可以有多个static块。...在类初次被加载时候,会按照static顺序来依次执行每个static块,并且只会执行一次。 static块可以优化程序性能,是因为它特性:只会在类被初次加载时候执行一次。...二、static关键字误区 1. 与C/C++中static不同,Java中static关键字不会影响到变量变量或者方法作用域。...在C/C++中static关键字是可以作用于局部变量,但是在Java中是不允许使用static修饰局部变量。这是Java语法规定。

27020

第07天Static关键字作用及用法

同时如果静态成员变量和成员方法不出作用域的话,它们句柄都会保持不变。...static 属性声明虽然是在类结构中,但是并不受到对象控制,是独立存在。...# static 属性与非 static 属性区别 static 声明属性和普通属性(非 static 属性)最大区别在于保存内存区域不同。static 所修饰在静态数据区。...static 属性与非 static 属性还有一个最大区别,就是在于所有非 static 属性必须产生实例化之后才可以访问,但是 static 属性不受实例化对象控制。...也就是说,在没有产生实例化对象情况下,依然可以使用 static 对象。 # 3. 修饰成员方法 说明 方法本来就是存放在类定义当中static 修饰成员方法作用是可以使用 "类名。

15120

Java学习笔记 static关键字作用和应用

static关键字 static是一个修饰符,用于修饰类成员方法、类成员变量 1)static修饰成员变量 static变量称作静态变量、类变量。....”方式调用 静态方法中不存在当前对象,因此不能使用this关键字,当然也不能使用super 静态方法不能被非静态方法覆盖 构造方法不允许声明为static 3)static修饰代码块 static关键字还有一个比较重要作用就是用来形成静态代码块以优化程序性能...static块可以置于类中任何地方,类中可以有多个static块。在类初次被加载时候,会按照static顺序来依次执行每个static块,并且只会执行一次。...4)静态导包 这里在导入时,我们使用了static关键字,而且在引入类最后还加上了“.*”,它作用就是将某类中所有类方法直接导入。...静态导包用法,将类方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。 Java中static关键字不会影响到变量或者方法作用域。

18930

static作用(修饰函数、局部变量、全局变量)

C语言:static作用(修饰函数、局部变量、全局变量) 一、 static全局变量与普通全局变量有什么区别 ? 全局变量(外部变量)说明之前再冠以static 就构成了静态全局变量。  ...static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用函数应该说明为内部函数(static修饰函数),内部函数应该在当前源文件中说明和定义。...四、static三条重要作用,首先static最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。       ...Static可以用作函数和变量前缀,对于函数来讲,static作用仅限于隐藏。      2、static第二个作用是保持变量内容持久。...第三个作用是默认初始化为0。

61720

深入理解C语言static关键字三个作用

所以 static 修饰局部变量作用是:改变局部变量生命周期,本质上是改变了局部变量存储位置,让局部变量不再是在栈区上开辟空间,而是直接在静态区上开辟空间,从而使得局部变量拥有和全局变量一样生命周期...static 来修饰g_val时,我们发现,编译器说g_val是无法解析外部符号; 所以 static 修饰全局变量作用是:改变了全局变量外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性...,但是当我用 static 来修饰Add函数时,我们发现,编译器说Add是无法解析外部符号; 所以 static 修饰函数作用是:改变了函数外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性...static 修饰全局变量作用:改变了全局变量外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性(只能在本文件内部被访问)。...static 修饰函数作用是:改变了函数外部链接属性(可以在其他源文件内被访问),使其变成内部连接属性(只能在本文件内部被访问)。

39500

static变量导出问题解析 __declspec(dllexport) 和 __declspec(dllimport)作用

终于弄明白了export和import作用,下面从使用角度来说明一下他们功能。   ...首先要知道,头文件是C++接口文件,不仅本工程需要使用头文件来进行编译,给其他工程提供dll时候也要提供此dll头文件才能让其他人通过编程方式来使用dll。...(dllexport)   class OS_API_EXPORT A {static int a;} A.cpp:   #include “A.h”   static A::a=0; //静态变量初始化要写在...提供给别人使用dll头文件应当写成: A2.h:   #define OS_API_IMPORT __declspec(dllimport)   class OS_API_IMPORT A {static...,那么导入 #endif class OS_API A{static int a;}           同时别忘了在dll工程属性下设置预处理器定义BUILD_DLL

1.9K60
领券