摘要: 最小栈可以用数组实现, 如果是java, 可以用remove方法删除元素, 同时用另一个数组去维护一个递减的栈即可. 最小栈也可以只是用一个数组(或者build in的栈)来实现, 思路是, 维护一个min变量 = 备注: 遇到空间优化的问题时, 比如从一维数组优化, 通常就是创建变量. 不断更新该 阅读全文
posted @ 2020-04-12 10:21 JinleiZhang 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题目链接: https://leetcode.com/contest/weekly contest 165/problems/palindrome partitioning iii/ 解题思路: 题目要求是求出最小的值, 潜意识里最小,最大,最多这种最值问题大概率会和动态规划联系在一起. 因此直接建 阅读全文
posted @ 2019-12-02 05:55 JinleiZhang 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 线程池默认创建的是用户态线程, 使用完需要手动调用shutdown关闭, 否则用户态线程会阻塞JVM退出. 程序会一直挂在那里. 如果既不想阻塞JVM, 又不想调用shutdown, 那可以把线程设置为demon, 当JVM退出时,发现没有用户态线程存在了, 就会进入JVM关闭流程. 但是这样用并不 阅读全文
posted @ 2019-11-16 00:37 JinleiZhang 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 代码好坏体现了个人以及公司对代码的准入标准, 标准越高, 对个人能力的提升也越大 这篇文章主要介绍自己在编写代码时想到的问题, 供大家交流参考 1. 代码最终要给其它成员review, 所以commit时, 请把属于同一类的改动, 放到同一个commit下, 把不相关的改动, 放到别的commit下 阅读全文
posted @ 2019-10-23 01:58 JinleiZhang 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 更新实例时,使用新建的方式, 不要在原地修改 以前听过phoenix server, 即需要更新某个server时, 不要改动原先实例, 而是通过新建一个实例的方式, 这样每个实例自从创建后,就不会更改了, 只需要把更新版本化, 维护起来会非常方便. 不要在一个类里产生多个对象,应该提供多个类,每个 阅读全文
posted @ 2019-10-17 01:26 JinleiZhang 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 我特别喜欢看房屋改造的节目, 很佩服设计师把普通的有缺陷的房屋, 改造的井井有条. 这常常让我想到设计系统, 无论是直接面向客户, 还是内部系统. 系统设计和房屋改造应该有很多 相通的地方可以借鉴. 1) 首先就是功能划分很清晰并且合理. 重构, 去除不合理的东西,引入合理的东西,加强薄弱的地方 2 阅读全文
posted @ 2019-10-15 23:02 JinleiZhang 阅读(268) 评论(0) 推荐(0) 编辑
摘要: Java中异常分为checked 和 unchecked 两种. 首先, 什么时候使用checked,什么时候用unchecked? 1) checked本意是要求调用方处理这个异常, unchecked 本意就是这种异常调用方不需要处理, 如果出现了异常, 调用方不处理的话, 最终会在JVM中的某 阅读全文
posted @ 2019-10-15 22:50 JinleiZhang 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 持续更新中... 要解决的问题: 当别人问你,某个架构设计的优缺点, 希望你针对缺点如何优化时, 我们应该怎么分析呢? 我只谈分析思路, 并且只分析如何找出缺点 规避完缺点, 剩下的都是优点??? 1.请先搞清楚整个架构包括哪些部分 2.搞清楚各个部分是做什么的, 搞清楚了之后, 我们就知道有没有模 阅读全文
posted @ 2019-09-19 23:43 JinleiZhang 阅读(343) 评论(0) 推荐(0) 编辑
摘要: Graceful shutdown how Jetty does? it adds a Shutdown Hook to JVM and JVM will execute run function of that hook before exit. how dropwizard does? it a 阅读全文
posted @ 2019-09-05 21:52 JinleiZhang 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 公共部分 过渡部分 私有部分 如果没有办法划分出明确的区域, 则可以使用过渡区来 放置这些东西, 如果说将来发现 放错了地方,可以从过渡区里把它拿走 私有部分应该是各个类自己特殊的 怎么判断要构造哪些类,他们应该放在哪里 首先需要明白写这个类是为了做什么 为了实现功能 这个功能是业务功能还是基础设施 阅读全文
posted @ 2019-05-15 23:49 JinleiZhang 阅读(308) 评论(0) 推荐(0) 编辑