zoukankan      html  css  js  c++  java
  • java学习笔记11-static关键字

    如果在类中使用static关键字创建方法,这种方法称为类方法,可以在这个类中直接引用。而不是用static创建的方法。这种方法称为对象方法(实例方法),需要创建对象后才能使用。

    package lesson;
    
    public class TestDemo {
       public static void methon1(){
           System.out.println("类方法");
       }
       public void methon2(){
           System.out.print("实例方法");
       }
    
       public static void main(String[] args){
           TestDemo.methon1();
           TestDemo.methon2();
       }
    }

    如果在类,方法外,使用static创建的变量。这种变量称为类变量,类变量属于这个类,可以在本类中的任何类方法里面直接引用。而非static关键字声明的变量为成员变量,这种变量属于这个类的对象。可以在实例方法中引用。

    package lesson;
    
    public class TestDemo {
       static int no1=10;
       int no2=20;
       public static void main(String[] args){
           System.out.println(no1);
           System.out.println(no2);
       }
    }

    在类的加载时(第一次调用类),类的成员变量会进行初始化,引用数据类型会默认初始化为null,int和long类型变量初始化为0,float和double的变量会初始化为0.0

    类在加载时,除了初始化变量,还会调用类的静态块和动态快

    静态块:使用static关键字修饰,static{}。有多个静态块会顺序执行

    动态快:动态快不需要任何关键字修饰,直接使用花括号包含。有多个动态快会顺序执行

    类在初始化时,静态块只会在第一次加载时执行一次,而动态快在每次使用此类都会执行。

    package lesson;
    
    public class TestDemo {
        static{
            System.out.println("静态块");
        }
    
        {
            System.out.println("动态快");
        }
    
       public static void main(String[] args){
           TestDemo test = new TestDemo();
           TestDemo test1 = new TestDemo();
    
       }
    }

    当调用静态方法时,是不会加载动态快的

    package lesson;
    
    public class TestDemo {
        static{
            System.out.println("静态块");
        }
    
        {
            System.out.println("动态快");
        }
        public static void Hello(){
            System.out.println("Hello");
        }
    
       public static void main(String[] args){
           TestDemo.Hello();
    
       }
    }

  • 相关阅读:
    编译不通过:提示XXXX不是类或命名空间名 的解决办法
    nginx应用总结(2)--突破高并发的性能优化
    nginx应用总结(1)--基础认识和应用配置
    springboot内置tomcat验证授权回调页面域名
    MySQL实现类似Oracle中的nextval和currval
    Notepad++中删除连续的任意n行
    Spring Boot系列二 Spring @Async异步线程池用法总结
    Spring线程池配置
    Spring异步方法注解 @Async
    异步任务spring @Async注解源码解析
  • 原文地址:https://www.cnblogs.com/myal/p/10750978.html
Copyright © 2011-2022 走看看