java中的静态代码块,java静态代码分析工具
Java中static的作用?
Java 中也支持用 static 关键字修饰的成员方法,即静态成员方法。与此相对应的没有用 static 修饰的成员方法称为非静态成员方法。与静态成员变量类似,静态成员方法是类方法,它属于类本身而不属于某个对象。因此静态成员方法不需要创建对象就可以被调用,而非静态成员方法则需要通过对象来调用。
修饰对象:static可以修饰内部类、方法、成员变量和代码块,但不能修饰外部类和局部变量。特点:被static修饰的成员属于类,而不属于类的对象。因此,可以通过类名直接访问,而不需要创建对象。限制:static方法不能使用this关键字,因为this代表当前类的对象,而static方法属于类层次。
static:核心含义:属于类。修饰对象:变量、方法、代码块。作用:共享数据、类级访问。const:现状:保留字,无实际功能。替代方案:使用static final组合。
java代码块
静态代码块:只要一用到某个类,那么这个类的静态代码块就先执行,比如:public class Dog(){ int i = 0; static { i = 1; } public Dog(){ i = 2; } }当你new 一个Dog()对象时,首先i= 1 会执行,然后才执行 public Dog(){}这个方法。
代码块是一段被视为一个单元的代码。 从编程语言角度看,不同语言中的代码块有不同形式和用途。比如在Java中,代码块分为普通代码块、构造代码块、静态代码块等。普通代码块就是在方法中直接用大括号括起来的代码,它可以在方法执行时执行特定操作。
直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。
静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候就已经加载 可以用类名直接调用)。
Java中的finally是一个代码块,在代码执行后始终会被执行,无论是否发生异常。基本概念finally是Java的保留关键字,用于定义一段必定执行的代码块。它通常与try-catch语句配合使用,确保资源释放或清理操作(如关闭文件、数据库连接等)无论是否发生异常都能执行。
Java静态代码块和静态方法的区别
修饰方法:方法不能被子类重写(override)。修饰类:类不能被继承(如String类)。 static 关键字:属于类,不依赖实例静态变量:类加载时初始化,所有实例共享同一份数据。静态方法:可直接通过类名调用,不能访问非静态成员(无this引用)。静态代码块:类加载时执行一次,常用于初始化静态资源。
静态代码块在类加载时执行,且仅执行一次。非静态成员:在对象实例化时初始化。非静态代码块在每次创建对象时执行,顺序位于构造函数之前。若静态方法中直接引用未初始化的非静态成员,会导致编译错误(因非静态成员依赖对象存在)。
静态方法和非静态方法是Java编程语言中的两种方法类型,它们之间存在明显的区别。静态方法属于类,而非静态方法属于类的实例。具体来说,静态方法可以在类实例化之前被调用,而非静态方法只能通过实例化后的对象调用。静态方法可以访问类中的静态成员,而非静态方法可以访问类中的任何成员。
Static int data语句说明data为类变量,为一个类的共享变量,是所有对象共享的,它不 属于任何对象,是属于整个类的(静态方法也是一样)。Static定义的是一块为整个类共有的一块存储区域。其变量可以通过类名去访问:类名.变量名(与通过对象引用访问变量是等价的)。
