
编程范式
文章平均质量分 72
编程范式,设计模式,以及各编程语言的技巧
一的三次方
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MYSQL | 求各个部门里薪水最高的员工(可能有多个员工)
题目 有两张表Employee和Department,要求如题 employee ±—±------±-------±-------------+ | Id | Name | Salary | DepartmentId | ±—±------±-------±-------------+ | 1 | Joe | 70000 | 1 | | 2 | Jim ...原创 2020-02-16 12:26:55 · 1169 阅读 · 0 评论 -
mysql | 求某列第二大的值
题目 求某一列第二大的值 如果没有第二大的值,返回NULL 方法1.使用MAX关键字 进行两次排序,第一次选出max后,再从剩下的进行排序选出第二大的 SELECT MAX(Salary) AS SecondHighestSalary FROM Employee WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee); 方法2. 子查...原创 2020-02-16 11:22:38 · 1848 阅读 · 0 评论 -
C++的函数模板
1,基本知识 先了解下C++的引用作为函数返回值的情况; 引用作为函数返回值,不产生值的副本,提高效率。 2,初识函数模板 #undef __STRICT_ANSI__ #include using namespace std; template T const& max_element(const T* var,size_t size){//引用作为函数返回值 T co原创 2015-06-25 14:46:42 · 392 阅读 · 0 评论 -
设计模式|装饰器模式
策略模式和观察者模式都属于Behavioral Patterns 装饰器模式属于Structural Patterns 设计目的 动态扩展某个对象的功能,不改变原对象结构 别名 wrapper 装饰器对于客户端透明,客户端无法区分对象是否被装饰。 举例 public interface Troll { void attack(); int getAttackPower(); void ...转载 2018-12-09 21:55:18 · 271 阅读 · 0 评论 -
设计模式 | 观察者模式
OO原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为对象之间的松耦合设计努力 观察者模式 对象之间定义一对多的依赖,当一个subject对象改变状态时,依赖它的对象会收到通知,并自动更新 应用:JavaBeans / RMI / GUI 实现:java.util.Observable的问题在于 subject不是接口,而是抽象类 细节:push/pull两种方式,push...原创 2018-12-01 11:34:59 · 291 阅读 · 0 评论 -
设计模式| 策略模式
OO设计原则 封装变化 针对接口编程,而不是针对实现编程 多用组合,少用继承 《head first 设计模式》思路 初始需求:设计日志SDK,支持多种打印方式:文件日志/标准输出打印/socket日志(想象有几十个子类),设置多种日志格式 4. 继承,抽象Super Class 定义日志超类(superclass),因为每种appender打印方式不同,print() 方法是抽象的。 需...原创 2018-11-25 20:52:54 · 141 阅读 · 0 评论 -
java中如何设计一个简单的连接池
经典的等待/通知机制 消费者 获取对象的原创 2019-04-01 08:51:19 · 454 阅读 · 0 评论 -
mockito的最佳实践
1.如何mock发送请求给controller GET @Test public void testMonitor() throws Exception { String url = "/monitor/alive"; String jsonStr = mockMvc.perform(get(url)).andExpect(status().isOk...原创 2019-03-23 07:17:30 · 1000 阅读 · 0 评论 -
认识mock
背景 如果写单元测试,mock必不可少;Mock是解决单元测试UT里依赖问题的重要手段;其实mock是个很简单的概念,不要害怕。 代码有依赖(not self contained) 单元测试目的是只测试某个模块,不需要测试他的依赖;但是实际工作中,肯定存在依赖的问题,controller和service,dao都是有依赖的。 如果我们只单元测试controller,但是不希望同时测试servic...翻译 2019-03-15 22:31:02 · 176 阅读 · 0 评论 -
Java并发编程 | java 内存模型FAQ - 同步的含义
4 没有正确同步的含义 A线程写一个变量,B线程读一个变量,但是读和写的发生顺序没有唯一确定。 如果产生这种问题的代码,这个变量就会发生数据竞争(data race)。 5 同步会做什么呢? 有序性:最容易的理解就是互斥的作用 - 一次只有一个线程能占有monitor,其他线程无法进入被这个monitor同步的代码块。 可见性:同步保证之前和同步代码中的数据,可以被其他线程看见;A线程释放m...翻译 2019-03-03 23:08:57 · 146 阅读 · 0 评论 -
Java并发编程 | java 内存模型FAQ - 背景介绍
http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#reordering 1.背景:内存模型是啥? 背景:处理器和内存的速度差异较大,为了提高程序性能,处理器和内存之间加了多层缓存; 问题:但是,多处理器系统中,由于每个处理器之间的缓存不是共享的,这就会有数据一致性问题;也就是多线程的可见性问题。 解法:内存屏障(memor...翻译 2019-03-03 22:35:44 · 156 阅读 · 0 评论 -
java多线程编程 | producer - consumer问题 中
关键:生产者不会在缓冲区满时加入数据,消费者不会在缓冲区空时消费数据 生产者持续生产,直到buffer满,满时阻塞;buffer不满后,继续生产 消费者持续消费,直到buffer空,空时阻塞;buffer不空后,继续消费 方法1: BlockingQueue实现 class Producer implements Runnable { private BlockingQueue<...原创 2019-02-24 19:33:14 · 349 阅读 · 0 评论 -
java多线程编程 | 生产者消费者问题:Producer-Consumer 上
https://en.wikipedia.org/wiki/Producer–consumer_problem 有问题的实现 java如何创建线程 java线程的状态:New/Runnable/Blocked/Waiting/Time Waiting/Terminated java如何唤醒线程 public class Buffer { private static Queue q = ...原创 2018-12-16 22:01:17 · 625 阅读 · 0 评论 -
编程语言| java 接口简介
Interface(Java) background and design goal unlike C++, java doesn’t support multi-inheritance because of its complexity and inefficiency (???) all classes in java must have one base class(except for ...原创 2018-12-09 23:10:06 · 388 阅读 · 0 评论