呼延十

呼延十

[设计模式]-责任链模式

1.介绍 使多个对象都有机会处理请求,从而避免请求的发送者与接受者之间的耦合关系. 将多个接受者连成一条链,沿着该链处理请求,知道请求被处理为止. 类图 角色 抽象处理者: 定义了处理请求的接口或者抽象类,提供了处理请求的的方法和设置下一个处理者的方法。 具体处理者: 实现或者继承抽象这角色,具...

2019-03-19 20:57:02

阅读数 23

评论数 0

[设计模式]-策略模式

前言 这是我的第一篇读书笔记. 今天拿起了《Head First 设计模式》,读完了第一章"设计模式入门",这篇博客用来记录对这一章的理解. 首先吹一波这本书,他确实成功的让我没有烦躁,安静的读并且思考了下来.这可能得益于里面大量的插图,以及时不时的提问,让我比...

2019-01-07 00:34:08

阅读数 314

评论数 0

[设计模式]-观察者模式

介绍(以下部分内容来自维基百科) 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 这话听着很拗口,其实就是多个对象依赖于一个对象,并按照他的状态变化改变自身. 结构 主要有四个类: 抽象目标类(接口). 具体的目标类. 抽象的观察者类....

2018-12-28 00:43:56

阅读数 450

评论数 0

[设计模式]-模板方法模式

前言 在上一篇文章责任链模式中提到了模板方法模式,因此这里简单介绍一下. 模板方法模式比较简单,或者说比较常用.在开发过程中,许多人在不知不觉的情况下就会使用,只要他具有良好的面对对象思维. 比如当你写了Dog和Cat两个类,发现很多相同的代码,你自然就会将相同模块提取抽象成父类,然后将一些公共的...

2019-03-20 00:33:47

阅读数 18

评论数 0

二分法查找及有重复值的二分法

前言 最近也在进行一些面试嘛,也见识到了很多各种各样的题目,其中就有一些和二分查找相关的. 二分查找,在有序的数组中快速找到目标值. 这个算法在上学的时候学过,之后就没有看过了,因为比较"简单"嘛~. 然而在面试过程中,我在二分查找及类似题目上栽了三次… 所以今...

2019-03-18 00:15:36

阅读数 60

评论数 0

Java中Executors中提供的4种线程池

