Java中的final和static
final
final可以用在类、方法、变量上。
- 1、final用在类上,表明当前类它不能被继承,没有子类。
- 2、final用在方法上,表明当前方法不能被override,不能被重写。
- 3、final用在变量上,表明当前变量是一个终态的变量,是一个常量,这个变量的值一但被赋值后就不能被改变了。
对于final类型的成员变量的初始化方式:
- 1、声明变量时直接赋值
- 2、在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作。//大概是因为构造方法总是会执行。
static
用static主要作用是在类刚加载时就初始化该量的值并给他分配一块共用的内存块存储他的值。e.g.对于一个int类型的static final类型的变量a来说,我们只能在声明的时候就给它赋值private static final int a = 3;。
Java里面static一般用来修饰成员变量或函数。但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。被static修饰的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。
引用百度知道上的一段回答:
static意思是静态的。方法前加上static叫做静态方法,类前加上static叫做静态类。静态方法必须存在于静态类中,但静态类中的方法可以不都是静态方法。使用静态方法时,直接用类名+“.”+方法名。不用再实例化,创建类的对象,达到方法调用方便,节省空间!
这也许是为什么main函数必须是static类型的缘故——不需要实例化了。
对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
Reference:
http://jmhmlu.blog.163.com/blog/static/1616122982011411462640/
So much for this.
June 10th. 2014
Java中的final和static的更多相关文章
- 理解Java中的final和static关键字
		回顾这两个关键字前,先考虑一个问题: Static变量存储在JVM中的位置,或者说static变量是如何被加载的? JVM会把类的静态方法和静态变量在类加载的过程中读入方法区(Method Area) ... 
- java中的final与static
		许多程序设计语言都有自己的办法告诉编译器某个数据是"常数".常数主要应用于下述两个方面: (1) 编译期常数,它永远不会改变 (2) 在运行期初始化的一个值,我们不希望它发生变化 ... 
- [转] Java中的final、static、this、super
		final 关键字 final关键字主要用在三个地方:变量.方法.类. 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改:如果是引用类型的变量,则在对其初始化之后便 ... 
- 浅析Java中的final关键字(转载)
		自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括 ... 
- 关于Java中的final关键字
		Java中的final关键字是用来限制用户行为的,说白了,就是用来限制我们这些程序员的.final可以用来修饰:变量.方法.类. 1)Java final variable final用来修饰变量时, ... 
- 深入理解Java中的final关键字
		Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ... 
- 浅析Java中的final关键字
		浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ... 
- (转)深入理解Java中的final关键字
		转自:http://www.importnew.com/7553.html Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方 ... 
- [转载]浅析Java中的final关键字
		浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ... 
随机推荐
- Opencv 图片边缘检测和最小外接矩形
			#include "core/core.hpp" #include "highgui/highgui.hpp" #include "imgproc/i ... 
- python 工具 二进制文件处理之——去掉指定长度数据包头
			包头48bit 数据98464 ...如此循环: piece_size = 48 piece_size1 = 98464 with open("C:\\Users\\Administrato ... 
- openpyxl的使用记录
			脚本功能描述: 读取指定文件夹内的.xlsx文件,遍历提取整理信息保存到另一指定文件夹中 import openpyxl import os import shutil city='城市名' def ... 
- jQuery中的:input选择器
			jQuery中的:input选择器 jQuery中的:input选择器包含input, textarea, select 和 button这些标签. <!DOCTYPE html> < ... 
- VS快速生成JSON数据类
			1.复制Json数据 2. 
- 科学计算 | Matlab 使用 GPU 并行计算
			科学计算 | Matlab 使用 GPU 并行计算 本文转载自: https://sanwen8.cn/p/14bJc10.html Matlab下直接使用GPU并行计算(预告)< ... 
- 李洪强iOS开发之 - 项目架构
			李洪强iOS开发之 - 项目架构 01 - 在Appdelegate中设置跟控制器 //导入头文件 
- sublime 快捷键 汇总--长期
			Ctrl+P 输入当前项目中的文件名,快速搜索文件 Ctrl+G 输入数字跳转到该行代码 Ctrl+R 输入关键字,查找文件中的函数名 Ctrl+: 输入关键字,查找文件中的变量名.属性名等 Ctrl ... 
- Webkit JNI
			WebCoreFrameBridge.cpp BrowserFrame通过jni传下来的调用都会调用到WebCoreFrameBridge.cpp中的对应函数中,其他webkit的模块想回调信息给Br ... 
- 说说设计模式~单件模式(Singleton)
			单件模式(Singleton)要求一个类有且仅有一个实例,并且提供了一个全局的访问点. 从概念上来研究一下它的实现,不考虑线程安全 1 public sealed class Singlton 2 { ... 
