Static关键字的学习 作者:一衡 今日学习主要分为三大块:1、基础班知识的回顾;2、static关键字;3、代码块。 一、基础知识的回顾。 主要回顾了 1、方法 方法特点:类中的一段具有特定功能的程序,提高了代码的复用性和可维护性。 方法的调用(直接调用、输出调用、赋值调用); 定义方法需明确两点(返回值类型,参数列表); 方法重载(参数列表必须不同); 2、数组 数组特点:1)、元素类型必须一致 2)、元素有整数索引 3)、一旦定义好长度则无法改变 4)、可以存储基本数据类型 5)、也可以存储引用数据类型 3、定义类 二、static关键字 可以修饰成员变量和成员方法。 1、特点:1)、被static修饰的成员变量属于类,不属于这个类的某个对象(被所有的对象所共享)。 2)、被static修饰的成员可以并且建议通过类名直接访问(可以使用类名调用)。 3)、被static修饰的成员的加载优先于对象,随着类的加载而加载。 2、注意事项: 1)、静态只能调用静态(如果想调用,需得创建对象),非静态可以调用静态的。 2)、静态的方法中是否有this这个对象?没有的。 3、静态优缺点: 1)优点:对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份。 2)缺点:访问出现局限性。(静态虽好,但只能访问静态) 4、Math(属于java.lang包,不需要导包) Math常见的方法 static double PI :π值 static double abs(double a) :返回绝对值 static double ceil(double a) : 向上取整 static double floor(double a):向下取整 static long round(double a) :四舍五入 static double max(double a, double b) :两个数的较大值 static double pow(double a, double b) :返回第一个参数的第二个参数次幂 static double random() :返回一个随机数,[0,1) 5、工具类,以static修饰的方法,不要创建对象。 6、类变量与实例变量辨析 A:类变量:其实就是静态变量 定义位置:定义在类中方法外 所在内存区域:方法区 生命周期:随着类的加载而加载 特点:无论创建多少对象,类变量仅在方法区中,并且只有一份 B:实例变量:其实就是非静态变量 定义位置:定义在类中方法外 所在内存区域:堆 生命周期:随着对象的创建而加载 特点:每创建一个对象,堆中的对象中就有一份实例变量 三、代码块 1、局部代码块 存在于方法中,控制变量的生命周期(作用域)。 2、构造代码块 抽取构造方法中重复的代码,每次创建对象都会执行,并会在构造方法前执行。 3、静态代码块 被static修饰的代码块,作用加载类是需要做一些初始化化,例如驱动。 静态代码块只会执行一次 4、同步代码块(多线程中会讲解) 5、各个代码块执行的流程 静态代码块--》main方法--》构造代码块-》构造方法
|