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 }
  • 相关阅读:
    jQuery初学:find()方法及children方法的区别分析
    百万级访问网站前期的技术准备
    TCP/IP协议三次握手与四次握手流程解析
    TCP/IP详解学习笔记
    Dubbo框架入门介绍
    如何提高Web服务端并发效率的异步编程技术
    杂 -- 有关程序员
    关于高性能的那点事
    大型网站的灵魂- 性能
    分布式java应用
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10233901.html
Copyright © 2011-2022 走看看