什么时候使用静态变量1、static是静态的意思;
2、所有static关键字修饰的都是类相关的,属于类级别;
3、所有staic修饰的,都采用“类名.”的方式访问(不需要对象参与访问,不会出现空指针异常);
4、static修饰的变量:静态变量(在类加载时进行初始化,存储在方法区);
5、static修饰的方法:静态方法;
当这个类型的所有对象都有某个属性值是一样的,如果定义为实例变量就会浪费一定的内存空间,可以将它定义为类级别的静态变量,在方法区中只保留一份节省空间。
public class Chinese{
String name;
String idCard;
String country;
public Chinese(){
}
public Chinese(String s1,String s2,String s3){
idCard=s1;
name=s2;
country=s3;
}
}
public class StaticTest01{
public static void main(String[]agrs){
Chinese c1=new Chinese("1111111112222","张三","中国");
Chinese c2=new Chinese("555566666772","李四","中国");
}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NQasOKpi-1653231648470)(D:BaiduNetdiskDownload 1-JavaSE 01-Java零基础入门教程 01-课堂笔记+思维导图 4-JavaSE零基础课堂画图 16-变量什么时候声明为静态变量.png)]
静态变量的内存空间
//static String country="中国";
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pLXWrBRX-1653231648472)(D:BaiduNetdiskDownload 1-JavaSE 01-Java零基础入门教程 01-课堂笔记+思维导图 4-JavaSE零基础课堂画图 17-变量什么时候声明为静态的2.png)]
静态代码块小结:
1、实例的一定需要使用”引用.“来访问;
2、静态的也可以使用”引用.“来访问,建议使用”类名.“访问,为了和实例变量区分开;
3、当静态使用”引用.“访问,运行时也会转为”类.“
语法:
static{ java语句; java语句; java语句; }特点:
1、类加载时执行 ,并只执行一次;
2、在main方法前执行;
3、执行顺序自上而下;
作用:记录类加载日志
实例代码块
{
java语句;
java语句;
java语句;
}
特点:
调用构造方法时,在构造方法前执行
java中的三大变量
变量分类
1、在方法体内的称为局部变量;
2、方法体内的称为成员变量;
3、成员变量分为实例变量和静态变量(static修饰的变量);
4、实例的,都是对象相关的,访问时必须先new对象(会有空指针异常的发生);
空指针异常是怎么发生的
"空引用"访问实例相关的都会出现空指针异常
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4eO7XnpY-1653231648476)(D:BaiduNetdiskDownload 1-JavaSE 01-Java零基础入门教程 01-课堂笔记+思维导图 4-JavaSE零基础课堂画图 10-空指针异常是怎么发生的.png)]
三种变量的内存分布
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrh1cT08-1653231648477)(D:BaiduNetdiskDownload 1-JavaSE 01-Java零基础入门教程 01-课堂笔记+思维导图 4-JavaSE零基础课堂画图 18-java中的三大变量.png)]
总结Java中的变量可分为成员变量、局部变量,成员变量分为实例变量和静态变量。局部变量从属于方法保存在栈中,实例变量从属于对象保存在堆中,静态变量从属于类保存在方法区中。



