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

    在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。

    Java把内存分为栈内存和堆内存,

    栈内存用来存放一些基本类型的变量、数组和对象的引用,

    堆内存主要存放一些对象。

    public class User {  
        private static int userNumber  = 0 ;  
          
        public User(){  
            userNumber ++;  
        }  
          
        public static void main(String[] args) {  
            User user1 = new User();  
            User user2 = new User();  
              
            System.out.println("user1 userNumber:" + User.userNumber);  
            System.out.println("user2 userNumber:" + User.userNumber);  
        }  
    }      
    ------------  
    Output:  
    user1 userNumber:2  
    user2 userNumber:2  
        
    

      

    2.1、static变量

    static修饰的变量我们称之为静态变量,没有用static修饰的变量称之为实例变量,他们两者的区别是:

    1.静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为它分配一次内存,同时类所有的实例都共享静态变量,可以直接通过类名来访问它。

    2.实例变量则不同,它是伴随着实例的,每创建一个实例就会产生一个实例变量,它与该实例同生共死。

    ===所以我们一般在这两种情况下使用静态变量:对象之间共享数据、访问方便。

     2.2、static方法

           static修饰的方法我们称之为静态方法,我们通过类名对其进行直接调用。由于他在类加载的时候就存在了,它不依赖于任何实例,所以static方法必须实现,也就是说他不能是抽象方法abstract。

           Static方法是类中的一种特殊方法,我们只有在真正需要他们的时候才会将方法声明为static。如Math类的所有方法都是静态static的。

    2.3、static代码块

           被static修饰的代码块,我们称之为静态代码块,静态代码块会随着类的加载一块执行,而且他可以随意放,可以存在于该了的任何地方。

  • 相关阅读:
    nullnullConnecting with WiFi Direct 与WiFi直接连接
    nullnullUsing WiFi Direct for Service Discovery 直接使用WiFi服务发现
    nullnullSetting Up the Loader 设置装载机
    nullnullDefining and Launching the Query 定义和启动查询
    nullnullHandling the Results 处理结果
    装置输出喷泉装置(贪心问题)
    数据状态什么是事务?
    停止方法iOS CGD 任务开始与结束
    盘文件云存储——金山快盘
    函数标识符解决jQuery与其他库冲突的方法
  • 原文地址:https://www.cnblogs.com/alamZ/p/7682556.html
Copyright © 2011-2022 走看看