静态方法跟实例方法有什么区别
体形式如: 类名.方法名
而实例化时必须使用new关键字,具体格式如:
ArrayList one=new ArrayList();
静态是类的,实例是对象的.oo的观点就是静态成员就是类所有对象所具备的特点,而实例成员是每个对象自有的实现,是不一样的.比如说每个人都有头发,眼睛,耳朵,名字,性别,年龄,身高等等.这些都是静态的,但是每个人的这些属性是不一样的,这些不同的属性就是实例化.所以也可以说静态方法不需要依赖类当中的属性,静态方法本身就可以封闭的完成一个功能,而实例的方法更多会用到类中的属性.
静态方法在它一启动的时候就实例化了,因而静态内存是连续的,而且静态内存是有限制的;而实例方法是在程序运行中生成内存的,实例申请的是离散的空间.静态方法大多用的数据连接上.
关于静态方法和实例方法的一些误区。 一、 静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存。 事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。 二、 静态方法在堆上分配内存,实例方法在堆栈上。 事实上所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个内存区域是不可写的。 三、 实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。 事实上如果一个方法与他所在类型的实例无关,那么它就应该是静态的,决不会有人把它写成实例方法。所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤,没有...
静态方法中的代码只能使用类的静态成员,而不能直接使用非静态成员。这是因为静态方法属于类所有,在其中不能判断非静态成员究竟属于那个对象。而实力方法既能够使用静态成员,也能够使用非静态成员。
静态构造函数
实例构造函数属于对象所有,而是用static修饰符的静态构造函数为类的所有对象共享,并且只在首次使用该类时被调用。