8 大胡子_java

尚未进行身份认证

暂无相关描述

等级
博文 64
排名 6w+

单一职责原则进阶——多个地方的不同见解和解读

首先是定义单一职责原则:一个类应该只有一个发生变化的原因英文名叫SingleResponsibilityPrinciple,以下简称为SRP其实这个里面有两个比较容易难懂的点什么是职责一个原因是表示只能有一个接口吗下面我们从三本著作中去解读这个单一职责这三本著作分别是《深入浅出面向对象分析与设计》、《设计模式解析》和《敏捷开发:原则、模式与实践》。深入浅出面向对象分...

2018-10-31 22:20:08

如何定义一个类——单一职责原则

单一职责原则:就一个类而言,应该仅有一个引起他变化的原因。1一个老师类的例子或者说在外部看来,一个类只应该能看到它的类的相关功能。如老师类只应该负责教授知识,备课,但是不应该负责开车。切合实际的说一个TaskService类不应该包含处理时间的类,他可以是private的,但是肯定不能是public的。这里引出另一个角度2如何看待一个类?2.1通常的看法通常的看法是,类是由...

2018-10-30 20:25:47

增删改查也有设计模式——依赖倒置原则另解

一个增删改查的例子解读面向接口编程和依赖倒置原则依赖倒置原则介绍依赖倒置原则包括两个部分.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。例子现在有如下场景和需求:老板提出要设计开发一个任务模块,任务是让我们码农去写自己每天做的事情的,又需求提出人去发布,那任务发布出去肯定就有撤回。假设这个需求只给了几个小时去做,那...

2018-10-25 21:57:10

结构——桥接模式

桥接模式是将抽象和实现分离开,或者说用组合去替代继承。比如画图形,话白色的圆,白色的矩形,红色的圆形,红色的矩形,白色三角形,红色三角形如果使用继承,则定义Shape类WhiteCircle,WhiteRect,RedCircle,RedRect,WhiteTri,RedTri四个类如果再继续添加颜色或者添加图形类型,如蓝色,那么需要添加三个类最终也就是九个 桥接模式就是将...

2018-10-01 21:22:31

结构——适配器模式(包装器模式)

英文名adapter适配器或wrapper包装器应用他将一个类转换成另一个客户端可以可以调用的类,使得原来不能一起使用的两个类变成可以一起使用的类。通常是通过继承或依赖。用包装器的名字很容易理解,即将类A包装成B,使得其他本不能调用类A的通过包装后的类B成功调用A的接口。适配器就相当于转接头插口,就像电源,本来不可以直通的通过转接口可以充电。下面是通过继承实现,java没有...

2018-09-24 11:41:54

创建——单例模式

