0
点赞
收藏
分享

微信扫一扫

Java基础学习笔记-类的静态属性和静态方法

7dcac6528821 2022-01-30 阅读 50

程序运行时的内存占用

代码区(code area) 存放代码
数据区(data area) 存放全局数据、静态数据
堆区(heap area) 存放动态申请的数据
栈区(stack area) 存放局部数据、参数

Static

  • 用static修饰的变量称为静态属性,又叫类变量
  • 用static修饰的方法称为静态方法,又叫类方法(静态方法里,无this)
  • 用来修饰初始化语句块,称为静态初始化语句块

类的静态属性和静态方法

  • 即使没有创建该类的具体对象,类中的static类成员也会存在,这时可以通过:
    类名.静态变量
    类名.静态方法
    == 你知道main()为什么要用static修饰的原因了吗?
    == main()方法中的static可以去掉吗?

  • static方法中不能直接调用非static的域或方法(必须通过对象名引用)。
    static函数并不需要先产生任何对象,就可以通
    过类名来调用。
    non-static数据/函数和对象绑定
    在static函数中“直接”取用non-static数据/函数,会产生语法错误。

静态代码块

只能定义在类里,独立于任何方法,不能定义在方法里
里面的变量都是局部变量
会在类被加载时自动执行
一个类中允许定义多个静态代码块,执行顺序=定义顺序
只能访问类的静态成员,不允许访问实例成员(说实话这个我没太搞懂,我再学习一下然后会回来,把这里补一下我的大白话理解)

静态代码块与非静态代码块的异同点

  • 相同点:
  1. 都在JVM加载类时且在构造方法执行之前执行,在类中可定义多个
  2. 在代码块中对一些static变量进行赋值
  • 不同点:
  1. 静态代码块在非静态代码块之前执行
    静态代码块—>非静态代码块—>构造方法
  2. 静态代码块在第一次new执行一次,之后不再执行
    非静态代码块在每new一次就执行一次

在这里插入图片描述

这是我作为一名前端,第一次学习JAVA,如果本文有错误,欢迎路过的小哥哥小姐姐们帮助我纠正错误哦~~

举报

相关推荐

0 条评论