静态 (static)
脱离对象–和对象解绑—和这个类的对象无关了
class A {
修饰符 static 数据类型 变量名 =初始化(可写可不写)
}
静态属性不保存在对象中 而是保存在类中(由于类在程序运行中只有一份 所以静态属性只有一份)
静态方法:修饰符 static 返回值类型 方法名称(形参列表){ }
修饰符—final 语法上可以 但是没有意义 静态方法本来就不属于继承范畴不能被重写
静态方法中一定没有抽象方法
和对象解绑:静态方法无this 所以调用也不需要this
不能使用普通属性或调用普通方法
静态代码块
static {语句}
static {
}
或者
static void m(){
}
static int a=…
不能使用普通属性或调用普通方法
JVM 内存区域划分:
1、用来放置对象的区域------堆(Heep)
2、运行过程中临时数据的区域------栈 (Stack)
3、用来放置加载进来的对象的区域------方法区(Method Area)
属性保存在对象中,对象在堆上 所以属性在堆上
局部变量 保存在栈帧中 栈帧在栈上
静态属性在类上 类在方法区中
练习:
让两个String类型的数相加 返回的数字也用string表示
public static String BigNumber(String s,String t) {
int a=Integer.valueOf(s).intValue();
int b=Integer.valueOf(t).intValue();
int sum=a+b;
return sum+"";
}