前言 了解一下线程池的源码实现. ThreadPoolExecutor jdk中关于线程池一个比较核心的类是ThreadPoolExecutor,先来看一下他的实现. 构造方法 public ThreadPoolExecutor(int corePoolSize, ...

2019-03-08 00:11:34

阅读数 12

评论数 0

阿里开源的Java动态追踪工具Arthas使用

本文仅测试及学习Arthas命令的使用方式,对原理不做探讨,有兴趣的胖友可以戳下方美团博客的链接,讲解的十分不错. 相关链接 arthas中文官方网站 美团博客关于java动态追踪的一篇文章,讲解了部分原理,推荐阅读 官方的命令参考手册 介绍 arthas是什么?能做什么? 这里copy官方文档的...

2019-03-07 11:30:06

阅读数 99

评论数 0

OOM,StackOverFlow以及死锁的测试

这篇文章主要是记录自己做的一些小的测试.主要包括内存溢出,栈溢出,以及死锁问题. PS:文章中使用了Arthas工具,用来动态监控JVM的一些资源,非常好用,强烈安利一下. OOM OutOfMemory ,内存不够用了,一般是什么原因呢? 给应用程序分配的内存太小,只能通过增大内存来解决. ...

2019-03-07 00:12:17

阅读数 96

评论数 0

[随缘一题]实现交易计算盈利

来源: 根据先进先出原则实现交易. 例如: buy 100 share(s) at $20 each buy 20 share(s) at $24 each buy 200 share(s) at $36 each sell 150 share(s) at $30 each 得出计算结果 940...

2019-02-24 16:52:54

阅读数 36

评论数 0

[随缘一题]后缀表达式(逆波兰表达式)转换

来源: 维基百科-后缀表达式 目标 将中缀表达式转换为后缀表达式,比如((5+2) * (8-3))/4 转换为5 2 + 8 3 - * 4 /. 解题思路 将表达式的字符逐一处理,如果是数字(变量)则直接输出,如果是字符入栈,并按以下规则进行处理. +/-: 低优先级,所以将栈中的所有运算符出...

2019-02-24 16:50:20

阅读数 28

评论数 0

[随缘一题]回溯法解决N皇后问题

来源: 维基百科-N皇后问题 解题思路 采用回溯法,即逐一位置放置,然后放置下一行,如果下一行没有合法位置,则回溯到上一行,调整位置,直到得到所有值. 实现代码 /** * solve the N-Queen problem */ public class NQueen { //the ...

2019-02-24 16:46:22

阅读数 28

评论数 0

单例模式的N种写法

1.前言 写完这个题目,我感觉自己好像"孔乙己"啊,回字的四种写法要不要学啊~ 我们经常会用到单例模式,但是我对他一直没有一个统一的的认识,比如我清楚好多种单例的写法,但是每一种是怎么演化来的?具体解决了什么问题?这块就没有那么清晰了,因此此文对单例模式进行一个...

2019-01-31 14:22:30

阅读数 19

评论数 0

Java的序列化与反序列化

前言 Java的序列化与反序列化是Java中比较重要的一个知识,本文将总结一下,怎么使用序列化功能以及经常遇到的一些问题的解答. 什么是Java的序列化 JDK提供给我们的,可以将某一个对象转化为二进制字节流保存,并从字节流恢复对象的一种技术. 我们可以再网络传输对象,或者持久化对象时使用这项技术...

2019-01-29 21:16:30

阅读数 87

评论数 0

Java类加载的执行顺序

前言 那一年,呼延十又回想起被加载顺序支配的恐惧,笔试题上,好几个类,几个方法,几个输出语句,让你按照顺序写出输出.我真的是有一句… 但是呢,我们还是有了解一下的必要的,在编码过程中有许多的应用. 正文 经常用来比较顺序的,无非就是静态代码块,普通代码块,静态方法和普通方法. 这里直接说一下结论:...

2019-01-29 00:34:39

阅读数 31

评论数 0

入驻云栖社区

我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

2019-01-23 16:40:14

阅读数 38

评论数 0

使用自定义注解实现接口参数校验

1.前言 在接口的开发中,我们有时会想让某个接口只可以被特定的人(来源)请求,那么就需要在服务端对请求参数做校验. 这种情况我们可以使用interceptor来统一进行参数校验,但是如果很多个接口,有不同的的设定值,我们总不能写很多个interceptor,然后按照patn逐一添加吧? 面对这种情...

2019-01-21 00:10:59

阅读数 105

评论数 0

[随缘一题]-实现栈

来源: lintcode-495.实现栈 描述 实现一个栈,可以使用除了栈之外的数据结构 解题思路 这个题真的是…皮. 用ArrayList试试. import java.util.ArrayList; /** * created by huyanshi on 2019/1/17 */ pu...

2019-01-18 00:10:28

阅读数 23

评论数 0

TOP-K问题

前言 TOP-K问题是面试中的常见题型,具体表现为: 海量数据 求最大(最小)的K个值. 比如:给定1亿个乱序的整数,求其中最大的1000个 今天一步一步来分析这种题目的解决办法,以及用到的算法思想. 依赖 此文中会依赖到快速排序,堆排序等排序算法,以及数据结构堆. 如果你对上述两者的原理有所...

2019-01-16 23:25:49

阅读数 52

评论数 0

数据结构-堆

介绍 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波...

2019-01-16 01:49:44

阅读数 50

评论数 0

面试常用排序算法总结

layout: post category: [算法,排序,面试] tags: 算法 面试 排序 前言 面试的死亡高发区是什么?手写快排. 其他的排序算法也经常会问到,虽然在工作中,我们很少有需要自己手写排序算法的机会,但是这种入门级的算法却是证明我们能力的一种简单方法.因此要熟悉掌握. ...

2019-01-14 15:49:06

阅读数 70

评论数 0

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