网站首页 > 技术文章 正文
在Java语言中,所有的变量在使用前必须声明。
- 类变量(静态变量):独立于方法之外的变量,用 static 修饰。
- 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。
- 局部变量:类的方法中的变量。
例子如下:
public class Variable{
static int allClicks=0; // 类变量(静态变量)
String str="hello world"; // 实例变量(全局变量)
public void method(){
int i =0; // 局部变量
}
}
JAVA的类变量(静态变量)
1.类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
2.无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
3.静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
4.静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
5.静态变量在程序开始时创建,在程序结束时销毁。
6.与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
7.默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
8.静态变量可以通过:ClassName.VariableName的方式访问。
9.类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。
JAVA的实例变量(全局变量)又称类的成员变量
1.实例变量声明在一个类中,但在方法、构造方法和语句块之外;
2.当一个对象被实例化之后,每个实例变量的值就跟着确定;
3.实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
4.实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
5.实例变量可以声明在使用前或者使用后;
6.访问修饰符可以修饰实例变量;
7.实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
8.实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
局部变量有以下特性:
1.局部变量声明在方法、构造方法或者语句块中;
2.局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
3.访问修饰符不能用于局部变量;
4.局部变量只在声明它的方法、构造方法或者语句块中可见;
5.局部变量是在栈上分配的。
6.局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
类变量和实例变量的区别是什么?
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;
例:
猜你喜欢
- 2024-09-26 Java学习:基础(static、单例)(java里static用法)
- 2024-09-26 代码区、常量区、静态区(全局区)、堆区、栈区不得不了解
- 2024-09-26 “静态”之静——深入解析C++中的static关键字
- 2024-09-26 Java static关键字你了解多少?(java中static关键字有什么作用)
- 2024-09-26 再也不要说不知道static了(ip route-static命令详解)
- 2024-09-26 夯实基础:详解static关键字和5类场景应用
- 2024-09-26 Java学习:static 关键字概述(static关键字的作用 java)
- 2024-09-26 Java基础:static关键字作用总结(javastatic关键字详解)
- 2024-09-26 JAVA 泛型中的通配符 T,E,K,V,?你都弄懂了吗?我都总结在这
- 2024-09-26 static 关键字有什么作用(static关键字有几种用法)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 573℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 513℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 469℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 449℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 446℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)