问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中static作用是什么?

发布网友 发布时间:2022-03-25 09:12

我来回答

4个回答

懂视网 时间:2022-03-25 13:33

static变量的作用是希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。
  
  C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
  
  诞生于美国的贝尔实验室,由D M Ritchie以B语言为基础发展而来,在它的主体设计完成后,Thompson和Ritchie用它完全重写UNIX,且随着UNIX的发展,c语言也得到不断的完善。为利于C语言的全面推广,许多专家学者和硬件厂商联合组成C语言标准委员会,并在之后的1989年,诞生第一个完备的C标准,简称C89,也就是ANSI c,现在的C语言标准为2011年发布的 C11。

热心网友 时间:2022-03-25 10:41

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 

被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 

用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。 

static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。 

static修饰的成员变量和成员方法习惯上称为静态变量和静态方法,可以直接通过类名来访问,访问语法为: 

类名.静态方法名(参数列表...) 

类名.静态变量名 

用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块(用处非常大,呵呵)。 

1、static变量 

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。

两者的区别是: 

对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。 

对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。 

所以一般在需要实现以下两个功能时使用静态变量:

  在对象之间共享值时

  方便访问变量时

2、静态方法 

静态方法可以直接通过类名调用,任何的实例也都可以调用,

因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。

因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!! 

因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。

例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。

静态方法是类内部的一类特殊方法,只有在需要时才将对应的方法声明成静态的,一个类内部的方法一般都是非静态的 

3、static代码块 

static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。例如: 

