• Java中static的用法解析


    知识点
    1.static关键字
    a.可以修饰变量,方法,代码块
    b.修饰的变量和方法可以使用类名.变量名/类名.方法名调用
    c.static修饰的资源为静态资源,在类加载的时候执行
    d.在静态方法中只能调用静态资源
    e.静态代码块的作用就是加载一些静态资源(IP,图片)

    在这里就用几个有代表性的代码实例进行简单说明吧,这样或许能够更好地理解;

    案例一:

     1 //用于修饰工具方法
     2 public class StaticDemo {
     3     //在创建对象时赋值属性时才会被创建
     4     private static String info="今天天气真好";
     5     //static修饰的静态变量在类加载时就会存在(.java文件->.class文件)
     6     public static void function(){
     7         int num=10;
     8         System.out.println("静态方法被调用!"+info+num);
     9     }
    10     public static void main(String[]args){
    11         StaticDemo.function();
    12     }
    13 }

    ♦在案例一中,我们发现当原本是StaticDemo中私人属性的info只有在加上static修饰符之后才能被之后function构造方法调用;

    ♦而function()中创建的num因为属于局部变量,是在所属构造方法在被创建时一同创建的而不用再次强调使用static修饰。

    案例二:

     1 public class StaticDemo02 {
     2     int i=0;
     3     static int j=0;
     4     public StaticDemo02(){
     5         i++;
     6         j++;
     7     }
     8     public static void main(String[]args){
     9         StaticDemo02 s1=new StaticDemo02();
    10         System.out.println(s1.i);
    11         StaticDemo02 s2=new StaticDemo02();
    12         System.out.println(s2.i);
    13         StaticDemo02 s3=new StaticDemo02();
    14         System.out.println(s3.i);
    15         System.out.println(StaticDemo02.j);
    16     }
    17 }

    ♦在案例二中我们可以更加清楚地认识到只有在用static修饰变为静态资源后才能不被new关键字干扰;

    ♦其实在这里为了方便理解,我们可以把用static修饰过后的一般变量看作一种特殊的常量,就像1、2一样,但又不同于一般普通常量,

    我们把这种常量称之为静态变量;

    另外关于构造方法、代码块和静态代码块在类中谁先执行的问题,我们也同样可以用这样一个较简单的办法测试出来;

     1 public class StaticDemo03 {
     2     public StaticDemo03(){
     3         System.out.println("构造方法被执行");
     4     }
     5     {
     6         System.out.println("代码块被执行");
     7     }
     8     static{
     9         System.out.println("静态代码块被执行");
    10     }
    11     public static void main(String[]args){
    12         StaticDemo03 sd=new StaticDemo03();
    13     }
    14 }

    当然结果可想而知,静态代码块是最先被创建的,而构造方法和一般代码块的执行顺序相差无几。

    ——————————————————小 结——————————————————————

    还是把最主要的static说明用一张表做出来最好了^.^

    明天继续更新!

  • 相关阅读:
    JavaScript-Runoob-JS 参考手册 :JavaScript 对象
    JavaScript-Runoob-JS 实例 :JavaScript 总结
    JavaScript-Runoob-JS 实例 :JavaScript HTML DOM 实例
    JavaScript-Runoob-JS 实例 :JavaScript Browser 对象实例
    JavaScript-Runoob-JS 实例 :JavaScript 对象实例
    linux 下 php 安装 libevent
    linux 下 php 安装 event
    mybatis实战教程(mybatis in action),mybatis入门到精通
    将MapReduce的结果输出至Mysql数据库
    spring路径通配符
  • 原文地址:https://www.cnblogs.com/SUN99bk/p/10439728.html
Copyright © 2020-2023  润新知