静态变量,方法函数存放在方法区。
静态变量是随着类的加载而加载的,同时是随着类的消失而消失的。所以静态成员的生命周期最长。
静态变量的利弊:
优点:对对象的共享数据进行单独空间的存储,节省空间。没有必要每个对象中都存储一份。可以直接被类名调用。
弊端:生命周期过长。访问出现局限性(静态虽好,只能访问静态。)
何时使用静态:从两方面说,何时使用静态变量,何时使用静态方法。
当对象中出现共享数据时,该数据被静态所修饰。特有数据定义成非静态存在于堆内存中。
当功能内部没有访问到非静态数据时,那么该功能就定义成静态的。
静态的使用:每一个程序中都有的共性功能,可以将这些功能进行抽取,独立封装,以便复用。(工具类的产生)
在工具类使用时,当本类中没有对象的定义时,虚拟机会在指定目录寻找同名的class文件,如果没有的话在当前目录中寻找。没有class文件,但是有java文件时,虚拟机会首先编译java文件。为了保证虚拟机先在当前目录中寻找class文件,然后到指定目录需找,设置set classpath=.;加指定目录路径。
工具类还可以建立对象,为了更为严谨,强制让该类不能建立对象。可以通过将构造函数私有化。
----------------------------------------------------------------------------------------------------------------------
程序说明书的生成是由虚拟机识别
/**
类的功能说明
@author 作者
@version 版本
*/
/**
方法的功能说明
@param 参数说明
@return 返回值说明
*/
由命令javadoc -d 存储文档的路径 -author -version 源文件名称 生成到存储文档的路径文件夹,如没有这个文件夹,则自动新建。
注意:帮助文档说明的类必须是由public关键字修饰的
--------------------------------------------------------------------------------------------------------------------------
主函数,特殊的静态函数,作为程序的入口,被jvm调用。
其中,各个单词的含义:
public:代表着函数的访问权限是最大的。
static:代表这函数随着类的加载就已经存在了。
void:主函数没有具体的返回值。
main:不是关键字,但是是一个特殊的单词,可已被jvm识别。
(String[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组。args作为主函数中唯一可以改变的单词。其作为一个数组名。只要是合法的,可以随意定义。在执行class文件时,通过java 。。加字符串数组的形式向主函数传递参数。
静态代码块
格式:
Static
{
静态代码块中的执行语句
}
随着类的加载而执行,只执行一次,并优先与主函数。用于给类进行初始化的。
各个块的执行顺序:静态代码块、构造代码块、构造函数。
单例模式开发
单例模式开发的两种形式,饿汉式和懒汉式。
饿汉式:类一进内存,首先建立好对象。(开发时一般选择)
class single
{
private static single s=new single();
private single(){}
public static single getinstance()
{
return s;
}
}
懒汉式:对象的延时加载。方法被调用时,才初始化。
class single
{
private static single s=null;
private single () {}
public static single getinstance()
{
if(s!=null)
s=new single();
Return s;
}
}