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");
        }
    }
}
相关文章
|
7天前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
|
7天前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
7天前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
|
25天前
|
JavaScript Java C#
Java中var的使用方法
这篇文章主要介绍了Java中自JDK10起引入的新特性`var`,这是一种局部变量类型推断功能,旨在简化代码书写并提升开发效率。通过示例展示了如何使用`var`定义不同类型的变量,包括基本数据类型及集合类。作者还特别强调了在使用`var`时的一些限制与注意事项,比如无法定义未初始化的变量、不适用于类成员变量以及不可作为方法参数等。最后,文章指出虽然`var`能带来便利,但也可能影响代码的可读性,建议开发者根据实际情况合理使用。
|
1月前
|
Java
【Java基础面试四十一】、说一说你对static关键字的理解
这篇文章主要介绍了Java中static关键字的概念和使用规则,强调了类成员与实例成员的区别及其作用域的限制。
|
22天前
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
|
1月前
|
存储 Java 对象存储
【Java基础面试四十三】、 static和final有什么区别?
由于网络原因,我无法获取到您提供的链接内容。如果需要我解析该网页,请确保链接有效并重试,或者提供其他问题,我会尽力帮助您。
|
1月前
|
Java
【Java基础面试四十二】、 static修饰的类能不能被继承?
这篇文章讨论了Java中static关键字修饰的类是否可以被继承,解释了静态内部类的概念、规则以及如何实例化。
|
3月前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
26 0
|
4月前
|
安全 Java 编译器
Java多线程基础-6:线程安全问题及解决措施,synchronized关键字与volatile关键字(一)
线程安全问题是多线程编程中最典型的一类问题之一。如果多线程环境下代码运行的结果是符合我们预期的,即该结果正是在单线程环境中应该出现的结果,则说这个程序是线程安全的。 通俗来说,线程不安全指的就是某一代码在多线程环境下执行会出现bug,而在单线程环境下执行就不会。线程安全问题本质上是由于线程之间的调度顺序的不确定性,正是这样的不确定性,给我们的代码带来了很多“变数”。 本文将对Java多线程编程中,线程安全问题展开详细的讲解。
77 0