util工具类中的方法为什么要用static修饰?

简介: 关于static学习的次数真的很多,每次搞得好像似懂非懂,这次就来一次深刻认识

关于static学习的次数真的很多,每次搞得好像似懂非懂,这次就来一次深刻认识

    public static void reflectAct(Object model) throws Exception{
        for (Field field : model.getClass().getDeclaredFields()) {
            field.setAccessible(true);
            System.out.println(field.getName() + ":" + field.get(model) );
        }
    }

以这段代码为例,这是util工具类中的一个方法,当在其他类调用该静态方法时是随着类的定义而被分配和装载入内存中。而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。

一个是在类的定义时分配和装载且只会装载一次,一个是在类的创建时才会装载到内存。这需要对内存区域有一定的认识。在java中另外一个和此密切关联的就是引用传递

这样做有什么好处呢?

static 是静态的 属于公共的 不需要实例化

如果你不是static 你就必须 先实例化类 然后再调用 该方法,既然是util类,那肯定是公用的,比如一个连接数据库的工具类,项目运行时会多次使用,非静态就会产生大量实例还有一堆数据库连接,占用太多资源,静态类避免了这个问题,或略这个问题的代价是很大的。


再比如使用util工具类的时候,你会发现上来直接就是 类名.方法名。还没有实例化就可以调用,这就是static的好处了。

被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问

目录
相关文章
|
3月前
|
Java
【Java】static 修饰变量
【Java】static 修饰变量
|
3月前
|
Java
【Java】static 修饰成员方法
【Java】static 修饰成员方法
|
6月前
|
存储 设计模式 缓存
Java 中的 static:静态变量、静态方法,一切都在掌握中
Java 中的 static:静态变量、静态方法,一切都在掌握中
1498 0
|
Java C++
Java的static修饰符
本文主要介绍:静态域、静态常量、静态方法、工厂方法。
|
Java 程序员 C#
Java的final修饰符
可以将实例域定义为 final。对于 final 域来说,构建对象时必须初始化 final 实例域,构造对象之后就不允许改变 final 实例域的值了。 final 类和方法用来阻止继承。
122 0
|
Java
Java静态方法Static继承问题
Java静态方法Static继承问题
110 0
|
存储 Java 编译器
java59-static修饰内部类
java59-static修饰内部类
99 0
java59-static修饰内部类
|
存储 Java 测试技术
Java中static修饰符的作用
Java中static修饰符的作用
215 0