类方法(静态方法):指的是用static关键字修饰的方法。此方法属类本身的方法,不属于类的某一个实例(对象)。
实例方法(对象方法):不用修饰符static声明的方法为实例方法。
误区:
1.静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存
事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的
2.静态方法在堆上分配内存,实例方法在堆栈上
事实上所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个内存区域是不可写的。
3.实例方法需要先创建实例才可以调用,比较麻烦,静态方法不用,比较简单。
事实上如果一个方法与他所在类型的实例无关,那么它就应该是静态的,决不会有人把它写成实例方法。所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤,没有麻烦简单一说。实际上上你可以把所有的实例方法都写成静态的,将实例作为参数传入即可。