记录生活中的点点滴滴

0%

day13

java.util.Vector 动态数组

get(index)

addElement(OBject obj)

size()

栈:局部变量

堆:new出来的结构,数组

方法区:类的加载信息,静态变量,常量

static关键字的使用:

  • static:静态的

  • static可以用来修饰:属性,方法,代码块,内部类

  • 使用static修饰属性:类变量(或静态变量

  • 使用static修饰的变量被类的所有对象所共享,类的所有对象共用一个静态变量

    对比:不用static修饰的属性,称为:实例变量,每个对象拥有一份实例变量

       通过对象a修改某个实例变量,不会影响其他对象同名的实例变量的值。

    我们可以通过对象a去调用或修改静态变量的值,那抹会影响其他对象对此静态变量的调用

静态变量和实例变量在内存中分配的位置不同:

  • 实例变量,随着对象的创建而产生,分配在堆空间中
  • 静态变量,随着类的加载而产生的,分配在方法区里

静态变量的加载要早于对象的创建

   静态变量 非静态变量(实例变量)

类  可以  不可以

对象  可以   可以

使用static修饰方法:静态方法(随着类的加载而加载)

   静态方法 非静态方法(实例变量)

类   可以    不可以

对象   可以     可以

静态方法内:可以调用静态属性或者静态方法,不可以调用非静态属性和非静态方法

非静态方法内:可以调用非静态属性或者非静态方法,可以调用静态属性和静态方法

如何判断属性是否声明为:static? 是否需要类的多个对象类共享此属性;很多常量都声明为static 如何判断方法是否声明为:static? 操作静态变量的方法,工具类中的方法。(Math)