Java中static关键字
JAVA 关键字 static
2023-09-11 14:20:02 时间
Java中的 static 关键字主要是用来做内存管理的
static 可以分为四种
static 可以修饰:
- 变量(所谓 class variable)
- 方法(所谓 class method)
- 代码块(所谓 block)
- 内部类(所谓 nested class)
凡是被 static 修饰的这四种元素,都属于class的元素,即类的,而不是类的实例的。
1) 静态变量
按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。
两者的区别是:
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
什么时候该用 static 来修饰变量呢?该变量被该类的所有实例所共享
静态变量在类被加载的时候初始化,且仅分配一次内存
一个变量静态的栗子:
package com.zlp.Demo;
/**
* 静态变量
*
*/
public class Student8 {
int stuNo;
String userName;
String passWord;
static String university = "whdx";
public Student8(int stuNo, String userName, String passWord) {
this.stuNo = stuNo;
this.userName = userName;
this.passWord = passWord;
}
public void display() {
System.out.println(stuNo + "\t" + userName +"\t"+passWord+ "\t" + university);
}
public static void main(String args[]) {
Student8 s1 = new Student8(001, "Karan","123");
Student8 s2 = new Student8(002, "Aryan","456");
Student8 s3 = new Student8(002, "Aryan","456");
s1.display();
s2.display();
s3.display();
}
}
相关文章
- Java 并发工具包 java.util.concurrent 用户指南
- Java Date Time 教程-java.sql.Date
- Java Invoked OOM-Killer - OOM不一定是来自于java heap
- Java 多线程(六) synchronized关键字详解
- Java中static静态关键字的使用
- Java 设计模式之装饰模式,Java 装饰模式,java装饰模式和代理模式的区别
- java接口的使用
- Java学习-084-java.sql.SQLException: Zero date value prohibited 问题解决
- Java transient关键字
- JAVA_用Java来获取访问者真实的IP地址
- java正则表达式过滤html标签
- Hadoop启动和使用JAVA过程中的问题集
- java实现阿里云rocketMQ消息的发送与消费(tcp协议sdk)
- Java关键字final、static使用总结(转)
- 避免Java应用中NullPointerException的技巧和最佳实践
- 蓝桥杯VIP试题 之 基础练习 回形取数 - JAVA
- JAVA轻量级文件监控
- 全面理解Java内存模型(JMM)及volatile关键字
- Java之final关键字详解
- 在Web开发方面Java跟PHp八大对比
- Java中java.util.Arrays参考指南
- Java final关键字
- Java this关键字你真的理解吗?
- Java static关键字你了解多少?