Java中static和final的区别
来源:互联网 发布:java阅读软件 编辑:程序博客网 时间:2024/05/29 04:33
Java中static和final的区别
static是静态修饰关键字,可以修饰变量和程序块以及类方法:
当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存;
当修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主要用于系统初始化;
当修饰一个类方法时候你就可以直接通过类来调用而不需要新建对象。
final可以修饰变量、方法及类:
当定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值;
当修饰一个方法时,该方法在子类中将不能被重写;
当修饰一个类时,该类不能被继承。
- static变量
按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:
对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。
2. static方法
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。
阅读全文
0 0
- Java中static 和final的区别
- Java中static 和final的区别
- Java中static 和final的区别
- Java中static 和final的区别
- Java中final和static的区别
- java中final和static的区别
- Java中static 和final的区别
- java中final和static的区别
- Java中static和final的区别
- java中static和final的区别
- Java中static和final的区别
- java中final和static的区别
- Java中static 和final的区别
- Java中static和final的区别
- Java中static和final的区别
- Java中static和final的区别
- 【java】final和final static的区别
- java中static、final、static final的区别
- 数据结构实验之图论六:村村通公路
- JavaScript内置对象
- Sagheer and Crossroads
- iMindMap中如何添加主题边框?
- MediaInfo.dll获取音视频时间戳
- Java中static和final的区别
- Android JNI之基本点(android studio)
- Java学习书单
- 000051:创建string型变量并输出字符变量连接的结果
- MATLAB实现3通道的真彩图像转换成2通道的灰度图像
- 编写高质量代码:改善Java程序的151个建议-笔记
- TensorFlow-gpu 无法导入_pywrap_tensorflow_internal的错误
- 【干货】这些酷炫实用的Android开源框架—你见过吗
- solr开发中遇到的异常