Java自学笔记(第六天)-static-类变量-对象变量-javadoc文档-static代码块-单例设计模式
2014-10-10 07:37
585 查看
(*)static(不变的)-关键字:修饰的变量叫做类变量,随着类的加载而加载,随着类的消失而消失,
//static修饰的成员叫做静态成员(不变的成员,类成员),
//不仅能被对象调用,还可以直接被类名调用
//被所有对象共享
//优先于对象存在
(*)类变量和实例变量的区别:
//存放位置不同,类变量在方法区中和实例变量在堆内存中
//生命周期不同,类变量与类同在,实例变量与实例同在
(*)static使用注意事项:
//static成员只能访问static成员,非static成员可以访问static成员和非static成员
//static方法不可以使用this和super关键字,因为static优先于对象存在所以static中不可以使用this
//main函数是static
(*)main-函数:public static void main(String[] args),一个特殊的函数,作为程序的入口,被jvm调用
public:访问修饰符
static:不变的成员,随着类的存在而存在
void:返回类型是void
main:不是关键字,但是一个特殊的单词,被jvm识别
(String[] args):参数列表,一个String类型的数组,args变量名是可以改变的
main函数是固定格式,被jvm识别
//下面代码是正确的
(*)什么时候定义static变量,static函数
//当一个变量的值被所有对象所共用,该变量可以定义成static变量
//当一个函数内只涉及static变量时或者任何变量都不涉及时,该函数可以被定义成static函数
//被static修饰的成员就是类成员
(*)在cmd命令行中设置类文件路径 (.class文件所在的路径)set classpath=.;c:\; ,(.)表示在当前目录查找,C:\表示在C盘目录查找。
(*)制作Javadoc文档(就是.class文件的说明),使用javadoc.exe编译生成javadoc文档,cmd命令行中的命令 javadoc -d -author -version xx.java
//在类中添加注释的语法: /** @author @version ...... @param @return */
(*)static代码块,随着类的加载而执行,只执行一次,用于给类进行初始化,
格式:
static{
//代码;
}
static代码块,构造代码块,的执行顺序:加载类---->static代码块---->new对象时调用构造函数---->构造代码块---->new时调用的构造函数
//只有类中内容被用到时,类才被加载,例:类名 xx = null; 这个类不被加载,xx对象变量没有意义,类中的static代码块也不会执行。
(*) Person p = new Person("zhangsan",20);
这句代码在内存中的执行过程:
1,因为new用到Person.class文件,所以会先找到Person.class文件并加载到内存中
2,执行Person类的static代码块
3,在堆内存中开辟空间
4,在堆内存中生成相对应的属性变量,并赋于与数据类型相对应的默认值
5,再赋予代码给出的默认值
6,执行构造代码块
7,执行构造函数
8,将堆内存空间地址赋予栈内存中的变量P
(*)对象在内存中调用方法的执行过程
(*)单例设计模式:
1,关闭构造函数,就是用private修饰构造函数
2,在类中定义一个自己类的对象变量(new对象是饿汉式,赋null值是懒汉式)
3,定义一个方法把自己类的对象变量return给调用者(懒汉式要判断对象变量是否为null在new对象,涉及synchronized(锁)关键字和多线程)代码如下:
//static修饰的成员叫做静态成员(不变的成员,类成员),
//不仅能被对象调用,还可以直接被类名调用
//被所有对象共享
//优先于对象存在
(*)类变量和实例变量的区别:
//存放位置不同,类变量在方法区中和实例变量在堆内存中
//生命周期不同,类变量与类同在,实例变量与实例同在
(*)static使用注意事项:
//static成员只能访问static成员,非static成员可以访问static成员和非static成员
//static方法不可以使用this和super关键字,因为static优先于对象存在所以static中不可以使用this
//main函数是static
(*)main-函数:public static void main(String[] args),一个特殊的函数,作为程序的入口,被jvm调用
public:访问修饰符
static:不变的成员,随着类的存在而存在
void:返回类型是void
main:不是关键字,但是一个特殊的单词,被jvm识别
(String[] args):参数列表,一个String类型的数组,args变量名是可以改变的
main函数是固定格式,被jvm识别
//下面代码是正确的
(*)什么时候定义static变量,static函数
//当一个变量的值被所有对象所共用,该变量可以定义成static变量
//当一个函数内只涉及static变量时或者任何变量都不涉及时,该函数可以被定义成static函数
//被static修饰的成员就是类成员
(*)在cmd命令行中设置类文件路径 (.class文件所在的路径)set classpath=.;c:\; ,(.)表示在当前目录查找,C:\表示在C盘目录查找。
(*)制作Javadoc文档(就是.class文件的说明),使用javadoc.exe编译生成javadoc文档,cmd命令行中的命令 javadoc -d -author -version xx.java
//在类中添加注释的语法: /** @author @version ...... @param @return */
(*)static代码块,随着类的加载而执行,只执行一次,用于给类进行初始化,
格式:
static{
//代码;
}
static代码块,构造代码块,的执行顺序:加载类---->static代码块---->new对象时调用构造函数---->构造代码块---->new时调用的构造函数
//只有类中内容被用到时,类才被加载,例:类名 xx = null; 这个类不被加载,xx对象变量没有意义,类中的static代码块也不会执行。
(*) Person p = new Person("zhangsan",20);
这句代码在内存中的执行过程:
1,因为new用到Person.class文件,所以会先找到Person.class文件并加载到内存中
2,执行Person类的static代码块
3,在堆内存中开辟空间
4,在堆内存中生成相对应的属性变量,并赋于与数据类型相对应的默认值
5,再赋予代码给出的默认值
6,执行构造代码块
7,执行构造函数
8,将堆内存空间地址赋予栈内存中的变量P
(*)对象在内存中调用方法的执行过程
(*)单例设计模式:
1,关闭构造函数,就是用private修饰构造函数
2,在类中定义一个自己类的对象变量(new对象是饿汉式,赋null值是懒汉式)
3,定义一个方法把自己类的对象变量return给调用者(懒汉式要判断对象变量是否为null在new对象,涉及synchronized(锁)关键字和多线程)代码如下:
相关文章推荐
- java笔记-面向对象-匿名对象、说明文档、单例设计模式
- JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式
- Java重修之路(七)面向对象之静态,主函数,Doc文档,静态代码块,对象初始化过程,单例设计模式
- 1、Java面向对象笔记(匿名对象)(static 静态修饰符)(单例设计模式)
- Java基础06:Static;单例设计模式;对象初始化;构造函数;
- java设计模式学习笔记--面向对象设计原则
- C++转Java自学之路(四)文档注释、静态代码块与对象初始化过程
- 黑马程序员--Java面向对象之this、static和单例设计模式
- 【学习笔记06】java面向对象-main方法、单例设计模式
- java、静态代码块、static和单列设计模式
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- Java笔记2 面向对象<2>static关键字、main函数、静态运用、单例设计模式
- 11. JAVA常用类库 Part 4 (对象克隆技术clone、Arrays类、Comparable接口、比较器Comparator、观察者设计模式) ----- 学习笔记
- 面对对象2【static】【主函数】【静态应用】【Java帮助文档】【静态代码块】【对象初始化过程】
- java笔记-----代码块、单例设计模式、继承
- java基础七(成员变量 局部变量 匿名对象 封装 设计原则 private this 构造方法 static)
- 黑马程序员--Java笔记04--面向对象 及单例设计模式
- 黑马程序员------毕老师视频笔记第六天------面向对象(单例设计模式)
- day06static关键字,main函数,帮助文档的制作,静态代码块,对象的初始化过程,单例设计模式