117.info
人生若只如初见

Java超详细透彻讲解static

static是Java中的一个关键字,表示静态的意思。它可以用来修饰类、方法和变量。

静态成员变量:被static修饰的成员变量,也称为类变量。它属于类本身而非实例,所有该类的实例共享同一个静态变量。可以通过类名来访问,也可以通过实例对象来访问。静态变量在类加载时被初始化,并且只会被初始化一次。静态变量在内存中的存储位置是在静态数据区。

静态方法:被static修饰的方法,也称为类方法。它属于类本身而非实例,可以通过类名来调用。静态方法可以直接访问类的静态变量,但不能直接访问类的非静态变量。静态方法可以在没有创建类的实例对象的情况下被调用。静态方法不能被子类重写,但可以被子类方法隐藏。

静态代码块:用static修饰的代码块,在类加载时执行。静态代码块在类加载时只会执行一次,并且只能访问类的静态变量和方法。静态代码块常用于进行一些静态变量的初始化操作。

静态内部类:被static修饰的内部类,称为静态内部类。静态内部类与普通内部类不同,它不能直接访问外部类的非静态成员,只能访问外部类的静态成员。

总结:

  1. static修饰的成员属于类本身,而非实例;

  2. 静态成员在类加载时被初始化,并且只会被初始化一次;

  3. 静态成员可以通过类名直接访问,也可以通过实例对象访问;

  4. 静态方法可以直接调用,而不需要创建类的实例对象;

  5. 静态方法不能直接访问非静态成员;

  6. 静态代码块在类加载时执行,只能访问静态成员;

  7. 静态内部类与普通内部类不同,不能直接访问外部类的非静态成员。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe264AzsLBgBfDFw.html

推荐文章

  • java的calendar.add方法怎么使用

    在Java中,Calendar类提供了一个add方法来增加或减少特定的日期字段。add方法有两个参数:第一个参数是一个整数,表示要添加或减去的日期字段的值;第二个参数是...

  • java如何获取当前年月日

    在Java中,可以使用java.time包中的LocalDate类来获取当前年月日。以下是一个示例代码:
    import java.time.LocalDate;
    public class Main {
    publ...

  • Java释放库失败如何解决

    在Java中,当调用本地库(Native Library)失败时,可能是由于以下几个原因导致的: 本地库文件没被正确加载:确保本地库文件(通常是.dll文件或.so文件)存在于...

  • java死锁为什么会产生

    Java死锁是由于多个线程同时持有一些资源,并且每个线程都在等待其他线程释放它们所持有的资源,导致所有线程都无法继续执行的情况。产生死锁的原因通常是以下几...

  • jsp学习之scriptlet的使用方法详解

    在JSP中,scriptlet是一种在JSP页面中嵌入Java代码的方式。它被包含在标签中,可以在其中编写任意的Java代码。
    下面是scriptlet的使用方法的详细解释: 在J...

  • bat批处理 if 命令示例详解

    if命令是批处理中常用的条件判断命令,可以根据条件的满足与否执行不同的操作。下面是一些if命令的示例及详解: 检查两个值是否相等: if %a% == %b% (
    ech...

  • Java中的ArrayList类常用方法和遍历

    ArrayList是Java中常用的动态数组类,它提供了许多常用的方法和遍历方式,以下是一些常用的方法和遍历方式:
    常用方法: add(E element):向ArrayList中添加...

  • Java实现读写文件功能的代码分享

    下面是一个示例代码实现Java的读写文件功能:
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;