精华内容
下载资源
问答
  • 2019-03-25 10:20:49

    简单使用:(主要说说修饰的方法)

    static能修饰变量和方法 ,但是static修饰的变量和方法是属于类的而不是属于类的对象。

    static修饰的方法称为静态方法,在本类中调用克直接写方法名(有参数可以带参数)。

    在本类中调用别类里的静态方法时,需要通过类名来调用(也可通过对象调用,但是不建议这样做。

    另外非静态可以调用静态,静态不能调用非静态。

    更多相关内容
  • 1、为什么局部变量不能使用static关键字修饰? 内存分为三大块,占内存,堆内存和方法区内存。栈内存主要存放局部变量和对象的内存地址(通过引用保存起来),堆内存主要存放对象本身以及成员变量,方法区内存主要...

    1、为什么局部变量不能使用static关键字修饰?
    内存分为三大块,栈内存,堆内存和方法区内存。栈内存主要存放局部变量和对象的内存地址(通过引用保存起来),堆内存主要存放对象本身以及成员变量,方法区内存主要存放class相关信息以及static修饰的静态变量。由于staitc关键字修饰的变量是属于类共有的,因此不可能修饰局部变量,因为局部变量仅隶属于一个方法当中,出了这个方法就不能访问了。当栈内存中的方法执行完成,该方法以及方法内的局部变量所占据的内存空间就会释放。关于静态变量为什么属于类,而不属于对象,可以参考以下实例:
    在这里插入图片描述
    如图所示,栈内存中有个main方法,在main方法中如果调用m1()方法,在m1()方法中调用m2()方法,会发生压栈。栈活动的原则是:后进先出,先进后出。在发生弹栈过程的时候,栈内存中的方法,局部变量全部得到释放。假如现在有一个专门调查中国人口的Person类,这个类里的成员方法有名字,身份证号和国籍,当然,每个人的姓名,身份证号都不一样,但是国籍都是一样的。如果我们在国籍上不加static,那么国籍这个成员变量是属于对象的,也就是,每创建一次对象,都要为国籍赋值,这样,每个对象中都会保存一份String nationality的成员变量,但事实是,String nationality的值都是“中国”,如果让每个对象都持有一份的话,太浪费内存了。因此,如果在String nationality前用static关键字修饰,让它变成静态变量,属于这个类共有的变量,以后创建对象的时候就不用专门为国籍赋值了,访问不需要用引用.变量名的方式,而是用类名.变量名的方式去访问即可。这个时候,这个变量会从堆内存转移到方法区内存中,为所有的对象所共有,内存布局会变成这样:
    在这里插入图片描述
    这也从一定意义上解释了为什么局部变量不能使用static关键字修饰。

    2、关于静态数据既可以使用类名.变量名的方式访问,也可以用引用.变量名的方式访问。
    在这里插入图片描述
    如上图,静态方法正规方法是通过类名.变量名的方式去访问,但是也可以通过引用.变量名的方式去访问。如下图:
    在这里插入图片描述
    实际上,虽然创建了对象,但在编译阶段,JVM检查出s是StaticTest类型,并且m1方法是静态方法,因此还是采用了类名.变量名的方式执行。整个过程并没用到对象。这个理论可以通过一个实例去验证,大家都知道空指针异常,也就是空引用访问成员会出现异常。这个时候,我们先让s的值为null,再去调m1()方法,结果如下:
    在这里插入图片描述
    如果所示,结果并没有出现空指针异常。原因是m1方法是静态的,程序会自动通过类去访问,而不是通过引用,因此就不存在空指针的说法。

    展开全文
  • Java中的static关键字

    2016-07-01 10:38:18
    在Java中,存在着两种类型的变量,一种是实例变量,另外一种是类变量,也称为静态变量,用static关键字来修饰。1.被static所修饰的变量和方法,可以直接通过类名来调用,而不必实例化对象,然后通过对象调用,虽然...

    在Java中,存在着两种类型的变量,一种是实例变量,另外一种是类变量,也称为静态变量,用static关键字来修饰。

    被static所修饰的变量和方法,

    1.可以直接通过类名来调用,而不必实例化对象

    静态变量和静态方法在类创建的时候,就一起创建,比构造函数、对象创建还早,和实例变量、方法不同,可以直接调用。

    2.生命周期最长。

    随着类的加载而加载,随着类的消失而消失,因此活得老长老长了,故称生命周期最长。

    3.可以用任何方法来访问,不能使用this、super这种实例对象关键字。

    因为this、super关键字表示的是实例化对象的引用,而static关键字修饰的变量和方法 在实例化对象之前就已经存在了,对于已经存在的对象(不论静态还是实例),非静态方法当然可以访问了,而理所当然的,静态方法不可能访问还不存在的实例变量和实例方法啦。

    4.存放在JVM的方法区中,可开发工具类。

    用static关键字修饰工具类中的方法,就可以直接用类名去调用这个方法。

    static所修饰的变量和方法,只会在内存中存在一次,存放在方法区(方法区包含了常量和静态),不用每次都像实例变量或方法一样都要在堆内存中开辟内存空间。

    不好的就是不能像实例变量和方法一样在规矩下随意访问。

    展开全文
  • Java-static关键字

    2020-09-16 15:40:56
    static是java语言中的关键字,表示“静态的”,它可以用来修饰变量、方法、代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块。在java语言中凡是用static修饰的都是类相关的,...

    static是java语言中的关键字,表示“静态的”,它可以用来修饰变量、方法、代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块。在java语言中凡是用static修饰的都是类相关的,不需要创建对象,直接通过“类名”即可访问,即使使用“引用”去访问,在运行的时候也和堆内存当中的对象无关。

    static 修饰符可以修饰:变量、方法和代码块

    • 用static修饰的变量和方法,可以采用类名直接访问
    • 用static声明的代码块为静态代码块,JVM第一次使用类的时候,会执行静态代码块中的内容

    static关键字修饰成员变量

    • 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类。多个对象共享同一份数据。

    实例:

    public class Member {
    
        private String name; // 姓名
        private int age; // 年龄
        static String group; // 派别
    
        public Member() {
    
        }
    
        public Member(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }
    
    public class DemoStaticField {
        public static void main(String[] args) {
            Member one = new Member("天明",15);
            one.group = "墨家";
            System.out.println("姓名:" + one.getName() + ",年龄:" + one.getAge() + "派别:" + one.group);
    
            Member two = new Member("高渐离",30);
            one.group = "墨家";
            System.out.println("姓名:" + two.getName() + ",年龄:" + two.getAge() + "派别:" + two.group);
        }
    }
    

    运行结果为:

    姓名:天明,年龄:15,派别:墨家
    姓名:高渐离,年龄:30,派别:墨家
    
    Process finished with exit code 0
    

    static关键字修饰方法

    1. 一旦使用static修饰成员方法,那么这就成为了静态方法。静态方法不属于对象,而是属于类的。
    2. 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它。如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用它。
    3. 无论是成员变量,还是成员方法。 如果有了static,都推荐使用类名称进行调用。
      静态变量:类名称.静态变量
      静态方法:类名称.静态方法()

    注意事项:
    1.静态不能直接访问非静态。
    原因:因为在内存当中是有的静态内容,有的非静态内容。
    2.静态方法当中不能用this。
    原因:this代表当前对象,通过谁调用的方法,谁就是当前对象。

    实例:

    public class DemoClass {
    
        int num; // 成员变量
        static int numStatic; // 静态变量
    
        public void method(){
            System.out.println("成员方法!");
            // 成员方法可以访问成员变量
            System.out.println(num);
            // 成员方法可以访问静态变量
            System.out.println(numStatic);
        }
    
        public static void methodStatic(){
            System.out.println("静态方法!");
            // 静态方法可以访问静态变量
            System.out.println(numStatic);
            // 静态方法不可以访问成员变量
            //System.out.println(num); // 错误写法!
    
            // 静态方法中不能使用this关键字。
            //System.out.println(this); // 错误写法!
        }
    }
    
    public class DemoStaticMethod {
        public static void main(String[] args) {
            DemoClass obj = new DemoClass(); // 先创建对象
            // 然后才能使用没有static关键字的内容
            obj.method();
    
            // 对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称来调用。
            obj.methodStatic(); // 正确,不推荐,这种写法在编译之后也会被javac翻译成为【类名称.静态方法名】。
            DemoClass.methodStatic(); // 正确,推荐。
    
            // 对于本来当中的静态方法,可以省略类名称
            myMethod();
            DemoStaticMethod.myMethod();
    
        }
        public static void myMethod(){
            System.out.println("本类的静态方法!");
        }
    }
    
    展开全文
  • static 关键字的作用

    2020-04-20 13:30:29
    Ⅰ.static关键字最基本的用法是: 写在前面:        之前讲到 final 关键字的作用是每次面试的时候必问求职者的两个问题之一,另外一个问题就是文本会写到的static。final 和...
  • static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 2.static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期) 存储在静态...
  • Java中static关键字误区

    2021-02-27 09:54:32
    static关键字Java中static关键字误区误区一:static关键字会改变类中成员的访问权限吗?有些初学的朋友会将java中的static与C/C++中的static关键字的功能混淆了。在这里只需要记住一点:与C/C++中的static不同,Java...
  • static可以修饰:属性、方法、代码块、内部类 1.1修饰属性(类变量):对象共享变量 特点:不需要创建对象,直接通过类名调用 一旦修改,则是全局修改,意思就是,如果static被某个用户给改变了,则...
  • 下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正...
  • C++中的static关键字的总结 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static...
  • 在Java中,关于static关键字说法错误的是:A.static可以修饰方法B.static可以修饰成员C.static可以修饰代码块D.static可以修饰局部变量和形参2.在Java中,关于final关键字的说法正确的是:A. 如果修饰局部变量,该...
  • 概述 static关键字在c语言中比较常用,使用恰...
  • 关于建立函数的目的,以下正确的说法是( B )。A. 提高程序的。 7、执行效率B. 提高程序的可读性C. 减少程序的篇幅D. 减少程序文件所占内存30.下列程序的输出结果是(B )。main()int x=1,y=0,a=0,b=0;switch(x)...
  • java中static关键字

    2017-07-09 17:46:00
    static可以用来修饰方法和属性,当然代码块也是可以的。1.static方法是类中的一个成员方法,属于整个类,...等关键字..因为它是属于整个类!2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而...
  • Q:为什么需要static关键字的存在?有什么作用呢?A:Java是面向对象的,但若处于某种特殊情况下,通常是实用方法,则不需要类的对象。static这个关键字可以标记出不需要实例的方法。static的特点(静态变量)1、...
  • static关键字作用总结

    2019-02-13 17:25:52
    static关键字作用总结 静态变量和静态方法 static关键字最基本的用法是: 1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2、被static修饰的方法属于类方法,可以通过类名....
  • static关键字最基本的用法是: 1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来 被...
  • static关键字的作用

    2016-11-27 21:47:43
    **********static关键字作用总结************** 一.最重要的一个作用:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 static修饰的全局变量和函数只能在本文件内...
  • 关于static关键字

    2017-08-09 14:10:20
    static关键字的理解
  • 应用二:static + 成员方法 vs 成员方法 概念: 静态方法:用static修饰的成员方法,通常也称为静态方法、类方法、全局方法等。 非静态方法:没有被static修饰的成员方法,也称为叫做非静态方法、实例方法,对象...
  • 一般来说,我们用new来创建对象,这时,数据的存储空间才会被分配,它的方法才能被外界调用 ...而当我们通过static关键字则可以解决这方面的需求 当声明一个事物是static时,就意味着这个域或方法
  • C++ 中的static关键字

    千次阅读 多人点赞 2014-10-11 11:15:09
    在这我要系统地讲述一下有关static关键字的作用,当然主要是讲述它在开发语言C与C++的作用,在其他方面的作用请另找资料。在讲解中肯定有不恰当之处,请大家大胆地扔砖,不要手软,文中的内容引用了不少网上的资料。...
  • 1.下面有关static类变量和实例变量的描述,正确的有? static类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了 在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量...
  • 【单选题】下列选项中关于Java中封装的说法错误的是( ) 【单选题】现代自动控制的应用有 【多选题】会计信息化有哪些主要特征() 【单选题】下列结论中错误的是 。 【单选题】控制工程主要研究并解决的问题之一...
  • static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖...
  • static关键字用法总结

    2019-02-18 23:19:30
    今天在写单片机程序时,再次接触到static关键字,所以对static的用法进行了整理。static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。 本文只是初步整理,仅供参考。后期...
  • 关于Static关键字

    2008-07-31 10:37:00
    C++的static有两种用法:面向过程...一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,753
精华内容 7,501
关键字:

关于static关键字的说法错误的是

友情链接: Adafruit-PN532-master.zip