1.内存分配方式 : 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆:就是那些由 ...
分类:
编程语言 时间:
2017-04-25 13:21:22
阅读次数:
134
Day12个人总结 一、设计模式: 1、单例模式 优点: 1) 节省内存 2)避免多种状态导致状态冲突 单例模式又分为懒汉模式和恶汉模式 2、饿汉模式 1) 私有化构造方法 2) 在本类中创建一个实例 3) 实例需要私有化private,要保证实例只能被赋值一次,使用修饰符final最终的来修饰 4 ...
分类:
编程语言 时间:
2017-04-24 21:19:48
阅读次数:
203
单例模式下饿汉模式效率最好 饿汉模式 class Single { private static final Single s=new Single(); private Single(){} public static Single getInstance() { return s; } } 懒汉 ...
分类:
其他好文 时间:
2017-04-14 22:36:15
阅读次数:
218
就语言而言,个人还是比较喜欢C++,尽管C++有些语法方面确实比较深奥,但这些确实挡不住它在实际应用中不可被替代的位置。开始谈今天的重点,如何定义一个特殊的C++类。1、定义不可被继承的C++类如何让一个类不能被继承呢?简单来说,我们希望达到的效果,就是如果继承这个类的..
分类:
编程语言 时间:
2017-04-14 10:50:04
阅读次数:
186
单例模式,作为一种常用,且在很多框架中非常常用的模式,比如springMVC中默认的就是用单例。 今天就来讲讲单例模式都有哪些,以及有何区别,有何优点缺点。 1. 饿汉模式,顾名思议,即是提前把这个单例给好了。优:线程安全;缺:初始加载,不管有用没有; 2. 懒加载,分好几种。是不是该加点代码的,最 ...
分类:
其他好文 时间:
2017-04-14 10:03:35
阅读次数:
152
最近在网上看到一篇关于 Java 单例的创建问题,虽然是一个 Java 程序员,但是到现在还没有真正的深入了解到 Java 的原理和机制。所以每每看到这样能够“真正”接触 Java 的机会内心总是充满了欣喜。记录下,以后备用。 懒汉模式 教科书式的写法,但是无法适用于多线程的状态下。 饿汉模式 饿汉 ...
分类:
编程语言 时间:
2017-04-13 23:36:01
阅读次数:
191
一、饿汉式 这种方式基于classloder机制避免了多线程的同步问题 这种实现方式适合单例占用内存比较小,在初始化时就会被用到的情况。但是如果单例占用的内存比较大,或单例只是在某个特定场景下才会用到,使用饿汉模式就不合适了,这时候就需要用到懒汉模式进行延迟加载。 二、懒汉式单例 使用静态内部类 这 ...
分类:
编程语言 时间:
2017-04-09 12:55:05
阅读次数:
126
最近学习了设计模式之单例模式,现在进行总结一下吧。 (1)饿汉模式:饿汉模式利用类的加载机制 好处:只在类的加载时候创建一次实例,不会存在多线程创建多个实例的问题,避免了多线程同步的问题。 缺点:即使这个实例没有被程序用到,也会被创建,内存就浪费了。 (2)懒汉模式:懒汉模式是需要的时候才去创建对象 ...
分类:
其他好文 时间:
2017-04-08 18:47:35
阅读次数:
203
单例模式:程序在运行期间只能有一个实例对象。 第一中实现方式:饥汉模式 在类进行初始化的时候 就加载了singleton 对象,这是会占用内存。 第二种实现方式:懒汉模式 在进行调用时对singleton进行实例化,这时如果多个线程同时调用getInstance(),这时线程存在安全问题。 为了解决 ...
分类:
其他好文 时间:
2017-04-03 22:44:48
阅读次数:
225
懒汉式,在多线程中,会遇到如下问题: 当第一个线程判断S2=null时条件成立,没来得及创建对象,切换到了第二个进程,s2仍然为空,创建了对象,切换到s1继续创建对象,破坏了单例模式的唯一性 以下代码。只要一个线程把任务创建完毕!后面的线程都无法进入同步代码块!解决了效率问题!减少判断锁的次数。 ...
分类:
编程语言 时间:
2017-04-02 19:22:22
阅读次数:
157