学习Java第3天--关于static修饰符、静态代码块

本文介绍了Java中static修饰符的作用,指出静态方法和变量不属于对象而是属于类,并强调了静态内容不能直接访问非静态内容。类加载分为主动使用和被动使用两种情况,静态代码块在类第一次被使用时执行一次,常用于初始化静态变量。此外,文章还对比了局部变量和成员变量的区别,包括定义位置、作用范围、默认值、内存位置及生命周期。
摘要由CSDN通过智能技术生成
关于static修饰符:

一旦使用 static 修饰成员方法,那么这就成为静态方法,静态方法不属于对象,而是属于类的。如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它如果有了static关键字,那就不需要创建对象,直接就能通过类名.方法名来使用无论是成员变量,还是成员方法,如果有了static,都推荐使用类名称进行调用:

静态变量:类名称 . 静态变量静态方法:类名称 . 静态方法()

注意:
  1. 静态不能直接访问非静态 原因(因为在静态中是【先】有的静态内容,【后】有的非静态内容-------"先人不知道后人,但是后人知道先人")

  1. 静态方法中不能用 this关键字。

关于类加载:

1、主动使用:

* 启动类 包含main方法

* 创建对象

* 调用类中的静态内容

* 创建对象的时候 父类会被加载

2、被动使用:

* 当前类中的属性通过final+static修饰,此时不会导致类加载

静态代码块:

格式:

publicclass/*类名称*/{
    static{
        //代码块内容
    }
}

特点:当第一次用到本类时,静态代码块执行唯一的一次,静态代码块总是优先于非静态,所以静态代码块比构造方法先执行。

静态代码块典型用途用来一次性地对静态成员变量进行赋值。

使用对象类型作为方法的时:当 new一个对象,传递到方法中作为方法中的参数时,实际传递进去的是对象的地址值。

例如:

Phone p1 = new Phone(); 			

用method(Phone param) 方法,其中参数类型是对象类型,就是把p1当作参数传进去,实际传的是p1的地址。

使用对象类型作为方法的返回值时:返回值其实就是对象的 地址值

局部变量和成员变量:

1、定义的位置不一样:

局部变量:在方法内部

成员变量:在方法外部,直接写在类中;

2、作用范围不一样局部变量:

只有方法中才可以使用,除了方法不能再用成员变量:整个类中全都可以使用

3、默认值不同

局部变量:没有默认值,想使用要初始化

成员变量:没初始化也有默认值,规则:整数->0 小数->0.0 char->空格 boolean->false 引用类型->null

方法的参数就是局部变量,参数在方法调用必然会被赋值;

4、内存位置不一样

局部变量:跟着方法走,位于栈内存

成员变量:位于堆内存

5、生命周期不一样

局部变量:随方法进栈诞生,随方法出栈而消失

成员变量:随对象创建而诞生

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值