英文名Singleton最简单的设计模式应用当一个类在整个系统生命周期中只需要一个实例的时候使用,并且提供一个给其他类可以访问的接口。例子spring中维护的bean,servlet容器中管理的servlet类等。使用可以定义一个工厂方法返回该单例类。classDemoFactory{privatestaticDemodemo;static{...

2018-09-24 09:14:50

创建——原型模式

英文名PROTOTYPE用处用原型实例指定创建对象的种类,通过拷贝原型创建新的对象。例子最好的例子就是word文档,或者一些常见的原型工具。经常是图形在左侧,通过拖动拖动一个组件到画布上,然后对画布上的组件进行二次编辑,这里的组件就是原型,拖动出去的是拷贝。通常图形都是通过一些元组件搭配而成的,这些元组件就是原型,这个搭配有点类似构造器...

2018-09-24 08:54:34

创建——工厂方法模式

英文factorymethod工厂方法模式工厂方法模式是封装对象实例化工程的方法,每一个类都对应一个工厂类。如果因此觉得麻烦,可以和抽象工厂类一样,作为参数去获取。问题也是同样,向下转化的安全问题。如果是一个类对应一个工厂类的话,那么需要定义如下类。首先基础接口FactoryclassFactory{publicProductCreateProduct(...

2018-09-23 21:02:15

创建——构造器模式

英文名BUILDER用于将一个复杂对象与它的表示分离。使得同样的创建过程可以创建不同的表示。假设现在要将一个RTF文档转换为word或者PDF。RTFrichtextformat富文本。一般情况下我会定义一个方法RTFUtil.rtf2word和RTFUtil.rtf2pdf直接去转换就可以了。在书中认为这个转化过程是一个比较复杂的过程,那么需要将转换字符串和转换pdf中的图...

2018-09-23 15:57:42

创建——抽象工厂模式

抽象工厂英文abstractfactory名词需要分成两个部分读,抽象工厂。首先这是一个工厂,其次工厂是抽象的。常用于需要针对不同情况创建不同组(一组包含多个)对象的情况中。如:如gui应用中的首页中都有更换皮肤的功能,更换皮肤通常需要修改导航栏的样式,首页背景图等。假设这些样式封装在三个不同的对象中,对象导航栏和对象首页。(为了让表述简单这里只分两个部分) Wi...

2018-09-22 22:51:20

0 设计模式概述

设计模式组成模式名称:就是名称问题:对问题的描述,有时候包含了满足使用模式的先决条件解决方案:描述设计效果:描述使用设计后的效果模式之间可能作用相似甚至可以相互替代。描述设计模式的几个方面方面 解释 模式名和分类 模式名用于描述模式,分类是对不同的模式进行了分类。 意图 描述设计模式的意图 别名 其他名称 冬季 描述模式场景...

2018-09-16 20:51:48

java并发编程实战

红色是面试点?  如果多个线程访问一个对象的状态变量没有做同步措施,程序就可能出现错误。可以弥补的措施有: 1、状态变量不在线程之间共享 2、将状态修改为不可变的变量 3、访问该状态变量的时候使用同步(似乎和问题条件冲突) 当设计线程安全的类时,良好的面向对象技术、不可修改性一级明细的不变性规范都能起到作用 面向对象的抽象和封装会降低性能 使用...

2018-09-08 09:04:46

查看java汇编指令(不是字节码)

由于最近看多线程的原子性,看到字节码的i++是一个iinc的指令,只有一条,无法将他与书上的三个步骤关联起来,于是去看了汇编指令看汇编指令步骤如下 首先:https://sourceforge.net/projects/fcml/files/fcml-1.1.3/ 在这个网址上下载hsdis-1.1.3-win32-amd64.zip下载完成后,将里面的将dll解压到jav...

2018-09-06 23:08:51

maven clean install找不到符号

翻到报错最上面有找不到符号的具体报错目前找到的一个问题是编译时A类调用B类错误,报错没有解决就编译了

2018-09-06 09:53:19

synchronized关键字

1、单词释义sysynchronized关键字是同步的意思,前面加a就是异步2、作用对象synchronized作用的对象是类的实例,而不是方法,经常看到在方法上加上同步修饰符,其实锁定的是调用这个方法的对象,而不是这个方法本身。如果加在静态方法上,锁定的就是Class。类锁和实例锁不是一个锁。class锁对类所有实例有效。synchronized(class){}和加在静态上效果一样...

2018-09-02 18:02:02

由浅入深——java多线程

  目录1、多线程类的两种声明方式1继承2实现2、关于容器3、同步修饰符 synchronized4、线程命名5isALive()方法和getId()方法6结束线程的三种方式1、等待线程的run方法跑完2、stop()3、interrupt()7、暂停和启动8、出让方法yield() 9、线程优先级10守护线程1、多...

2018-09-01 16:03:16

类加载器

类加载器做的事情就是“通过一个类的全限定名去获取描述此类的二进制字节流” 比较两个类相等,除了是来自相同的类,由同一个虚拟机加载外,还要求是同一个类加载器加载的,这个相等是指 类相等 类的equals方法等 虚拟机只有两种类加载器,一种是启动类加载器(用C++实现,是虚拟机的一部分),另一种是开发人员自定义类加载器(独立于虚拟机,java语言实现,全部继承抽象类ClassLoader) ...

2018-08-19 17:05:00

怎敢精——加载链接和初始化

 加载:将class里的静态二进制存储结构转化为内存中的的运行时数据结构,并且在方法区中生成class对象作为访问类数据的入口链接.验证:校验文件是否符合格式,类型是否正确(是否继承了final修饰的类),字节码是否正确,符号引用验证(是否能找到对应类。)链接.准备:为类变量在方法区中分配内存并分配初始值,是类变量不是实例变量。准备阶段不执行指令,初始值为0,例如定义了privat...

2018-08-15 22:53:19

jvm——code信息

 Code:stack=2,locals=4,args_size=20:iconst_11:istore_22:new#1//classpro1/DemoArray5:dup6:invokespecia...

2018-08-15 20:47:41

jvm——栈最大深度

这篇文章主要帮助我理解了,一个线程对应的栈所占据的内存空间和他每个栈帧占据的空间息息相关不过我本来想搜的是javap里反汇编后显示的stack的含义阴差阳错找到了这个博文地址 https://www.cnblogs.com/rocky-fang/p/8367018.html//原文1.概述某公司面试,总监大叔过来,问了图论及栈的最大深度,然后^_^一直记着,今天搞一...

2018-08-15 13:23:20
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!