- static关键字:静态修饰符,用于修饰词成员(成员变量,成员函数)。当成员被static所修饰后,就多了一种调用方式,除了可以用建立类对象的方法调用,还可以直接通过类名调用。(类名.被static所修饰的成员)被static所修饰的成员,被所有建立的对象所共享,类中的成员本来存放在堆内存中,一旦被static所修饰后,此成员就被放在另一块内存区域,称之为方法区,或者叫数据区,共享区。
static特点:随着类的加载而加载(也会随着类的消失而消失)。优先于对象存在(类一建立,static成员即被建立,并随类的消失而消失。而一般成员在对象的建立后才会建立,随对象的消失而消失)。被所有对象所共享(可以节省存储空间)。可以直接被类名所访问。
注意:静态方法只能访问静态成员,而非静态方法都可以访问。静态方法中,不可以定义this,super关键字。
- public static void main(String[] args),主函数,也是静态的。是一个特殊的函数,作为程序的入口,可以被jvm调用。
public:代表着该函数访问权限是最大的。
static:代表主函数随着类的加载就已经存在了。
void:主函数没有具体的返回值。
main:不是关键字,但是是一个特殊的单词,可以被jvm直接识别。
String[] args:函数的参数,参数类型是一个数组,该数组中的元素是字符串,字符串类型的数组。
主函数是固定格式的:jvm识别。但唯一能够改变的是args,缘由是arguments(参数),后来简化成args。
- jvm在调用主函数时,传入的是new String[0]。
- 当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态,存在于堆内存中。当功能(函数)没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
- 当每一个程序都有共性的功能时,可以将这些功能抽取出来,单独封装在一个类中。以便复用。
- Javadoc(Java帮助文档):当别人要使用一个类时,别人并不清楚里面到底定义了多少方法,哪些方法。因为此类并没有使用说明书。Java帮助文档使用此符文/** Java帮助文档*/(文档注释)。同时,我们也可以在类中的方法前使用文档注释,Java在生成文档时,会自动提取这些东西。
若想要给一个类生成帮助文档,那么这个类一定要被public所修饰。生成文档的语法是:javadoc –d 文件夹 –author –version 类名.java(-d 文件夹 表示将生成的文档放到指定的文件夹内 –author 提取在代码中的@author后的作者,-version 提取代码中@version后的版本信息)
- 一个类中默认有一个空参数的构造函数,这个默认的构造函数的权限与所属类一致,是随着类权限的变化而变化的。即,若类被public所修饰,默认的构造函数也是public的,若没有,则默认的构造函数也没有。
- 静态代码块:格式为static{…..},存在于类中。用于给类进行初始化的。特点:随着类的加载而执行,且只执行一次,并优先于主函数执行。
- Person p = new Person(“zhangsan”,20);首先,因为有new,所以jvm会先找到Person.class文件加载到内存中。其次,会执行该类中的静态(static)代码块(有的话),给Person.class类进行初始化。然后,在堆内存中开辟空间,分配内存地址。然后,在堆内存中建立对象的特有属性,并进行默认初始化。然后,对属性进行显示初始化。然后,对对象进行构造代码块(有的话)初始化。然后,对对象进行对应的构造函数初始化。最后,将内存地址值赋给栈内存中的p变量。
新手初步学Java,正在JavaSE中,每天留下我当天学习所得跟笔记,希望大家能够多多批评与指教,促进共同进步!第六天!
原文:http://www.cnblogs.com/yishiluo/p/4944664.html