自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 《重构》笔记

两个类中相同的字段,函数签名中相同的参数(s),总是绑在一起出现的数据项。拼成对象(如果删掉众多数据项中的一个,其他数据项失去意义,那么就应该这么做)参数列表中多个相同基本类型的参数,如(operatorID int64, empID int64, objID int64),为这些基本类型再定义(封装)一个类型:type ObjID int64,参数列表变成 (operatorID int64...

2020-03-23 19:53:16 181

原创 总结2019

coding能力实现需求的一般思路先思考整个逻辑,后将逻辑拆解,分层设计(view/service/持久层)层与层之间交互的api定义,不要着急去实现某一小块逻辑用简洁的代码将多个api串起来,此时思考每个api定义是否合理,包括:是否每个api做到了单一指责原则对需求进行想象中可能的扩展,扩展后单个api是否能复用,即可扩展性api签名是否合理,函数名表达「做了什么事情」,参数...

2020-01-10 18:50:15 145

原创 熔断器学习

熔断器的作用在分布式系统中,请求下游系统时,如果下游系统响应慢,或者直接hang住请求,可能会拖垮上游系统,产生雪崩效应。因此希望在下游系统不稳定或者不可用时,不调用下游系统,直接报错返回熔断器的设计熔断器的三种状态closed,正常情况,熔断器关闭,请求放行open,异常情况,熔断器打开,拒绝所有请求halfopen,由closed到open状态后,不能一直拒绝所有的调用,得有一个...

2019-12-01 22:48:04 462

原创 orm框架学习

orm框架做了什么?对原生的db操作进行封装,提供简单一致的接口,将db中的关系型数据转换成程序中的对象,实现一个orm框架需要做什么?最简单的思路:func bizObj get(params)func result set(bizObj)以get方法为例,入参通常是一些查询参数,而出参是业务对象,这里需要考虑的问题:怎么让使用者提供bizObj与数据库表的映射关系?怎么让使...

2019-11-30 17:47:36 341

原创 jvm读书笔记

类加载与链接:1.类型的唯一性通过类的全限定名和类的定义类加载器来标识。每个类加载器维护一个独立的命名空间,只有在同一命名空间中的类才能相互调用。一般的jvm中共有三个类加载器:启动类加载器 扩展类加载器 系统类加载器。 自定义类由系统类加载器加载,ArrayList由启动类加载器加载,假如在自定义类中初次使用ArrayList,此时系统类加载器的命名空间中并没有ArrayList,因此需要借...

2019-11-30 17:13:19 168

原创 raft协议学习记录

a leader cannot immediately conclude that an entry from a previous term is committed once it is stored on a majority of servers.在b阶段,S1下线,S5上线并被选为leader,同时写入term3/index2,此时S1和S2中的entry仍然是term2/ind...

2019-11-10 10:00:08 143

原创 golang闭包学习记录

func TestClosure() { i:=1 go func() { i++ }() time.Sleep(time.Second) //如果这里不sleep,上面的协程还没来得及修改共享变量,下面输出1, fmt.Print(i)//输出2,说明闭包是对同一变量的引用,而不是copy}type field struct { name string}func (...

2019-05-12 17:36:52 148

原创 二叉树的前/中/后序非递归遍历和快排的非递归版本

无论是哪种顺序的遍历,都属于深度优先的遍历,因此都需要用到stack,基本的思路是控制push和pop的顺序,在每次push时访问push的节点,或是在每次pop时访问pop的节点。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; ...

2019-03-03 11:59:54 192

原创 从字节码层面看try-catch-finally的实现机制

考虑以下方法可能的执行流程 public static int A() { try {//代码块1 return B(); }catch (Exception e){//代码块2 C(); } finally {//代码块3 System.out.pr...

2019-01-29 15:55:17 664 2

原创 ClassNotFoundException和NoClassDefFoundError的区别与联系

从命名上来看,一个是exception而另一个是error,这意味着出现ClassNotFoundException时是可以进行异常处理来挽救程序的,但出现NoClassDefFoundError对jvm来说是一个致命的,不可恢复的错误,通常会导致程序crash。NoClassDefFoundError在jdk中的定义:/** * Thrown if the Java Virtual ...

2019-01-28 15:56:56 466

原创 linux下nohup和&的区别与联系

nohup和&都可以在执行命令时使用,用法为:[nohup] command [&]command &代表让command在以后台进程的方式运行。通过ssh登录远程服务器后,会得到一个终端,这个终端提供了标准输入以及输出。例如执行pwd命令得到当前工作目录,pwd即是标准输入,而终端上显示的工作目录即是标准输出。像pwd或者ps -ef这种直接在终端上执行的命令,产...

2019-01-27 20:00:37 310

原创 leetcode 126 Word Ladder II

题目概述:Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformation sequence(s) from beginWord to endWord, such that:Only one letter can be changed at a ti...

2019-01-19 21:23:53 148

原创 linux命令总结(思维导图)

2018-11-17 10:23:55 188

原创 Class类的getResource方法与getResourceAsStream方法

这两个方法,接收一个资源的路径参数name,返回一个代表资源的url或输入流。与linux中的文件定位类似,若name以“/”开头,此时将name视为绝对路径,后续classLoader会尝试以每一个classpath为根,以name为后续路径去寻找资源;若name不以“/”开头,则name为相对路径,相对于当前class对象对应类所在的包,在这个包路径的基础上以name为后续路径寻找资源。1...

2018-11-10 18:32:59 716

原创 newCachedThreadPool个人理解

先上源码 public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, ...

2018-10-19 21:31:28 8263

原创 阻塞队列源码阅读记录

本文结合生产者消费者模式对阻塞队列的主要方法实现进行说明。一、LinkedBlockingQueue该队列维护的临界区由链表实现,主要成员变量如下:capacity:临界区的上限count:原子整型,临界区的实际大小head:指向队首节点,控制出队过程tail:指向队尾节点,控制入队过程notEmpty:非空等待条件,从临界区中取资源时,若无资源则在该条件上等待...

2018-10-17 22:12:45 136

原创 AQS源码阅读记录

AQS定义两种资源共享方式:Exclusive(独占,只有一个线程能执行,如ReentrantLock)和Share(共享,多个线程可同时执行,如Semaphore/CountDownLatch)使用acquire/release(模板)方法对外提供功能。使用一个双向队列和指向队列两端的head/tail指针来实现线程的有序排队,ps:head指针指向的第一个node为傀儡node,不包含真实...

2018-10-06 21:40:55 117

原创 try_files的个人理解

以下述配置文件为例: location ~ \.php$ { root html; try_files $uri $uri/ =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; ...

2018-07-18 21:42:10 8473

原创 读书体会

说说读书的体会。最近主要在看关于linux以及tomcat的几本书,都是一些进阶性的书籍,因此看的时候还是觉得蛮吃力的,很多章节都要来来回回的看好几遍,甚至结合其他章节才能看懂大致的意思。在看完每一章之后去回顾这一章的内容时,总会有“咦?这一章讲了什么来着?”这样的想法,然后再重新将这一章翻阅一遍,才能大致记得这一章的主要内容,不过这也持续不了太久,可能过了几天之后,一章里面能停留在我脑海里的就只...

2018-04-11 15:39:00 209

原创 leetcode 84 Largest Rectangle in Histogram (单调栈)

上题目题目大意为:给一个数组代表一个柱状图,数组中每一个元素依次代表柱状图中每个“柱”的高,求这个柱状图能包含的最大矩形面积。思考:最终矩形的高一定等于某个“柱”的高,宽为这个“柱”左右能延伸到的最大距离之和(直到遇见某个“柱”的高低于当前高)。暴力就是对于每一个“柱”,向左和向右延伸到极限得出宽,再乘以高,复杂度是n的平方。可以用单调栈(栈中的元素单调递增)对这个过程进行简化,栈...

2018-03-23 16:04:16 454

原创 Apriori算法以及MS-Apriori算法中生成频繁项目集步骤的个人理解

    Apriori算法以及MS-Apriori算法均采用逐级搜索的方法来生成k阶频繁项目集,k阶频繁项目集仅由k-1阶频繁项目集两两合并而来。我要说明的是:为什么k-1阶频繁项目集两两合并的结果就一定是k阶频繁项目集的超集(算法后续步骤还会对这个超集进行剪枝)    首先对于Apriori算法,任意一个项集都满足向下封闭属性,若该项目是频繁项目集,那么他的任何子集都是频繁项目集;反之若该项...

2018-03-15 10:55:53 3719

原创 EasyUI Datagrid 客户端分页详解

在网上能找到的客户端分页demo基本都是同一段代码,但没有注释,下面是我根据自己的理解和调试分析写上代码以及注释,希望能帮助大家理解EasyUI Datagrid客户端分页的执行过程

2017-12-12 10:06:54 1988

原创 自定义HttpMessageConverter处理多个不同数组形式的JSON数据

如何在springmvc的HttpMessageConverter转换器中获取泛型参数的具体类型

2017-11-01 20:31:47 1407

原创 struts2:Infinite recursion detected

这个问题是struts2的拦截器循环调用自身的 intercept(ActionInvocation invocation)方法所导致的。struts.xml文件中部分配置如下:<!-- 定义自己的拦截器 --> <interceptors> <interceptor name="managerVerification" class="interceptor.

2017-09-01 22:11:50 613

原创 hibernate实体类设计体会

hibernate实体类设计体会以博客实体类和用户实体类为例,他们之间是多对多的关系,即一个博客可以被多个用户收藏,一个用户也可以收藏多个博客,现在考虑三个问题:1.双方是否持有对方集合的引用 2.当双方均持有对方集合的引用时,哪一方拥有对于联系的维护权限3.当双方均持有对方集合的引用时,如何设置级联关系首先第一个问题,双方是否持有对方的引用。我认为这取决于在传递数据(一方的pojo对象)时是

2017-08-01 17:18:42 435

原创 Hibernate注解之@ManyToMany

当两个类(a,b)使用@ManyToMany注解时,会产生一个中间表a_b,该中间表表示两个类的关联关系,此时有两种情况:只有一端(类)维护该关联关系,两端(类)均可维护该关联关系。现有一新闻类Label和一标签类News,其为多对多的关系,使用@ManyToMany注解情况一:只有一端(类)维护该关联关系若仅News端可维护该关联关系,则意为只能通过向News类对象的集合属性labels中添加La

2017-07-22 15:39:01 3752

原创 关于java字节流的一点笔记

关于java文件IO流以及int与byte之间转型的一点笔记

2017-07-05 21:06:02 325 2

空空如也

空空如也

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

TA关注的人

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