百度百科定义static关键字

通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。

总的来说,用static声明的静态变量就是一种独立于类的对象的方法或属性

在B站上听了狂神老师的课程,我了解到了static的一些重要特性,在这里进行一些归纳总结:

1.static声明的方法和属性是可以直接用类名调用,而不需要对象调用的

譬如,在类A中:

class A{
public static int num1;
public int num2;
}

此时想在主类里面调用num1,num2则:

public class B{
public static void main(String[] args){
A a = new A();
System.out.println(A.num1);//此处可以用a.num1也可
System.out.println(a.num2);//此处只能用对象a调用
}
}

静态方法与之同理

2.针对代码块而言,static代码块 先于 非静态代码块 先于 构造方法

如图所示,在创建对象时,执行构造方法之前会先执行代码块内的内容,而static先于非静态的,再次说明static声明的内容是和类一起初始化的,而不是对象

注:static声明的内容只执行一次,无论创建多少次对象都只执行一次

也就是说,还是上面的例子,如果:

A a = new A();
A b = new A();
A c = new A();

static的代码块的内容还是只执行一次

3.静态导入包的使用

在对其他的工具包进行导入时,可以添加static关键字,例如:

import static java.lang.System.out;

在你想要进行System.out.println("")输出时,可以写作:

out.println("");

我的理解是,通过导入System包的out变量,并用static来修饰这一个out变量,使之在该java文件中的out变成一个静态变量,就可以像调用类中static修饰的变量一样,直接调用out。

这是我的static关键字学习过程中的收获,如果大家有不同的想法欢迎讨论。

最新文章

  1. 微信测试服务器验证sha1加密法,工具类
  2. cocos3.12预编译android报错RuntimeJsImpl.cpp
  3. 学习shell脚本笔记
  4. java基础九[网络与线程](阅读Head First Java记录)
  5. Linux 常用
  6. 通过 adb命令发送广播
  7. iOS开发——UI篇&九宫格算法
  8. springmvc的几点见解
  9. jquery $.ajax $.get $.post的区别
  10. 构建日均千万PV Web站点1
  11. 2-jQuery - AJAX load() 方法【进阶篇】
  12. js中的稀疏数组和密集数组
  13. <<Senium2自动化测试>>读书笔记一
  14. yii2高级模板使用一个域名管理前后台
  15. C语言第三次作业---单层循环结构
  16. 安卓高级3 Android应用Design Support Library完全使用实例
  17. HDU ACM 1690 Bus System (SPFA)
  18. 用redis来实现Session保存的一个简单Demo
  19. Win10系统Ping端口及利用telnet命令Ping 端口
  20. 【c++】c++ 11之lamba表达式

热门文章

  1. 比赛难度(HDU4546)
  2. 1246 - Colorful Board
  3. CHARINDEX 用法
  4. Atcoder ABC137D:Summer Vacation(贪心)
  5. C++string字符串截取其中元素 截取定位字符串
  6. Parallel.ForEach 之 MaxDegreeOfParallelism
  7. springboot配置health接口
  8. centos6.5搭建LAMP
  9. Redis_设置密码
  10. 不用find,怎样递归地给目录设置700,给文件设置600权限?