static修饰方法的使用

static 修饰方法

1、static修饰的方法被称之为静态方法也叫作类方法,加static的方法,可以通过类名直接访问,也可以通过对象名访问,而不加static只能通过对象名访问,加了static的方法,不能再内部写this,因为直接用类名点方法的时候,没有当前对象

注:static修饰的方法一般不通过对象名称访问:访问时会提示 不应该通过类实例对象访问静态变量。最好是通过 类.对象 的方式调用。

2、加了static的方法,不能再方法内部访问非static的属性和行为;

原因:1、在静态方法的内部无法确认非static的内容属于哪个对象,它是通过类名调用,这时没有对象----这就相当于工具类

2、static修饰的方法,在类加载的时候是被首先加载的,然后加载非static内容,所以加载static时 是不知道非static内容的

总结:只有调用的时候无需考虑对象时,才定义为static---工具类的工具方法,可以被定义为static方法

工具类:没有产生对象的必要,只要实现某个功能即可,哪个对象完成的都没有影响,比如:分页,转换时间,连接数据库等

工具方法:该方法在完成功能的时候,不会对对象的数据产生任何影响


凡是用static修饰的都有量大共性:

1、该内容与对象无关,只与类有关;

2、该内容总会在类加载器有特殊操作

注:static不能用来修饰构造方法,因为static修饰的是与对象无关的内容,而构造确实生成对象的五大方法之一


初始化块--------{

在这个块中可以书写任何语句

}

1、这是一个没有方法名、参数列表、返回类型的方法体

2、在这个块中可以书写任何语句,它在产生对象的时候自动被调用,它是用来美new出一个对象,就用来执行初始化的,又被称之为实例初始化块,这是与构造相重叠的,写在初始化块中的代码都可以写在构造方法中;但是他的执行顺序是先执行初始化块在执行构造

 

Static{

}----静态初始化块

1、与对象无关,满足static的特征,一个类只执行一次;

2、执行的时机是加载的时候

总结:可以再静态初始化块中书写一些运行前的准备工作,只运行一次,没有别的可以替代,可以节约运行时间和运行速度;

当调用者产生一个对象的时候

1、在堆中划分对象的空间;

2、在空间划分属性

3、执行实例初始化块

4、执行属性的赋值;

5、执行构造方法当中我们书写好的代码;

相关推荐:https://www.cnblogs.com/eason-chan/p/3644660.html

补充

final的作用

    被final修饰的类不可以被继承

    被final修饰的方法不可以被重写

    被final修饰的变量不可变


相当于是被final修饰的对象不能重新new 一个赋值或者把另一个新的对象之间赋值给该对象,但是该对象的值是可以修改的,例如:
    用了map、list、数组、StringBuilder 、StringBuffer .它们的内容是可以修改的。
    String和基本数据类型修饰的变量。同样final表示地址不能修改,但是地址的存储跟常量的值有关,给他重新赋值会指向另外一个对象,地址就改变了。

关于String str = "abc"的内部工作。Java内部将此语句转化为以下几个步骤:

(1)先定义一个名为str的对String类的对象引用变量:String str;

(2)在栈中查找有没有存放值为"abc"的地址,如果没有,则开辟一个存放字面值为"abc"的地址,接着创建一个新的String类的对象o,并将o的字符串值指向这个地址,而且在栈中这个地址旁边记下这个引用的对象o。如果已经有了值为"abc"的地址,则查找对象o,并返回o的地址。

(3)将str指向对象o的地址。

使用String str = "abc";的方式,可以在一定程度上提高程序的运行速度,因为JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象,而对于String str = new String("abc");的代码,则一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象,从而加重了程序的负担。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值