static关键字
static关键字
- 被static修饰的方法或属性随着类加载的时候就加载了,所以可以不用new对象直接可以调用
- 非statci修饰的方法或属性除了可以调用非statci修饰的可以调用static修饰的方法或属性;而static修饰的方法只能直接调用static修饰的方法或属性
代码示例:
public class Student {
private static int age;//静态的变量
private double score;//非静态的变量
public static void main(String[] args) {
Student s1=new Student();
System.out.println(Student.age);
System.out.println(s1.age);
System.out.println(s1.score);
}
}
我们先看一下调用属性:在调用中,只能通过Student类直接调用静态的属性int,而想要调用score,必须new一个对象!
调用方法:
public class Student {
//静态的方法
private static void run(){
System.out.println("学生在奔跑");
}
private void go(){
System.out.println("学生在行走");
}
public static void main(String[] args) {
Student s1=new Student();
Student.run();
s1.go();
}
}
输出:
学生在奔跑
学生在行走
静态导入包:
静态导包就是java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。
当我们对某个类中的方法进行重复式的调用时,可以通过静态导入包来减少代码,这样可以简化一些操作。我以最简单的打印操作(System.out.println())为例
代码示例:
import static java.lang.System.out;
public class Test {
public static void main(String[] args) {
out.println("lingstar");
out.println("xingxing");
}
}
输出:
lingstar
xingxing
我们导入静态代码包之后只需要通过out.就可以看到out之后的方法名!
当然,我们只是用打印操作举个例子!一般的打印操作肯定没有sout+回车来的快!
静态代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内。JVM加载类时会执行这些静态代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们每个静态代码块只会被执行一次。
public class Person {
//
{
System.out.println("匿名代码块");
}
//静态代码块只执行一次
static {
System.out.println("静态代码块");
}
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person=new Person();
System.out.println("再执行一遍");
Person person1=new Person();
}
}
我们写一下通过代码来看一下,三者的执行顺序:
静态代码块
匿名代码块
构造方法
再执行一遍
匿名代码块
构造方法
可以看到静态代码随着类加载而加载,且只执行一次!
本文来自博客园,作者:星余明,转载请注明原文链接:https://www.cnblogs.com/lingstar/p/16475272.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现