我是靠谱客的博主 笨笨斑马,最近开发中收集的这篇文章主要介绍什么是final、static和static final?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

整理一下笔记,温故而知新,激励自己一直去学习,慢慢的进步,加油????,同时也期待你们的三连鼓励

final:最终的——不可被改变的(修饰变量的)

修饰变量:不能被修改——1、在声明的同时进行赋值,如果没有赋值就在构造方法中进行赋值

                                      ——2、不管变量是成员变量还是局部变量,被fianl修饰的变量都不能修改

修饰方法:不能被重写

修饰类:被final修饰的类不能被继承,可以去继承

用代码来说明:

 static:静态——修饰属性,方法,代码块

(1)修饰属性:静态属性,也可叫类变量 ,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个。通过  类名.属性名  来访问。是在类加载时被创建并进行初始化,类加载的过程只进行一次,也就是类变量只会被创建一次。

常见的问题:

        1、成员变量有哪些?  

                成员变量分为静态变量和实例变量。

        2、静态变量和实例变量的一般在哪里初始化?

                静态变量:一般在静态方法中初始化,是在类加载时被创建并进行初始化

                实例变量:一般在方法中初始化,在创建对象时被初始化的

        3、静态变量和实例变量的区别?

                静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个;

                实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。在Java开发中,上下文类和工具类中通常会有大量的静态成员。

        4、静态变量(静态方法)和实例变量(实列方法)哪个多?

                 实例变量(实例方法)多。实例变量保存在堆中,new一个就保存一个;

静态变量保存在方法区中,只有一个。

看如下面的代码:实例变量每次创建对象时都会重新保存,每次保存时都会初始化,所以a=0,当a++时等于1,此时a=1;静态变量保存在方法区中,只会保存一次,先创建了一个a对象,执行方法AA,一开始b=0,然后b++=1,后创建了a1对象,此时b=1,所以b++=2,b=2。

 

(2)静态方法:通过  类名.方法名  直接访问    

静态方法:

  1. 用static修饰
  2. 属于类,只有一份,存在方法区
  3. 用这个变量,通过类名去点“.”
  4. 什么时候用:当被所有对象共享的数据被同时使用的时候,设计为静态。假设方法为非静态的,那么输出的结果与方法,对象、数量都无关,只与参数有关。结果只和参数有关,与方法、对象、数量和其他无关时,设计为静态
  5. 静态方法中没有隐式this,this表示当前对象,静态方法属于类,不属于对象,不能调用动态的方法

  注意:static修饰的方法,不能直接访问本类中的非静态(static)成员(包括方法和属性),

本类的非静态方法可以访问本类的静态成员(包括方法和属性),可以调用静态方法。

静态代码块:代码块就是:{  }里面的对象

  1. 有static修饰:static{  }
  2. 属于类,在类被加载时自动执行,
  3. 静态代码块只执行一次,因为类只被加载了一次
  4. 什么时候用:加载静态资源的时候

例如:游戏的背景图片只有一张,像图片、mp3、视频都属于静态的

static final:常量

被static final修饰的变量是常量,常量是不能被修改的,所以写静态的不如写常量

  1. 声明的同时就需要赋值,不然会报错
  2. 是静态修饰的,所以用类名去点,变量不能改变
  3. 建议用大写,如果有多个单词全部都要大写,单词之间用下划线分割:例如:MAX_A
  4. 什么时候用:数据永远不会改变,经常使用
  5. 如何编译:会把变量替换为具体值,相对效率较高(变量在编译的时候每次都会先读取Int a;然后再读取值)

最后

以上就是笨笨斑马为你收集整理的什么是final、static和static final?的全部内容,希望文章能够帮你解决什么是final、static和static final?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部