Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。简单的看一张图我们在测试类 A 时,类 A 需要调用类 B 和类 C,而类 B 和类 C 又需要调用其他类如 D、E、F 等,假如类 D、E、F 构造很耗时又或者调用很耗时的话是非常不便于测试的(比如是 DAO 类,每次访问...
7年前 (2018-05-26)
阅读(3601)
赞一个 (2 )
链接直达
对于代码的设计,这里常说的就是SOLID原则。一、单一职责原则 Single Responsibility Principle定义:一个类或者一个接口,最好只负责一项职责。问题由来:类T负责两个不同的职责P1和P2。由于职责P1需要发生改变而需要修改T类,就有可能导致原来运行正常的职责P2功能发生故障。解决方法:遵循单一职责原则。分别建立新的类来对应相应的职责;这样就能避免修改类时影响到其他的职责;当遇到职责扩散的时候,在逻辑足够简单的...
7年前 (2018-05-24)
阅读(2927)
赞一个 (1 )
链接直达
你是否曾经思考过如何设计大型的企业级系统?在决定启动软件开发之前,首要的是选择恰当的架构来指引系统的功能及质量属性设计。因此在将软件架构应用于设计之前,必需要了解常用的架构模式。什么是架构模式?Wikipedia 的解释:在软件架构中,架构模式是对特定环境下常见问题的通用且可重用的解决方案。架构模式与软件设计模式很相似,但架构模式的层次更高,且外延更大。这篇文章将简述常见的 10 种架构模式的概念、用法以及其优缺点。分层模式(Layer...
7年前 (2018-05-21)
阅读(2695)
赞一个 (0 )
链接直达
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考。我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。编码的前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写的代码都是一些功能业务逻辑)。但同时自己心里明白,自己其实没有什么水平...
7年前 (2018-05-21)
阅读(3047)
赞一个 (4 )
链接直达
软件大师又要给弟子开小灶了,这次是线程和线程池。软件大师正在闭目修炼, 最小的一名弟子慢慢走了进来。线程池中的Worker线程:
public class WorkerThread extends Thread {
private BlockingQueue<Task> taskQueue =&...
7年前 (2018-05-21)
阅读(2702)
赞一个 (3 )
链接直达
Java已经成为历史。它无法发展成现代语言,同时保证向后兼容性。但它为我们带来了最好的JVM生态系统,并引导了许多优秀语言的诞生,如Groovy、Scala、Clojure、Kotlin等。欢迎年纪最小的Kotlin!Kotlin诞生于2011年,但在去年Google宣布Kotlin成为安卓的官方开发语言之后迅速走红。Kotlin从其他JVM语言中借鉴了大量强大的功能。我们来快速浏览一下Kotlin能为Java开发者带来的好处。无需再担...
7年前 (2018-05-13)
阅读(3023)
赞一个 (1 )
链接直达
很早之前就听说过龙哥提出的代码中使用规则引擎来实现业务上的多重判断。今日在纯洁的微笑公众号中发现这类专题文章,一起分享学习下,改日抽时间我也做一个系列的专题分享,敬请关注。以下内容为转载学习。小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。小明的烦恼活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可...
7年前 (2018-05-12)
阅读(3332)
赞一个 (7 )
链接直达
一、概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即 “参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(...
7年前 (2018-05-05)
阅读(2946)
赞一个 (2 )
链接直达
当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead) 5种状态。尤其是当线程启动以后,它不可能一直“霸占”着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换新建状态,当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅...
7年前 (2018-05-05)
阅读(3459)
赞一个 (1 )
链接直达
近几年,微服务技术得以迅猛普及,而以 Spring Cloud、Dubbo 为代表较为成熟的微服务开发框架,占据着市场的主流地位,它们甚至一度成为微服务的代名词。什么是微服务首先微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统 Web 应用,来理解什么是微服务。传统的 Web 应用核心分为业务逻辑、适配器以及 API 或通过 UI 访问的 Web 界面。业务逻辑定义业务流程、业务规则以及领...
7年前 (2018-05-04)
阅读(3898)
赞一个 (1 )
链接直达
一、单选题1、以下谁是二进制思想的最早提出者? 伏羲;姬昌;莱布尼茨;柏拉图;伏羲伏羲,中华民族人文始祖,是我国古籍中记载的最早的王,所处时代约为新石器时代早期。根据传说和史籍记载,作为人类文明始祖,伏羲的主要功绩是:一、教民作网用于渔猎,大大地提高了当时人类的生产能力。同时教民驯养野兽,这就是家畜的由来。二、变革婚姻习俗,倡导男聘女嫁的婚俗礼节,使血缘婚改为族外婚,结束了长期以来,子女只知其母不知其父的原始群婚...
7年前 (2018-04-28)
阅读(3115)
赞一个 (2 )
链接直达
1、以下诗句所表达的意境,与程序员的生活最不相关的一项是:a. 世事茫茫难自料,春愁黯黯独成眠。b. 五更鼓角声悲壮,三峡星河影动摇。c. 我醉欲眠卿且去,明朝有意抱琴来。d. 白头搔更短,浑欲不胜簪。2、秦始皇吞并六国采用了以下哪种算法思想?a. 递归b. 分治c. 迭代d. 模拟3、下列书籍中,属于编程类的一本经典著作的是:a. 《边城浪子》b. 《山海经》c. 《人月神话》d. 《二师兄教你找对象》4、以下谁是二进制思想的最早提出...
7年前 (2018-04-28)
阅读(3544)
赞一个 (3 )
链接直达