面向对象 static

本文详细介绍了Java中的实例变量与静态变量的区别,强调了静态变量存储在方法区且通过类名访问的特点,以及静态方法与实例方法的使用场景。静态块用于类加载时的初始化,适用于加载静态资源。此外,还探讨了内存管理中的堆和栈的分工,以及.class字节码文件在内存中的位置。
摘要由CSDN通过智能技术生成

一 成员变量:

1)实例变量:没有static修饰,属于对象的,存储在堆中

                        有几个对象就有几份

                        通过对象名点来访问                

2)静态变量:有static修饰,属于类的,存储在方法区中

                        只有一份

                        通过类名点来访问

class Aoo{
  int a;
  static int b;
}

二 static:静态的

1)静态变量:

   1.1)由static修饰

   1.2)属于类的,存储在方法区中,只有一份

   1.3)常常通过类名点来访问

   1.4)何时用:所有对象所共享的数据(图片、音频、视频等)

 

 2)静态方法:

    2.1)由static修饰

    2.2)属于类的,存储在方法区中,只有一份

    2.3)常常通过类名点来访问

    2.4)静态方法没有隐形this传递,

             所以在静态方法中不能直接访问实例成员

    2.5)何时用:方法的操作仅与参数相关而与对象无关

 

Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble();---------------实例方法(对象点出来)


double c = Math.random();
int[] a1 = Arrays.copyOf(a,6);
Arrays.sort(arr);---------------------------静态方法(类点出来,首字母大写的点出来)

double a = Math.sqrt(25);

//假设sqrt()不是静态的:
   Math m1 = new Math();
   double a = m1.sqrt(25);

   Math m2 = new Math();
   double b = m2.sqrt(25);

   Math m3 = new Math();
   double c = m3.sqrt(25);

//无论m1,m2,m3,...,m100中的哪一个对象,
//去sqrt(25),最终的结果都是一样的,
//说明sqrt()的操作仅与参数相关而与对象无关


Arrays.sort(arr);
//假设sort()不是静态的:
   Arrays a1 = new Arrays();
   a1.sort(arr);
   
   Arrays a2 = new Arrays();
   a2.sort(arr);

   Arrays a3 = new Arrays();
   a3.sort(arr);

//无论a1,a2,a3,...,a100中的哪一个对象,
//去sort(arr),最终的结果都是一样的,
//说明sort()的操作仅与参数相关而与对象无关

Noo o4 = new Noo();
Noo o5 = new Noo();    //主方法中调用输出静态块--构造方法--构造方法



class Noo{ //演示静态块
    static{
       System.out.println("静态块");
    }
    Noo(){
        System.out.println("构造方法");
    }

}

3)静态块:

   3.1)属于类的代码,在类被加载期间自动执行,

            类只被加载一次,所以静态块只执行一次

   3.2)何时用:静态块常常用于加载/初始化静态资源(图片、音频、视频等)

三 内存管理:

1)堆:new出来的对象(包括实例变量)

2)栈:局部变量(包括方法的参数)

3).class字节码文件(包括方法、静态变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值