首页
学习
活动
专区
工具
TVP
发布

屈定‘s Blog

专栏作者
63
文章
107954
阅读量
12
订阅数
工作--用户登录注册相关设计
最近做一个网站,网站需要用户登录注册,自然也就需要一套高扩展性的用户模块设计,该篇文章记录笔者遇到问题的解决方案,希望对你有帮助。
屈定
2018-09-27
1.6K0
并行设计模式--Future、Callback、Promise
在异步处理过程中需要大量使用Future,Callback,Promise,深入学习分析这几种异步编程的原理。
屈定
2018-09-27
4.6K0
Java--为什么需要主动关闭文件?
在Java编程中,对于一些文件的使用往往需要主动释放,比如InputStream,OutputStream,SocketChannel等等,那么有没有想过为什么要主动释放这些资源?难道GC回收时不会释放吗?本文主要是对这一系列问题分析解答。(本文所使用的环境默认为Linux)
屈定
2018-09-27
6.4K0
造轮子--文件分享工具
一般工作中会有我想把某个文件分享给别人,但是又不想直接发给对方,因此需要一个中转站,我把文件上传到这个中转站,然后中转站给我一个可以查看的url,我再把url发给要查看的人。 或者是想把一个文件分享给别人但是由于操作系统不同或者使用的文件编辑器不同而导致展示上有一些差异。
屈定
2018-09-27
6910
造轮子--Excel报表工具
由于公司内部之前对于excel封装操作并不是很方便,而且对于特殊的需求不是很容易满足,这个月的任务是迁移部分业务小报表顺便重构下,因此这里造个轮子,便于导入和导出对应的excel报表。
屈定
2018-09-27
1.1K0
工作--如何封装第三方服务?
业务开发中经常会对接某某第三方服务,因此会经常写一些SDK供服务使用,一种比较好的做法就是使用命令模式封装第三方服务,命令模式对于调用方来说简洁明了,也正是封装最根本的目的,便于调用方使用。
屈定
2018-09-27
1.5K2
并行设计模式--Thread Specific Storge模式
多线程的不安全在于共享了变量实例,因此Thread Specific Storge模式的思路是把变量与单一线程绑定,那么就不存在共享,自然就避免了加锁消耗以及其他高并发所需要的策略。 Thread Specific Storge一般有两种策略:1. ThreadLocal策略,也就是与当前线程实例绑定。 2. 借用模式对象池策略,由对象池进行管理,控制对象只能同一时间被一个单线程使用。
屈定
2018-09-27
5330
IDEA插件ASM Bytecode Outline
这款插件对于我学习JVM上的其他语言帮助非常大,很多高级语法糖反编译之后能够明白背后的原理,目前插件已经上传到JetBrains官方仓库,欢迎试用。 插件地址: https://plugins.jetbrains.com/plugin/11035-cfr-decompile
屈定
2018-09-27
7.8K1
(转)比AtomicLong还高效的LongAdder源码解析
接触到AtomicLong的原因是在看guava的LoadingCache相关代码时,关于LoadingCache,其实思路也非常简单清晰:用模板模式解决了缓存不命中时获取数据的逻辑,这个思路我早前也正好在项目中使用到。 言归正传,为什么说LongAdder引起了我的注意,原因有二:
屈定
2018-09-27
7680
并行设计模式--immutable模式
线程不安全的原因是共享了变量且对该共享变量的操作存在原子性、可见性等问题,因此一种解决思路就是构造不可变的对象,没有修改操作也就不存在并发竞争,自然也不需要额外的锁,同步等操作,这种设计叫做immutable object模式,本文主要理解这种模式,并学习如何实现一个较好的immutable类。
屈定
2018-09-27
8550
并行设计模式--生产者消费者
Producer-Consumer与其说是模式,更不如说是一种思想,这种思想在很多模式中都有相应的体现,比如线程池,对象池,MQ等等。 Producer-Consumer的本质是在生产者与消费者之间引入一个通道(Channel暂且理解为一个队列),该通道主要用于控制生产者与消费者的相对速率,尽可能的保证生产的Product尽快被消费,另一方面对二者进行解耦:生产者将生产的数据放入通道,消费者从相应的通道取出数据进行消费,生产者与消费者在各自的线程中,从而使双方的处理互相不影响。
屈定
2018-09-27
1.3K0
设计模式--动态代理的思考
在一些第三方框架中经常能看到动态代理的案例,尤其是RPC框架,ORM框架等,该篇将分析这些实现的原理,另外延伸在业务中的使用示例.
屈定
2018-09-27
3650
设计模式--模板方法模式的思考
模板方法同样也是一种很实用的方法,目的是提高代码复用,并且统一大体的算法流程,比如一个一台电脑主机,定义好放置CPU,硬盘,内存等空位后,就形成了一个骨架,那么这个就是模板,具体的CPU,内存,硬盘是什么牌子型号则不需要考虑,这些是具体到业务中的实现类所负责的事情.
屈定
2018-09-27
5440
设计模式--装饰者模式思考
装饰者模式实际上是一直提倡的组合代替继承的实践方式,个人认为要理解装饰者模式首先需要理解为什么需要组合代替继承,继承又是为什么让人深恶痛绝.
屈定
2018-09-27
8970
Java--死锁以及死锁的排查
清单一代码有点长,但是逻辑很简单,有两个临界区变量lockA,lockB,线程A先获取到lockA在获取lockB,线程B则与之相反顺序获取锁,那么就可能会有以下情况: 线程A获取到lockA之后发现lockB已被线程B获取,那么此时线程A进入blocked状态。同理线程B获取lockA时发现其被线程A获取,那么线程B也进入blocked状态,那么这就是死锁。
屈定
2018-09-27
1.8K0
Java--CAS操作分析
CAS操作在Java中的应用很广泛,比如ConcurrentHashMap,ReentrantLock等,其常被用来解决独占锁对线程阻塞而导致的性能低下问题,是高效并发必备的一种优化方法.
屈定
2018-09-27
1.8K0
设计模式--组合模式的思考
组合模式是一种抽象树形结构的模式,其在业务开发中也是一种很有用的设计模式,下面开始分析.
屈定
2018-09-27
9150
Java学习记录--委派模型与类加载器
最近在读许令波的深入分析Java Web技术内幕一书,对于学习Java以来一直有的几个疑惑得到了解答,遂记录下来.
屈定
2018-09-27
5800
设计模式--责任链模式的思考
责任链模式: 客户端发出的请求,客户端本身并不知道被哪一个对象处理,而直接扔给对象链,该请求在对象链中共享,由对象本身决定是否处理. 当请求被处理后该链终止.本质目的是把客户端请求与接收者解耦,但是解耦的太彻底了,只能让接收者一个个来看看是不是自己该处理的请求. 标准的责任链模式一个请求只被一个对象处理,一旦处理成功后则链终止,请求不再被继续传递.标准的责任链模式并不是很通用,这种一对一模式大多场景可以用策略模式来代替,只有在客户端并不清楚具体的执行者是哪个对象的时候,责任链才比较适合. 举个例子:你想在天朝办理一个证,但是你不知道去哪比较好,因此你的选择就是一条链路,先去A局,A局让你去B局,B局让你去C局等等,直到解决你的问题,当然也存在白跑一趟的结果.这也是标准责任链的缺点,产生了太多没必要的调用.标准的责任链实际上应用场景并不是很多,而常使用的是升级版的功能链.
屈定
2018-09-27
1.7K0
设计模式--观察者模式的思考
观察者模式在业务开发中相当有用的模式,本身挺简单的,理解了一番后就立即对目前手上的项目做了一些优化,该文记录一些自己的理解与应用,希望对你有启发.
屈定
2018-09-27
4970
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档