public class Test5 { 

private static int a; 

private int b; 

static{ 

Test5.a=3; 

System.out.println(a); 

Test5 t=new Test5(); 

t.f(); 

t.b=1000; 

System.out.println(t.b); 

static{ 

Test5.a=4; 

System.out.println(a); 

public static void main(String[] args) { 

// TODO 自动生成方法存根 

static{ 

Test5.a=5; 

System.out.println(a); 

public void f(){ 

System.out.println("hhahhahah"); 

}  

运行结果: 

hhahhahah 

1000 

利用静态代码块可以对一些static变量进行赋值,最后再看一眼这些例子,都一个static的main方法,这样JVM在运行main方法的时候可以直接调用而不用创建实例。 

4、static和final一块用表示什么 

static final用来修饰成员变量和成员方法,可简单理解为“全局常量”! 

对于变量,表示一旦给值就不可修改,并且通过类名可以访问。 

对于方法,表示不可覆盖,并且可以通过类名直接访问。

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。 

声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条*: 

• 

它们仅能调用其他的static 方法。 

• 

它们只能访问static数据。 

• 

它们不能以任何方式引用this 或super(关键字super 与继承有关,在下一章中描述)。 

如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块: 

// Demonstrate static variables,methods,and blocks. 

class UseStatic { 

static int a = 3; 

static int b; 

static void meth(int x) { 

System.out.println("x = " + x); 

System.out.println("a = " + a); 

System.out.println("b = " + b); 

static { 

System.out.println("Static block initialized."); 

b = a * 4; 

public static void main(String args[]) { 

meth(42); 

一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。 

注意:在一个static 方法中引用任何实例变量都是非法的。 

下面是该程序的输出: 

Static block initialized. 

x = 42 

a = 3 

b = 12 

在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用。这样,你只要在类的名字后面加点号运算符即可。例如,如果你希望从类外面调用一个static方法,你可以使用下面通用的格式: 

classname.method( ) 

这里,classname 是类的名字,在该类中定义static方法。可以看到,这种格式与通过对象引用变量调用非static方法的格式类似。一个static变量可以以同样的格式来访问——类名加点号运算符。这就是Java 如何实现全局功能和全局变量的一个控制版本。 

下面是一个例子。在main() 中,static方法callme() 和static 变量b在它们的类之外被访问。 

class StaticDemo { 

static int a = 42; 

static int b = 99; 

static void callme() { 

System.out.println("a = " + a); 

class StaticByName { 

public static void main(String args[]) { 

StaticDemo.callme(); 

System.out.println("b = " + StaticDemo.b); 

下面是该程序的输出: 

a = 42 

b = 99 

static成员是不能被其所在class创建的实例访问的。 

如果不加static修饰的成员是对象成员,也就是归每个对象所有的。 

加static修饰的成员是类成员,就是可以由一个类直接调用,为所有对象共有的

热心网友 时间:2022-03-25 11:59

static标示变量为静态变量,每个对象共享一个静态变量
单例模式是一种设计模式,只允许一个类的实例存在,可以用静态方法来实现单例模式,可以参考百度百科啊。。

热心网友 时间:2022-03-25 13:34

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。
java static是什么意思?

在Java中,static是一个关键字,通常用于描述类和类变量。当一个变量被标记为static时,它就不再是对象自身的属性,而是属于类的属性,它可以被共享和访问,而不需要创建对象的实例。同样的道理,静态方法在调用时也不需要先创建对象实例,而是直接通过类名进行调用。static的作用可以在很多场合得到应用,...

java中static关键字的作用

在Java中,static关键字可以用于以下几个方面:1、静态变量:静态变量是指在类中使用static关键字声明的变量,也称为类变量。静态变量是独立于对象而存在的,所有的对象共享同一个静态变量的值,可以通过类名直接访问。静态变量可以用于在多个对象之间共享数据。2、静态方法:静态方法是指在类中使用static关...

java中static作用是什么?

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据...

java static作用

作用于代码块上时:形成静态代码块以优化程序性能。因为它的特性:只会在类加载的时候执行一次。作用于内部类上时:在定义内部类的时候,可以在其前面加上一个权限修饰符static。此时这个内部类就变为了静态内部类。通常称为嵌套类,当内部类是static时,意味着:[1]要创建嵌套类的对象,并不需要其外围...

Java中static的作用?

2.static 成员方法 Java 中也支持用 static 关键字修饰的成员方法,即静态成员方法。与此相对应的没有用 static 修饰的成员方法称为非静态成员方法。与静态成员变量类似,静态成员方法是类方法,它属于类本身而不属于某个对象。因此静态成员方法不需要创建对象就可以被调用,而非静态成员方法则需要通过对象...

static关键字的作用

static关键字在编程中的主要作用是声明属于类型本身而非类型实例的变量或方法。这意味着使用static声明的变量或方法不依赖于任何对象实例,可以直接通过类型名来访问。在类的成员变量前加上static关键字,表示这个变量属于这个类本身,而不是属于任何一个对象。这样的变量也称为类变量或静态变量。静态变量不...

Java中看到static int i;一个语句,请问static在这里的作用是什么啊?

static是类加载的时候最先被初始化的,并且只被初始化一次,你那个题是用i做的累加功能,结果应该是0 1 2 3如果不加static是用这个i的时候必须要new一下ForTest 然后ForTest.i 才能使用

java中什么时候该用static修饰方法?有什么好处或者坏处?

person.add();当然也可以用下面的方法先出一个对象在调用也是可以 如果这个方法前面没有static 比如 public add(){} 那么先要person p=new person();然后用p.add();类加载器在加载这个类的时候就已经实例化了这个类。坏处:初始化加载,比较占内存,所以不经常用的方法,不建议加此关键字。

Java中提供的常量一般都有什么作用

java 常量就是不变的值,在JAVA中就用final关键字来标识,主要作用是为了更方便的让很多人使用变量,易于维护。static就是静态变量,声明为static的变量实质上就是全局变量,如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象!static类中只能有静态成员,可以...

java中的static关键字说清楚还得靠JVM

前言Java中Static想必大家一定使用过吧。他是用来修饰类或者成员变量或者方法的。关于Static的用法还是很简单的,因为他就是一个修饰词。但是如果不理解他修饰的作用原理的话,可能会闹出bug来 变量 上图是一个简化的JVM内存结构模型。学习过JVM的都知道我们创建的对象正常情况下都是在堆中的。那么我们...

java static作用 static关键字的作用java java中static的用法 java中this的作用 java中static特点 java中static变量 java中static归纳总结 javathis关键字的作用 java的static
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
来不及说我爱你小说,匪我思存亲笔写的结局到底是哪一个啊 vivo手机微信朋友圈怎么设置评论权限仅自己可见 梦见到女朋友家居然在阴间 去千佛山景区旅游,有哪些极具意义的纪念品值得入手? ...12点54分出生,本人姓刘,求各位根据生辰八字赐名,跪谢! 按生辰八字起名字,男孩,2010.8.16。12:55分出生,爸爸姓李,妈妈姓刘,望... 做梦梦到突然涨洪水是什么征兆 ...3点出生,现高分球大师帮我看流年运程,本人姓刘,名新元 我昨晚梦到很大的水,很多人在水里,水很浑着,像是洪水,我们都正走着,我... 我想给我儿子起个名字,本人姓刘,最好后面带个辉字,宝宝是12月5号7点... C语言里面静态变量static是什么作用啊? C语言static的作用。 java中的static到底有什么作用? C语言中static是做什么用的? 为什么车载蓝牙连接上没有声音? 手机链接车载蓝牙后,微信语音没声音,语音电话也没声音。这是怎么回事? 手机连接蓝牙车载来微信没有提示音 万能的朋友圈,之前我手机连接车载蓝牙放歌,拍微信小视频音乐都不会断的?可是前两天开始就没声音为什么_问一问 车载蓝牙配对成功但没声音怎么办? 车载蓝牙和手机连接成功可是一点声音都没有是怎么回事? 苹果连着车载蓝牙拍视频怎么没声音 车载蓝牙吉利汽车微信语音没声音怎么回事 汽车蓝牙连接上但没声音 手机连接车载蓝牙时微信来视频语音电话时车载蓝牙没声 放歌 手机听筒出声怎么回事? 苹果11pro max在小车里放着歌发朋友圈怎么没有歌声音呢? 汽车连蓝牙没有声音怎么回事? 车载蓝牙没有声音怎么办? 手机音乐连接汽车发朋友圈怎么没有声音? 汽车蓝牙连接后微信语音没声音,!!!听歌打电话导航都正常声音,就微信没有 iphone连车载蓝牙微信语音没声音? c语言 static 作用范围是什么呢? static 变量实际中有什么作用 c语言中static 到底有啥作用啊? c语言中变量前的static有什么用???? Java中static的作用? JAVA! static什么作用? static有什么用途 static关键字的作用是什么 java中的static有什么作用 C语言中由Static 定义的变量的作用范围 static的作用 static静态方法和变量的作用和好处?? java中static的具体作用是什么 ?举例说明 vivo手机怎么获取权限 vivo的手机怎么打开读取已安装应用信息的权限? VIVO手机怎么打开读取已安装应用信息的权限? vivox5从哪儿打开手机设备识别码权限 vivo y13的允许软件获取设备信息在哪儿设置 vivo手机怎样获得root权限 为什么我的手机获取不了权限 我的vivo手机