栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础整理(七)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础整理(七)

static关键字
  • 实例相关的,必须先有对象才能通过 “引用.” 访问,可能会出现空指针异常

    静态相关的,不需要对象的参与即可通过 “类名." 访问,没有空指针异常发生

  • 空指针异常只有在什么情况下发生?

    只有在”空引用“访问”实例“相关的,都会出现空指针异常

  • 静态变量在类加载时初始化,不需要new对象,静态变量的空间就开出来了,静态变量存储在方法区

  • 什么时候变量声明为静态的?

    如果这个类型的所有对象的某个属性值都一样,不建议定义为实例变量,浪费内存空间。建议定义为类级别特征,定义为静态变量,在方法区中只保留一份,节省内存空间。

    对于方法来说,什么时候定义为实例方法?什么时候定义为静态方法?

    此方法一般都是描述了一个行为,如果说这个行为必须由对象去触发,则定义为实例方法。也可以说是在方法体中,直接访问了实例变量,也定义为实例方法。

    在开发中,如果是工具类的话,工具类中的方法一般都是静态的,因为静态方法不需要new对象就可以直接通过类名调用,极其方便

  • 静态变量与非静态变量

    public class Demo {
        
        private static int age;
        private double score;
        
        public static void main(String[] args) {
            
            Demo d= new Demo();
            
            d.score=0; //调用非静态
            
            //调用静态
            age=0;
            Demo.age=0;
            
        }
    }
    
  • 静态方法与非静态方法

    public class Demo {
    
        public void run(){
            
        }
        
        public static void go(){
            
        }
    
        public static void main(String[] args) {
    
            Demo d= new Demo();
            //调用非静态
            d.run();
            
            //调用静态
            Demo.go();
            go();
    
        }
    }
    
  • 静态代码块、匿名代码块、构造器

    • 静态代码块:与类一起加载执行,永久==执行一次==,在main方法执行之前执行,一个类中可以编写多个静态代码块,加载时机相同,一般按照自上而下的顺序

      • 语法结构:
      static{
          //java语句;
      }
      
      • 静态代码块有什么作用?

        静态代码块不常用,只是给java程序员一个类加载时机,例如需要在类加载时记录日志文档。

    • 匿名(实例)代码块:创建对象时创建,在构造器之前,常用赋初始值,构造方法执行之前执行,每调一次构造方法都会执行一次

      • 语法结构:

        {
            //java语句;
        }
        
      • 也是给java程序员的一个对象创建时机

    • 三者执行顺序:

      先执行静态代码块,在调用构造方法后,执行构造方法前先执行实例代码块,最后执行构造方法内容

    public class Demo {
    
        {
            System.out.println("匿名");
        }
    
        static{
            System.out.println("静态");
        }
    
        public Demo(){
            System.out.println("构造方法");
        }
    
        public static void main(String[] args) {
            Demo demo = new Demo();//1.静态 2.匿名 3.构造方法
        }
    }
    
  • 静态导入包

    //静态导入包
    import static java.lang.Math.random;
    
    public class Demo {
    
        public static void main(String[] args) {
            System.out.println(random()); //可以直接使用random()
        }
    }
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号