java 关键字static
2024-08-26 08:02:22
在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。
Java把内存分为栈内存和堆内存,
栈内存用来存放一些基本类型的变量、数组和对象的引用,
堆内存主要存放一些对象。
public class User {
private static int userNumber = 0 ; public User(){
userNumber ++;
} public static void main(String[] args) {
User user1 = new User();
User user2 = new User(); System.out.println("user1 userNumber:" + User.userNumber);
System.out.println("user2 userNumber:" + User.userNumber);
}
}
------------
Output:
user1 userNumber:2
user2 userNumber:2
2.1、static变量
static修饰的变量我们称之为静态变量,没有用static修饰的变量称之为实例变量,他们两者的区别是:
1.静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为它分配一次内存,同时类所有的实例都共享静态变量,可以直接通过类名来访问它。
2.实例变量则不同,它是伴随着实例的,每创建一个实例就会产生一个实例变量,它与该实例同生共死。
===所以我们一般在这两种情况下使用静态变量:对象之间共享数据、访问方便。
2.2、static方法
static修饰的方法我们称之为静态方法,我们通过类名对其进行直接调用。由于他在类加载的时候就存在了,它不依赖于任何实例,所以static方法必须实现,也就是说他不能是抽象方法abstract。
Static方法是类中的一种特殊方法,我们只有在真正需要他们的时候才会将方法声明为static。如Math类的所有方法都是静态static的。
2.3、static代码块
被static修饰的代码块,我们称之为静态代码块,静态代码块会随着类的加载一块执行,而且他可以随意放,可以存在于该了的任何地方。
最新文章
- VS工具如何新建筛选器
- 如何在CentOS 7上安装EPEL源
- Nginx配置(日志服务器中关于日志的产生)
- ABAP QUERY报表添加双击事件
- ServiceStack.Redis 之 IRedisTypedClient 04_转
- Codeforces Round #337 (Div. 2) B. Vika and Squares 贪心
- Jqgrid demo-史上最强大,没有之一
- iOS设计模式之生成器
- Android GUI Building Blocks
- 在Linux中创建静态库和动态库 (转)
- c# winform 引用sqlite.dll 运行报错解决方法
- 使用Idea作为go的IDE
- The Linux Storage Stack Diagram 内核 4.0 版的 I/O 栈
- (转)什么是P问题、NP问题和NPC问题
- Caused by: java.net.SocketException: Broken pipe
- 2_成员函数(Member Functions)
- Editorial Board 、co-editor、ediitor、editor-in-chief的区别
- Linux命令rz
- android 获取对权限的选择
- Visual Studio下运行PowerShell脚本自增小版本号并发布到Nuget服务器上
热门文章
- 饿了么ui添加事件
- 基于mybatis-generator代码生成工具改(链式方法实体版)
- 【ajax+php】动态展示4级单位(省、市、县、镇)
- (五)Lucene——中文分词器
- 学习-短信的上行(MO)和下行(MT)详解
- Java成员变量与局部变量同名
- MDK5.00中*** error 65: access violation at 0xFFFFFFFC : no 'write' permission的一种解决方法
- js 获取距离顶部的相对高度
- django学习笔记【002】创建第一个django app
- c++ 头文件循环引用解法