A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luguoyuanf 中级黑马   /  2013-3-25 21:27  /  1602 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

         

          3.6static(静态)关键字
                    静态模式:23
                    构造代码块写在类中,建立对象就运行一次,优先于构造函数
                    静态修饰的成员变量多了一种调用形式
                    静态可以调用静态的,静态的不能接收非静态的
                    方法区:
                            存储函数,静态也是放在方法区,但是在方法区的静态区.
                    静态数据进到内存的方法区后,堆中不一定有对象.
                    静态区优先于对象的存在
                    静态变量没有对象
                    静态不能访问非静态的原因:
                           原因在于静态随着类的加载进入静态区,非静态成员变量跟对象加载到堆内存,静态区的优先于对象存在
                    好处:
                            资源共享
                            类名直接调用,不用建立对象
                   弊处:
                            出现调用的局限性
                            随着类的消失而消失,生命周期最长
                            消耗资源
                   注意事项:
                            1)static不能修饰局部变量
                            2)被静态修饰的函数中不能写thissuper
                            3)定义静态成员变量时,变量名全部大写
                   总结:
                            1) 共享数据,使用静态修饰
                            2)静态不能调用非静态
                   什么时候定义静态?
                            对象中的共享数据定义成静态
                            具体事情,具体分析
                            当类中的方法从来没有访问过类中的非静态成员变量,这个函数写成static
                   主函数详解:
                            主函数:独立入口,被虚拟机调用,保证一个类独立运行
                            public:保证权限足够大
                            static:静态,没有对象,也可以调用主函数
                            void:返回值类型,没有返回,谁调用的返回给谁
                            main:规定的固定格式,不能改
                            (String[]args):JVM调用主函数的时候虚拟机传递一个字符类型的数组,args可以随便改名,但不建议更改!
         3.7单例设计模式
                   单例设计模式赋值对象在内存中是唯一的
                   单例设计模式解决对象的唯一性,保证了内存中一个对象是唯一的发现,new对象就是新的
                   解决步骤:
                    1) 不能让new新对象
                    2) 但是我可以自己建立自己的对象
                    3) 对外界提供一个方法,返回自己建立的这个对象
                    4) 不能用new建立,但是我可以调用类中的一个对外方法,获取到该类的对象
                   代码实现:
                   1,私有化构造函数
                    2,自己可以访问自己的构造函数
                    3,提供公共函数返回自己建立的对象
                    4,不能建立对象,但方法可以被调用
                    5, 保证对象中的唯一性
                   两种方式实现
                    1) 安全的恶汉式(工作中使用)
                    2) 不太安全的懒汉式(面试中使用)
         3.7.1静态代码块(开发中基本不用,面试的时候基本会用)
                    静态代码块定义在类中,当类加载到内存方法区中,运行一次,以后不会再运行了.
                    构造代码块建立对象就运行一次

        有总结得不对的请大家帮忙指出,谢谢!

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马