1、static目的 java中的static关键字主要用于内存管理。 2、static范围 使用范围:java static关键字可以用在变量、方法、代码块和嵌套类伤。 作用范围:static关键字属于类,而不是类的实例。 静态(sta
java中的static
关键字主要用于内存管理。
使用范围:java static
关键字可以用在变量、方法、代码块和嵌套类伤。
作用范围:static
关键字属于类,而不是类的实例。
静态(static
)修饰如下:
类的成员变量可以分为以下两种:
静态变量与实例变量的区别如下:
1)静态变量
2)实例变量
静态变量在类中的作用如下:
静态变量的好处:它能使程序存储器高效(即它节省内存)。
class Student8 { int rollno; String name; static String college = "ITS"; Student8(int r, String n) { rollno = r; name = n; } void display() { System.out.println(rollno + " " + name + " " + college); } public static void main(String args[]) { Student8 s1 = new Student8(111, "Karan"); Student8 s2 = new Student8(222, "Aryan"); s1.display(); s2.display(); }}//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/java/static-keyWord-in-java.html
同成员变量,成员方法也可以分为以下两种:
静态方法与实例方法的区别:
静态方法与静态变量好处:
属于类级别,无需创建对象就即可直接使用,使用方便。
全局唯一,内存中唯一,静态变量可以唯一标识某些状态。
类加载时候初始化,常驻在内存,调用快捷方便。
静态方法与静态变量缺点:
静态方法不能调用非静态的方法和变量。
不能使用this和super关键字。
静态方法与静态变量适用场景:
静态方法,最适合工具类中方法的定义;比如文件操作,日期处理方法等。
静态方法,适合入口方法定义;比如单例模式,因从外部拿不到构造函数,所以定义一个静态的方法获取对象非常有必要。
静态变量适合全局变量的定义;举例:用一个布尔型静态成员变量做控制标志。
定义:静态代码块,是 Java 类中的 static{ } 修饰的代码。
作用:用于类初始化时,为类的静态变量赋初始值,提升程序性能。
静态代码块的特点如下:
public class StaticCode { public static int count = 0; { count++; System.out.println("非静态代码块 count=" + count); } static { count++; System.out.println("静态代码块1 count=" + count); } static { count++; System.out.println("静态代码块2 count=" + count); } public static void main(String[] args) { System.out.println("*************** StaticCode1 执行 ***************"); StaticCode sct1 = new StaticCode(); System.out.println("*************** StaticCode2 执行 ***************"); StaticCode sct2 = new StaticCode(); }}
java中一个类要被声明为static的,只有一种情况,就是静态内部类(内嵌类)。如在外部类声明为static的,程序会编译都不会通过。
静态内部类,跟静态方法一样,只能访问静态成员变量和方法,不能访问非静态方法和属性。
普通内部类,可以访问任意外部类的成员变量和方法。
静态内部类,可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。
静态内部类,可以单独初始化。
Inner i = new Outer.Inner();
普通内部类初始化:
Outer o = new Outer();Inner i = o.new Inner();
适用场景:当外部类需要使用内部类,而内部类无需外部类资源,并且内部类可以单独创建时,考虑采用静态内部类的设计,在知道如何初始化静态内部类。
public class Outer { private String name; private int age; public static class Builder { private String name; private int age; public Builder(int age) { this.age = age; } public Builder withName(String name) { this.name = name; return this; } public Builder withAge(int age) { this.age = age; return this; } public Outer build() { return new Outer(this); } } private Outer(Builder b) { this.age = b.age; this.name = b.name; }}
静态内部类,调用外部类的构造函数来构造外部类;静态内部类可被单独初始化,于是在外部就可以有下面的实现:
public Outer getOuter(){ Outer outer = new Outer.Builder(2).withName("Yang Liu").build(); return outer;}
静态类总结:
如果类的构造器或静态工厂中有多个参数,设计这样类时,最好使用Builder模式,特别是当大多数参数都是可选的时候。
2.如果现在不能确定参数的个数,最好一开始就使用构建器即Builder模式。
参考:
来源地址:https://blog.csdn.net/jiahao1186/article/details/121886704
--结束END--
本文标题: java static 详解
本文链接: https://www.lsjlt.com/news/442584.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0