Day8 - static

static

是一个静态修饰符,用于修饰成员变量、成员函数。
当成被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。
格式:类名.静态成员

总结:
  1. 可以直接被类名调用
    2.被所有对象共享
    3.随着类的加载、类(字节码)消失而消失
    4.静态先存在,对象后存在
对象变量(实例变量)和类变量(静态变量)的区别
  1. 静态变量随着类的加载而存在于方法区中。
  2. 对象变量随着对象的创建而存在于堆内存里。
  3. 类变量生命周期长,对象变量生命周期短(随着对象消失而消失)。

注意事项:

  • 静态成员只能访问静态成员;
  • 非静态方法不仅可以访问静态也可以访问非静态;
  • 静态方法中不可出现this;
  • 好处:节省了内存空间、直接类名调用
  • 弊端:生态周期过长、使用有限制
    总结:静态虽好,但是只能访问静态
什么时候使用static

1.static变量:
当多个对象出现共享数据时、使用static修饰该变量。
对象中的非共享数据要定义成非静态的,其存在于堆内存中。
2.static函数:
当方法内部没有访问到非静态数据(对象的特有的数据),那么该方法可以定义成静态的

Arrays.sort();//工具类Arrays里面的方法都是静态的。

static代码块
  • 随着类的加载而执行,只执行一次。
  • 优先于static方法执行
代码示例:
class Person{
String name;
static{
System.out.println(" ");
}
public static void test(){
System.out.println(" ");
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,687评论 0 11
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,614评论 4 12
  • 第四章 面向对象 面向对象思想 面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码...
    chongsheng阅读 581评论 0 0
  • 由于IE9之前的版本对JScript对象和COM对象使用不同的垃圾收集例程,因此闭包在IE这些版本中会导致一些特殊...
    BertFu阅读 305评论 0 0