码迷,mamicode.com
首页 > 编程语言 > 详细

Java static keyword

时间:2018-08-23 23:09:06      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:成员   不可   内存管理   是的   嵌套类   his   时间   lock   block   

Java中static关键字主要用于内存管理(是的,你没听错)。我们可以将它应用到变量、方法、代码块、嵌套类以及导入包中。静态关键字属于类,而不是类的实例。

1.静态变量

  1. 静态变量可以被视为所有对象通用的属性,例如员工的公司名,学生的学校名
  2. 静态变量只在类加载时在方法区(class area)中获取内存

  优点:节省内存

2.静态方法

  1. 静态方法属于类而不是类的对象
  2. 静态方法可以被调用在没有类的实例的情况下,言外之意,静态方法可以通过类调用,自然也可以通过类对象调用
  3. 静态方法可以访问静态数据成员并更改他们的值

  限制:主要有两个限制

  1. 静态方法不能使用非静态数据成员或直接调用非静态方法
  2. 在静态上下文中不能使用this或super关键字,因为他们就没有隐式接受this参数

  Q&A:为什么Java的main方法是静态的?

    因为调用一个静态方法不需要一个对象。如果main方法是一个非静态方法,那JVM需要先创建一个对象然后才调用main方法,这将导致额外的内存分配

3.静态代码块

  1. 静态代码块被用于初始化静态数据成员
  2. 静态代码块在加载main方法之前被执行,可以对比instance initalizer block的执行时间

  Q&A:我们能执行一个没有main方法的程序吗?

  不行。在JDK1.6以前唯一的方式是使用静态代码块,但是自从JDK1.7,他不可能被执行在没有main方法的时候

4.静态内部类

  1. 静态内部类可以使用外部类的静态数据成员和方法,但不能使用非静态数据成员和方法。不同于非静态内部类,可以使用外部类的所有数据成员和方法
  2. 静态内部类常用于build模式

5.静态导包

  1. 可以少写包的前缀,让代码更优美
  2. 不建议使用

 

Java static keyword

标签:成员   不可   内存管理   是的   嵌套类   his   时间   lock   block   

原文地址:https://www.cnblogs.com/boboshenqi/p/9526942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!