zoukankan      html  css  js  c++  java
  • Java中的static关键字

    Java中的static关键字,可以修饰变量、类、代码块和方法

    1、static关键字修饰变量

    static int age = 1; // 静态变量
    
    // 访问
    对象.age
    类名.age

    2、static关键字修饰方法

    1     /**
    2      * 静态方法
    3      */
    4     public static void SayHello() {
    5         System.out.println("Hello world");
    6     }

    3、static关键字修饰的静态代码块

    1     /**
    2      * 静态代码块,如果没有创建该对象,也会执行静态代码块
    3      */
    4     static {
    5         System.out.println("静态代码块");
    6     }

    另外这里注意一下非静态代码块和静态代码块的区别?

    静态代码块,如果没有创建该对象,也会执行静态代码块

    如果创建对象,那么先执行静态代码块,再执行非静态代码

     1     /**
     2      * 如果创建对象,那么先执行静态代码块,再执行非静态代码
     3      */
     4     
     5     {
     6         System.out.println("非静态代码块");
     7     }
     8     
     9     /**
    10      * 静态代码块,如果没有创建该对象,也会执行静态代码块
    11      */
    12     static {
    13         System.out.println("静态代码块");
    14     }

    4、static修饰的静态内部类

    当Singleton类加载时,静态内部类SingletonHolder没有被加载到内存中,只有当调用getUniqueInstance,方法触发加载静态内部类

     1 /**
     2  * 
     3  */
     4 package common;
     5 
     6 /**
     7  * <p>Description:</p>
     8  * 
     9  * @author Administrator
    10  * @date 2019年1月7日下午12:59:02
    11  * @version 1.0
    12  */
    13 public class Singleton {
    14 
    15     /**
    16      * 声明为private避免调用默认构造方法创建对象
    17      */
    18     private Singleton() {
    19         
    20     }
    21     
    22     /**
    23      * 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问
    24      */
    25     private static class SingletonHolder {
    26          private static final Singleton INSTANCE = new Singleton();
    27     }
    28     
    29     public static Singleton getUniqueInstance() {
    30         return SingletonHolder.INSTANCE;
    31     }
    32     
    33     public static void main(String[] args) {
    34         // 当Singleton类加载时,静态内部类SingletonHolder没有被加载到内存中,只有当调用getUniqueInstance,方法触发加载
    35         Singleton single = Singleton.getUniqueInstance();
    36         
    37     }
    38 
    39 }
  • 相关阅读:
    经典回溯问题- 迷宫
    关于二叉树的一点补充。
    二叉树重难点总结(判断完全二叉树,非递归前、中、后序遍历的实现等...)
    栈、队列常规操作
    贪吃蛇小游戏
    链表重点问题(下)
    链表常见问题(上)
    动态顺序表
    时间 空间复杂度小结(斐波那契 二分查找举例)
    每天一个linux命令-id,输出用户的uid、gid
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10233901.html
Copyright © 2011-2022 走看看