Day05_19_方法回顾

方法回顾

     *  静态方法 和 非静态方法
 
          1、静态方法属于类所有,类实例化前即可使用; 

          2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;

          3、因为静态方法会在类加载的时候就进行初始化,所以静态方法不需要实例化类,就可以使用,而类中的非静态方法必须在类实例化之后才能分配内存;  

          4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;

          5、静态方法效率上要比实例方法高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁; 

          6、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
       
          7、静态变量 static i; 静态变量在类加载的时候进行初始化,不需要创建对象,内存就开辟了。静态变量存储在方法区内存中。静态方法中无法直接访问实例变量和实例方法

          -  主要区别:静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
                    
                     静态方法与实例方法在性能和占用内存上没有明显的区别,是否声明为静态方法需要从类型的非静态字段、事件、面向对象扩展和多态这三方面来考虑。
  • 值传递 和 引用传递

      -  在Java中一直传递的都是变量/常量/字面值的值,有的值是字面值,有的值是地址。
    
      -  在参数传递时,Java只遵循一种语法机制,就是将变量中的值传递过去,只不过有时候是一个字面值,有时候是另一个java对象的地址。
    
      -  值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
    
      -  引用传递(pass by reference) 是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
    
posted @ 2021-03-29 14:34  失昼  阅读(43)  评论(0)    收藏  举报