java之static关键字知多少

今天我们要分享的内容就是static关键字的使用,static关键字或许是我们接触最早的一个关键字了,如我们看到下面的示例程序。

public static void main(String[] args) {
        System.out.println("hello world");
  }

这就是我们初学java时输出的java程序示例了,这里不是简单输出一句"hello world",看到static关键字了吧。

static关键字修饰的方法是类方法,其生命周期与类一样,大部分我们将需要公共的方法封装在一个工具类,将方法使用static关键字进行修饰,然后类直接调用对应的方法即可。

 public static void main(String[] args) {
        System.out.println("str = " + getString());
    }

    private static String getString() {
        return "hello world";
    }

其实我个人觉得static关键字比较优美的使用就是在单例和静态代码块方面的使用了,下面我们进行示例程序的编写咯。

package com.wpw.springbootjdbc;

import java.util.ArrayList;
import java.util.List;

public class Test {
    private static List<Integer> arrayList = new ArrayList<>();

    static {
        assert false;
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        arrayList.add(4);
        arrayList.add(5);
        arrayList.add(6);
        arrayList.add(7);
        arrayList.add(8);
        arrayList.add(9);
        arrayList.add(10);
    }

    public static void main(String[] args) {
        arrayList.forEach(System.out::print);
        arrayList.clear();
    }
    
}

上面我们在静态代码块里面对集合进行数据的添加,最后在main方法进行集合数据的输出,是不是很容易理解,其实这种用法自己很早之前就用到了,后面觉得输出文章这个还是自己要写一些内容进来的。

我们继续看下static关键字在其他地方的使用吧,然后我们还是看下示例程序。

package com.wpw.springbootjdbc;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

public class Test {
    public static void main(String[] args) {
        User user = new User().setId(1).setName("backCoder");
        System.out.println("user = " + user);
    }

    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    @Data
    @Accessors(chain = true)
    private static class User {
        private Integer id;
        private String name;
    }
}

在我们的类里面使用static关键字定义一个静态内部类也是很常用的一种操作了,上面的示例程序中,我们使用了static关键字定义了一个user类,在main方法中进行数据信息的数据,是不是很方便呢。

这里面没有使用static关键字去实现单例,想要了解单例的实现可以看下历史信息进行查找下。

好了,或许你会说我们可以使用static关键字结合final去定义一个常量,方便使用,确实,由于这个很容易理解,自己就不再这里去测试了,感兴趣的自己可以去了解下。

本文分享自微信公众号 - 后端Coder(gh_245290c1861a)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏未读代码的专栏

设计模式 -创建型模式之单例模式的五种实现

许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对...

6130
来自专栏用户1052078的专栏

Jenkins安装 基于宝塔面板

点开Java项目管理器,在版本管理中安装tomcat8,这个版本安装的jdk是1.8版本的。

12330
来自专栏Don的成长史

【PAT乙级】科学计数法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

9320
来自专栏Don的成长史

大整数相乘

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

6620
来自专栏全栈前端精选

我的前端成长之路

注:这是在阿里内部前端大学的一个分享,整理了一份对外的版本,希望分享内容能对你有所帮助。

8110
来自专栏笔记1

docker的一些命令

docker create --name myrunoob nginx:latest

6410
来自专栏刷题笔记

【java入门】01配置环境变量

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

9630
来自专栏腾讯开源的专栏

微服务云原生等场景,腾讯 Kona JDK 正式开源

? Tencent Kona 是基于 OpenJDK8,由腾讯专业技术团队提供技术维护、优化及安全保障的 JDK 产品。腾讯的 Java 应用场景丰富,结合微...

18640
来自专栏老司机的技术博客

5种单例模式的实现方式,哪种最优?

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

8630
来自专栏刷题笔记

7-6 列车调度 (25 分)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

11410

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励