黑马程序员--Java学习笔记之面向对象思想(单例模式详解、匿名对象、静态、final)
2013-09-21 18:37
801 查看
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
一、数据类型:
1、基本数据类型:8种,boolean char(16bit) byte(8) short(16) int(32) long(64) float(32) double(64)
2、引用数据类型:除了基本数据类型,其它的是引用数据类型。
二、类的成员变量和局部变量的区别:
a、作用范围
b、在内存中的位置,成员变量跟随对象在堆内存中存在,而局部变量跟随方法在栈中存在
c、成员变量会默认初始化(被final修饰的除外),局部变量必须人工初始化
三、匿名对象的特点:
1、当使用该对象的方法只调用一次时使用匿名对象比较方便
2、一次性,使用之后再堆内存中即刻变为垃圾,等待回收
3、不能使用匿名对象的方式改变成员变量的值,比如new Car().color = "blue"; 或者说这样做没有意义,因为该对象不能保存。
四、构造代码块
1、作用:给对象进行初始化
2、对象一建立就运行,优先于构造方法
3、构造代码块是要给该类所创建的所有对象初始化,而构造函数是给当前对象初始化。
五、静态static
1、用法:用于修饰类的成员(成员变量和成员方法),被修饰的成员被调用时可以:类名.成员名
2、特点:a、生命周期最长,随着类的加载而加载,随着类的消失而消失
b、优先于对象存在
c、被所有对象共享
d、可以直接被类名调用
3、静态使用注意事项:静态方法只能访问静态成员;静态方法中不可以使用this、super关键字
4、利弊:利,对对象的共享数据进行单独存储,节省空间;可以被类直接调用
弊,生命周期过长,出现访问局限性
六、final关键字
1、可以修饰类、方法、变量
2、被final修饰的方法不能被覆写
3、被final修饰的类不能被继承,不能有子类
4、被final修饰的变量是一个常量,只能被赋值一次
5、内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
6、fianl修饰的成员变量在定义时不会默认初始化,因此可以在构造方法中对其进行初始化。
七、单例模式
1、饿汉式
2、懒汉式
3、懒汉式(线程安全)
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
一、数据类型:
1、基本数据类型:8种,boolean char(16bit) byte(8) short(16) int(32) long(64) float(32) double(64)
2、引用数据类型:除了基本数据类型,其它的是引用数据类型。
二、类的成员变量和局部变量的区别:
a、作用范围
b、在内存中的位置,成员变量跟随对象在堆内存中存在,而局部变量跟随方法在栈中存在
c、成员变量会默认初始化(被final修饰的除外),局部变量必须人工初始化
三、匿名对象的特点:
1、当使用该对象的方法只调用一次时使用匿名对象比较方便
2、一次性,使用之后再堆内存中即刻变为垃圾,等待回收
3、不能使用匿名对象的方式改变成员变量的值,比如new Car().color = "blue"; 或者说这样做没有意义,因为该对象不能保存。
四、构造代码块
1、作用:给对象进行初始化
2、对象一建立就运行,优先于构造方法
3、构造代码块是要给该类所创建的所有对象初始化,而构造函数是给当前对象初始化。
五、静态static
1、用法:用于修饰类的成员(成员变量和成员方法),被修饰的成员被调用时可以:类名.成员名
2、特点:a、生命周期最长,随着类的加载而加载,随着类的消失而消失
b、优先于对象存在
c、被所有对象共享
d、可以直接被类名调用
3、静态使用注意事项:静态方法只能访问静态成员;静态方法中不可以使用this、super关键字
4、利弊:利,对对象的共享数据进行单独存储,节省空间;可以被类直接调用
弊,生命周期过长,出现访问局限性
六、final关键字
1、可以修饰类、方法、变量
2、被final修饰的方法不能被覆写
3、被final修饰的类不能被继承,不能有子类
4、被final修饰的变量是一个常量,只能被赋值一次
5、内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
6、fianl修饰的成员变量在定义时不会默认初始化,因此可以在构造方法中对其进行初始化。
class Test{ final int i;//此时默认没有赋值为0 public Test(){ this.i = 8;//这是可以的,但是在非构造方法中不可以。 } }
七、单例模式
1、饿汉式
class SingleDemo{ private static SingleDemo sd = new Singledemo(); private SingleDemo(){} public static SingleDemo getInstance(){ return sd; } }
2、懒汉式
class SingleDemo2{ private static SingleDemos sd2 = null; private SingleDemo2(){} public static SingleDemo2 getInstance(){ if(sd2 == null){ sd2 = new SingleDemo2(); } return sd2; } }
3、懒汉式(线程安全)
class SingleDemo3{ private static SingleDemos sd2 = null; private SingleDemo2(){} public static SingleDemo2 getInstance(){ if(sd2 == null){ synchronized(SingleDemo3.class){ sd2 = new SingleDemo2(); } } return sd2; } }
---------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! -------------------
相关文章推荐
- 黑马程序员--Java学习笔记之面向对象思想(多态、内部类、匿名内部类、异常类)
- 1、Java面向对象笔记(匿名对象)(static 静态修饰符)(单例设计模式)
- 黑马程序员——学习笔记05.java面向对象
- Java面向对象学习笔记 -- 4(static、final关键字)
- java 面向对象学习笔记——修饰词final,static,abstract
- java面向对象 黑马程序员学习笔记(5)
- 黑马程序员_java基础学习笔记04_面向对象
- 黑马程序员_java面向对象总结【2】(静态、单例设计模式)
- 黑马程序员_学习笔记:4) 面向对象2:继承、this、super、finally、Abstract、模板设计模式、接口
- 【学习笔记09】java面向对象-final、抽象类
- 黑马程序员 java学习笔记——面向对象2:继承
- 黑马程序员--Java笔记04--面向对象 及单例设计模式
- 【学习笔记06】java面向对象-main方法、单例设计模式
- 黑马程序员—4—Java基础: 面向对象继承学习笔记和学习心得体会
- java设计模式学习笔记--面向对象设计原则
- 黑马程序员_java面向对象思想学习总结
- 黑马程序员_Java基础_03面向对象思想(对象转型注意事项、多态、抽象类、final关键字等)
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- 【学习笔记15】java面向对象-匿名内部类
- Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类