1.静态:(static 修饰变量,方法)
概述:静态就是static关键字修饰的变量或方法
static是一个关键字,静止的,在java中表示资源共享的。
为什么要使用静态?:
1.例子:人人都有国籍属性,中国人的国际都是一样的,创建对象的时候需要在每个空间中开普对应的国籍属性空间,因为大量的人都有的特性,所以对象的值都一样是比较浪费空间的
2.如果把所有对象的属性值一样的属性共享,只开辟一块空间来存储所有的对象共享这个空间值就可以了。
3.对象依托类来的,可以把共享的资源放到类中,,所有的对象使用的时候到类中来找就可以了,这样节省空间而且提升了代码的执行效率,使用也方便。
4.使用static关键字对类描述的属性进行修饰,加载类信息的时候在方法去中单独开辟一块空间来存放静态的资源,供所有的对象来共享,这块空间叫做静态区。【存在于方法区中】
静态的体现方式:被static修饰的资源就是静态的体现。
*静态有什么优点?【面试题】
1.属于类,优先于对象存在于内存中
2.随着类的加载而加载【类的加载他就初始化。】
3.使用类名直接调用
4.静态修饰的资源只能访问静态的资源
5.非静态的资源可以访问静态的资源**
静态变量:
概述:静态的东西属于类,静态变量在类当中。被static修饰的变量就是静态变量
特点:1.属于类不属于单独的对象,但是被对象共享2.随着类的加载而加载,随着类的消失而消失【静态的声明周期延长。】3.优先于对象而存在。
访问:1.类名.属性名2.对象名.属性名【不推荐使用,因为他是被对象共享的。】
注意事项:静态变量不能定义在方法中。静态的变量可以被非静态的方法调用。
静态变量和非静态变量的区别?【面试题】
1.所属不同:
1.静态变量:属于类,非静态变量:全局变量:属于对象;局部变量:属于方法。
2.内存中的位置不同
1.静态变量:存储在方法区的静态区,随着类的消失而消失。非静态变量:全局变量:堆空间的对象空间里。局部变量:栈空间的方法中。
3.声明周期不一样
1.静态变量:随着类的加载而加载,随着类的消失而消失。非静态变量:全局变量:随着对象的创建而创建,随着对象的消失而消失。局部变量:随着方法的调用而产生,随着方法的执行完毕就消失。
4.访问方式不一样
1.静态变量:类名.属性名或者类名.getter和setter方法。非静态变量:全局变量:对象名.属性名或者对象名.getter和setter方法。或者直直接使用。。局部变量:直接使用变量名使用。
静态方法:
概述:被static修饰的方法就是静态方法。比如:main方法就是被static修饰的一个静态方法的静态方法的格式:修饰符 static 返回值类型 方法名(形式参数){方法体或者return语句}
特点:
1.属于类不属于对象;被所有的对象共享
2.优先对象存在。
3.随着类的加载而加载,随着类的消失而消失。
4.不需要使用对象调用,可以直接被类名使用
5.只能使用静态资源:解释【静态方法中只能使用静态变量,只能调用其他的静态方法,普通变量和普通方法不能被使用。】
6.调用格式:类名.方法名(实际参数);对象名.方法名(实际参数)【不推荐使用,因为静态资源属于类】
普通方法和静态方法的注意事项:
1.普通方法可以使用普通变量和静态变量;静态方法只能使用静态变量
2.静态方法只能直接调用静态方法;而不能直接调用普通方法
3.静态方法如果想要调用普通方法,先要创建该方法所在类的对象,再使用对象调用该方法。
4.普通方法可以调用静态方法和普通方法
5.写代码的时候:静态的资源就使用类名来调用普通资源必须先创建对象,再使用对象来访问使用。

2.帮助文档**
1.帮助文档的制作:**
由来:工具类准备好之后,编译成.class的字节码文件,外界就无法看懂,别人想使用这个工具无法使用;所以需要编写工具类的程序员,准备一份工具类的帮助文档
帮助文档的注释:
@author:作者是XXX用在类上
@version:版本号是什么
@since:从哪个版本开始
@param:参数的解释,用在方法中。
@return:返回值的解释,用在方法中公
生成帮助文档
1.利用命令来生成:【在黑窗口中执行。】:javadoc -d 生成帮助文档的文件夹名称-author-version java代码文件名。
2.eclipse中有对应功能:Project-》Gernerate javadoc-》在弹出的页面中选择要生成的帮助文档路径【必须是空文件夹】-》finish。
jdk帮助文档的使用:
1.在线帮助文档:http://www.matools.com/api/java8
2.离线的帮助文档:
1.打开文档,点击显示
2.点击索引
3.搜索需要的类型
4.阅读说明中的示例代码
5.查看构造方法、判断是否可以创建对象
6.查看每个方法的返回值类型,判断是否是自己需要的方法。
7.查看每个方法是否静态,判断是否可以使用类名直接调用。
8.方法名称
9.方法的详细解释和参数列表