JAVA学习笔记:STATIC关键字的使用方法

简介: static作为java的关键字,主要有以下5点用处: 静态变量 ,静态方法,静态代码块,内部静态类,静态导包

static作为java的关键字,主要有以下5点用处

静态变量
静态变量和非静态变量的区别在于,静态变量在类初次加载的时候初始化,而非静态变量在类实例化的时候初期化
典型用法:定义常数

静态方法
静态方法和非静态方法与静态变量和非静态变量的区别类似,静态方法为class所有,可以直接通过class.method的方式调用,而非静态方法为对象所拥有,需要先实例化类得到一个对象后,通过object.method进行调用
典型用法:各种utils

静态代码块
类加载时直接执行,先于main方法,常用于初始化
典型用法:单例模式

内部静态类
外部需要通过ParentClass.ChildClass的方式调用,ParentClass的静态代码可以通过ChildClass的方式直接调用
典型用法:HashMap

静态导包
使指定类的静态方法或者静态变量对本类可见
典型用法:就它自己,静态导包

下面是一个包含所有用法的例子,如果你看懂了,66666666666666

package architecture;

/**
 * 静态导入
 */
import static java.lang.System.out;

public class TestClass {

    /**
     * 静态变量
     */
    public static final String BLOG = "soaringroad";

    static {
        out.println(BLOG + ":静态代码块 start");
        new TestStaticClass();
        out.println(BLOG + ":静态代码块 end");
    }

    /**
     * 静态方法
     * 
     * @param args
     */
    public static void staticMethod() {
        out.println(BLOG + ":静态方法");
    }

    /**
     * 静态内部类
     */
    private static class TestStaticClass {
        public TestStaticClass() {
            out.println(BLOG + ":内部静态类 start");
            staticMethod();
            out.println(BLOG + ":内部静态类 end");
        }
    }
}
相关文章
|
2天前
|
存储 Java
Java 中的静态(static)
【10月更文挑战第15天】静态是 Java 语言中一个非常重要的特性,它为我们提供了一种方便、高效的方式来管理和共享资源。然而,在使用过程中,我们需要谨慎考虑其优缺点,以确保代码的质量和可维护性。
|
14天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
21 3
|
21天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
19 5
|
27天前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
115 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
2月前
|
存储 Java
Java之静态(static)与实例(instance)
Java之静态(static)与实例(instance)
|
21天前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
29 0
|
21天前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
33 0
|
4天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
71 38
|
1天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
5天前
|
Java 调度
[Java]线程生命周期与线程通信
本文详细探讨了线程生命周期与线程通信。文章首先分析了线程的五个基本状态及其转换过程,结合JDK1.8版本的特点进行了深入讲解。接着,通过多个实例介绍了线程通信的几种实现方式,包括使用`volatile`关键字、`Object`类的`wait()`和`notify()`方法、`CountDownLatch`、`ReentrantLock`结合`Condition`以及`LockSupport`等工具。全文旨在帮助读者理解线程管理的核心概念和技术细节。
18 1
[Java]线程生命周期与线程通信