码迷,mamicode.com
首页 > 编程语言 > 详细

Java static变量与代码块

时间:2018-11-17 20:55:51      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:.com   运行时   变量   close   font   方法区   nbsp   pac   ring   

static是用来修饰成员变量和成员方法,也可以形成静态static代码块。

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

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

它方便了在没有创建对象的情况下使用,如math类的使用,main方法的使用。

特点:

package com.company;
 /*   case_01被所有使用的关键字共享
      case_02:可以使用类名调用
      case_03可以调用静态的成员方法
      case_04不可以调用非静态成员变量
      case_05不可以调用非成员方法
*/
public class StudentDemo02 {
    public static void main(String[] args) {
        Student1.graduateFrom = "xxx";//case_02
        Student1.study();
    }

}
class Student1 {
    String name;
    int age;
    static String graduateFrom;
    public static void study(){
        System.out.println(graduateFrom);
        sleep();//case_03
        //System.out.println(name); case_04
        //eat(); case_05

    }
    
    public static void sleep() {
        System.out.println("sleep");
    }
    public void eat() {
        System.out.println(graduateFrom);
    }
}    

 相关说明:由于静态方法不需要依赖任何对象就可以访问,所以在静态方法中不能使用非静态成员变量和方法,静态方法中也没有this关键字,因为它们都需要依赖对象而存在。

代码块:

它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。

该类不管创建多少对象,静态代码块只执行一次。

package com.company;

public class BlockDemo {
    static {
        System.out.println("BlockTest静态代码块执行");
    }
    
    {
        System.out.println("BlockTest构造代码块执行");
    }
    

    public BlockDemo(){
        System.out.println("BlockTest无参构造执行了");
    }
    
    public static void main(String[] args) {
        System.out.println("BlockTest的主函数执行了");
        Coder c = new Coder();
        Coder c2 = new Coder();
    }
}

class Coder {
    
    static {
        System.out.println("Coder静态代码块执行");
    }
    
    {
        System.out.println("Coder构造代码块执行");
    }
    
    public Coder() {
        System.out.println("Coder无参空构造执行");
    }    
    
}

执行结果:

技术分享图片
BlockTest静态代码块执行
BlockTest的主函数执行了
Coder静态代码块执行
Coder构造代码块执行
Coder无参空构造执行
Coder构造代码块执行
Coder无参空构造执行
View Code

 

Java static变量与代码块

标签:.com   运行时   变量   close   font   方法区   nbsp   pac   ring   

原文地址:https://www.cnblogs.com/crzhang/p/9967029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!