自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yuwen's Hero

专注面试题, 博客 http://blog.csdn.net/beiyeqingteng 的镜像站

  • 博客(14)
  • 收藏
  • 关注

转载 工厂三兄弟之抽象工厂模式

抽象工厂模式概述抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。抽象工厂模式定义如下:       抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它

2015-11-06 11:25:35 2064

转载 工厂三兄弟之工厂方法模式

工厂方法模式概述在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂

2015-11-06 10:52:44 1008

转载 工厂三兄弟之简单工厂模式

简单工厂模式概述简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下:首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂

2015-11-06 10:26:44 849

转载 创建对象与使用对象——谈谈工厂的作用

与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和行为,可通过一些公开的方法来实现它的职责。在本文中,我们将简单讨论一下对象的创建职责和使用职责。在Java语言中,我们通常有以下几种创建对象的方式:       (1) 使用new关键字直接创建对象;       (2)

2015-11-06 07:10:40 1179

转载 深入浅出UML类图

类与类之间的关系在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式。1. 关联关系关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等等。在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C#

2015-11-06 01:06:25 703 1

转载 java多线程之死锁

1. Java中导致死锁的原因Java中死锁最简单的情况是,一个线程T1持有锁L1并且申请获得锁L2,而另一个线程T2持有锁L2并且申请获得锁L1,因为默认的锁申请操作都是阻塞的,所以线程T1和T2永远被阻塞了。导致了死锁。这是最容易理解也是最简单的死锁的形式。但是实际环境中的死锁往往比这个复杂的多。可能会有多个线程形成了一个死锁的环路,比如:线程T1持有锁L1并且申请获得锁L2,而线程T

2015-11-05 02:35:30 631

原创 JAVA多线程之常用方法

在多线程编程中,经常会使用到如下方法:1. public final void wait()  throws InterruptedException,IllegalMonitorStateException该方法用来将当前线程置入休眠状态,直到接到通知或被中断为止。在调用wait()之前,线程必须要获得该对象的对象级别锁,即只能在同步方法或同步块中调用wait()方法。进入wait(

2015-11-04 03:44:06 1034 1

转载 How Volatile in Java works? Example of volatile keyword in Java

How to use Volatile keyword in JavaWhat is volatile variable in Java and when to use Volatile variable in Java is famous multi-threading interview question in Java interviews. Though many programm

2015-11-03 11:50:55 1253

原创 java多线程之happens-before

1、背景问题在讲happens-before之前,先引入一个例子:假定我们有已经被初始化的变量:int counter = 0;这个 counter 变量被两个线程所共有,也就是说线程A和线程B都可以获取或者更改counter的值。 这里我们假设线程A要增加counter的值:counter++;然后,线程B打印counter的值System.out.println(c

2015-11-03 11:24:19 2297

原创 Java多线程之内存可见性

1、什么是JAVA 内存模型Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互。 具体说来, JVM中存在一个主存区(Main Memory或Java Heap Memory),对于所有线程进行共享,而每个线程又有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作并非发生在主存区

2015-11-03 02:47:55 14186 12

转载 多线程之指令重排序

1、首先为何要指令重排序(instruction reordering)?编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。也就是说,对于下面两条语句:int a = 10;int b = 20;在计算机执行上面两句话的时候,有可能第二条语句会先于第一条语句执行。所以,千万不要随意假设指令执行的顺序。2、是不是所有的语句的执行顺

2015-11-02 08:00:05 13478 3

转载 线程的创建

什么是进程和线程?A process is an executing instance of an application. For example, when you double-click the Microsoft Word icon, you start a process that runs Word.A thread is a basic unit to which th

2015-11-01 11:25:32 508

原创 java中如何中断thread

要中断thread的执行,我们有多种方式,有些方式是推荐的,有些方式是不推荐的,甚至是错误的。1. 可否用interrupt()方法来中断thread?为了回答这个问题,我们首先来看一个例子:class MyThread implements Runnable { public void run() { while (true) { System.out.prin

2015-11-01 07:17:33 2504

原创 生产者消费者问题源程序

问题描述:生产者消费者问题(Producer-consumer problem)是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中

2015-11-01 04:18:18 2064

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除