为什么需要学习static关键字?
针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑使用static关键字
1
static概述: 多个对象共享同一份数据
static的特点:
1.static修饰变量又称为共享变量,类变量,静态变量
2.静态成员属于某一类的,而不属于某一个具体的对象
3.访问静态成员的方式:
a.通过对象访问 不建议
b.通过类名访问
c.通过读写方法访问
1
2
3
4.静态static关键字可以修饰变量,还能够修饰方法,同时还可以修饰代码块
5.static修饰的方法称为类方法,方法体内部称为静态环境/静态上下文
a.非静态环境可以访问静态变量
b.静态环境下只能够访问静态变量
c.静态环境下不能够出现this,super
1
2
3
6.静态修饰方法的意义? – 简化代码
a.静态方法用来访问静态成员
b.编写工具类
1.构造方法私有
2.成员方法添加static关键字修饰
Arrays 工具类 Math 工具类
1
7.static还可以修饰类,但是必须是内部类(后面讲解)
8.static的内存图
static是共享的,不变的,放在方法区,静态代码块在类加载的时候就会执行,并且只执行一次
代码块
代码块:
1.局部代码块: 定义在局部位置,限定局部变量的作用域
2.构造代码块: 定义在成员位置,抽取多个构造代码块的重复代码,从而简化代码
在每次构造方法之前执行,并且可以执行多次
3.静态代码块: 定义在成员位置
在类加载的时候执行,只能够执行一次
类加载: 目前理解为在类第一次出现的时候加载或者类的成员被访问的时候加载
作用:
a.初始化静态成员
b.资源文件的读写,以及配置文件的读写,以及连接资源的载入等等
数据库连接
读取配置文件
同步代码块: 定义在局部位置
面试题: 静态变量和非静态变量的区别? – 自己总结
构造方法、构造代码块、静态代码块的执行顺序?
静态代码块 > 构造代码块 > 构造方法
静态代码块在类加载的时候执行只执行一次
构造代码块在每次访问构造方法之前执行,可以执行多次
构造方法每次创建对象的时候执行,可以执行多次
包
为什么需要包?
1.分门别类地管理Java文件
2.处理同一个文件夹中类名重名的问题
包的概述: 本质就是文件夹
包的声明:
package 包名1.包名2…;
包的导入:
import java.util.Scanner;
包的特点:
1.同包下的类相互调用不需要导入
2.在同一个类中使用不同包中的同名类,需要显示导入,例如Date
3.如果一个类没有包,那么默认在default包下,该包下的类永远无法被外界访问,只能够在同包下访问
4.包的声明必须出现在Java文件的第一句
5.如果希望导入一个包中所有的类 java.util.*;
6.java.lang(核心包)包下的类不需要导入
7.在写一个类的时候千万不要和系统的类重名
JDK中常用的包:
1.java.lang 包含了Java中一些核心的包 String Object Math Arrays
2.java.awt: 包含了Java中一些窗口图形化的相关类
3.java.util: 工具包
4.java.net: 网络包
5.java.io: 输入输出流
---------------------
作者:虎啊兄弟
来源:CSDN
原文:https://blog.csdn.net/weixin_44922018/article/details/89407774
版权声明:本文为博主原创文章,转载请附上博文链接!