1/
static静态的特点:
1):随着类的加载而加载 随着类的消失而消失
2):优先于对象而存在
3):被 包含静态的这个类的所有对象 共享
4):不仅能用对象名调用 还能用类名直接调用
(虚拟机停掉 才会消失,所以不要把任何东西都定义成静态的,因为静态的会一直存在静态区中,直到虚拟机停止。而堆内存中的内容只要没有指向的时候,过一段时间就会被回收)
2/
静态的使用注意事项
1):静态方法里面不能有this关键字(原因是因为静态是随着类的加载而加载,this是随着对象的创建而存在。静态比对象先存在。)
2):非静态的能访问静态的,静态的不能直接访问非静,如果静态的非得访问非静态的内容 需先创建对象使用对象调用非静态的内容
3/
静态变量 成员变量 局部变量的区别
书写位置
静态 :类中方法外 加了一个关键字 static
成员: 类中方法外 没有static
局部: 方法内
内存:
静态:方法区里面的静态区
成员:堆
局部:栈
生命周期
静态:随着类的加载而加载 随着类的消失而消
成员:随着对象的创建而存在 随着对象消失而消
局部:随着方法的调用而存在 随着方法的执行完毕而消失
初始化:
静态:有默认初始化
成员:有默认初始化
局部:没有了默认初始化 所以在使用之前必须先赋值
调用不同:
静态:类名可以调用 对象名也可以调用
成员:只能对象名调用
局部:只能在方法内部直接使用 无需在前面加限定
4/
在public static void main(String []args) 中
String[] args 以前用于接收键盘录入的,现在有Scanner,就不再使用了
其中,最后的args可以被改变为其他字符.
5/
Math.random()会生成大于等于0.0并且小于1.0的伪随机数
|
|