- 博客(40)
- 资源 (8)
- 收藏
- 关注
原创 网络知识汇总
作为开发人员,对基础网络知识的了解也是非常重要的,特别是tcp相关的内容。本篇主要进行一些学习资源的汇总,便于学习。协议森林:出处: http://www.cnblogs.com/vamei 评价: 主要写网络的基础知识,写的主要生动,好理解内容导航:邮差与邮局 (网络协议概观)小喇叭开始广播 (以太网与WiFi协议)IP接力赛 (IP, ARP, RIP和BGP协议)地址耗尽危机 (IPv4与...
2018-06-24 08:24:14 2573
原创 利用redis-rdb-tools分析redis内存
前言我们经常会利用redis作为缓存的工具,然而为了使redis更高效,我们一般不会开启VM模式,但运行久了之后,随着redis占用内存的不断膨胀,我们常需分析redis内存现状,哪些key占用了很多的内存,有没有没用的key没有清除掉。利用redis-rdb-tools和sqlite3,我们可以分析redis的内存情况.环境本示例使用Ubuntu 系统。实验流程1. 利用redis的持久化机制...
2018-02-14 13:51:29 3706
原创 sharding-jdbc事务解读
序言sharding-jdbc在分库分表方面提供了很大的便利性,在使用DB的时候,通常都会涉及到事务这个概念,而在分库分表的环境上再加上事务,就会使事情变得复杂起来。本章试图剖析sharding-jdbc在事务方面的解决思路。
2017-10-24 22:52:40 17906 1
原创 sharding-jdbc读写分离原理解读
很多时候,为了应付DB的高并发读写,我们会采用读写分离技术。读写分离指的是利用数据库主从技术,把数据复制到多个节点中,以支持高并发的读,而写只在master服务器上。DB的主从技术只负责对数据进行复制和同步,而读写分离技术需要业务应用自身去实现。sharding-jdbc通过简单的配置,可以方便的实现读写分离技术。本篇主要介绍其实现的原理。
2017-10-07 16:29:56 18194 2
原创 sharding-jdbc分库分表规则(2)-多表查询
前上一篇介绍了sharding-jdbc单表的基本查询逻辑,本篇介绍一下多表的查询,包括多表查询的BindingTable机制。
2017-09-27 00:11:05 23113 4
原创 sharding-jdbc分库分表规则(1)-单表查询
前言当数据量到达一定数量级的时候,一般都会考虑分库分表。sharding-jdbc是一个开源的客户端分库分表基础类库,以一个jar包的形式提供,基于原生的JDBC驱动进行增强,基本能够无缝整合旧代码,非常的便捷。本小节以一个最简单的单表查询浅析概要流程。
2017-09-17 09:50:24 13047
原创 http长连接总结
序言经常有业务需要在两个web客户端进行通信,比如,移动端两人对战游戏,针对此类场景最常使用的技术便是普通的ajax,两个客户端不断发ajax请求到服务端询问另外一方的信息,然后进行处理。如果回到多年前的聊天室场景,那就是N个客户端需要进行通讯了。本篇主要总结目前主流的几种实现此类需求的技术方案。
2017-07-23 23:56:35 918
原创 HashMap知识要点
序言HashMap是java中非常实用的一种数据存储结构,它涉及到的知识点比较多,本篇主要对其要点进行一些总结。本文使用的jdk版本为1.8。
2017-07-16 21:19:05 642
原创 nginx基础配置篇
nginx是用得非常广泛的反向代理服务器,即使不是专业的运营人员,在平时开发的时候,也经常需要用到一些静态资源访问,路径映射等。利用nginx,可以很容易做到这一些,可谓开发利器。本篇记录nginx一些基本用法,包括一些常用的功能记录,算是一次小总结,便于日后回顾学习。
2017-07-09 17:29:10 668
原创 WebGL学习系列-片元着色器简介
前言到目前为止,我们绘制过点、三角形、矩形等,但使用的都是单色系。之前曾经说过着色器的概念,着色器分为顶点着色器和片元着色器,我们一直在使用顶点着色器,而对片元着色器基本没有提及过,本小节将展开对片元着色器的简单介绍。彩色的点之前提到过,顶点着色器决定点的大小、位置和颜色,而片元着色器是用于给像素着色的,初步看,片元着色器的任务好像给顶点着色器完成了,但实际上不然,顶点着色器只能决定点的颜色,如果绘
2017-03-01 22:18:01 5740 1
原创 WebGL学习系列-基础矩阵变换
在图形学中,特别是涉及到3D的时候,矩阵变换起着非常重要的作用。在实际使用的过程当中,通常每一帧画面可能都会涉及到成千上万个顶点的坐标变换,如果没有矩阵变换计算,一个是计算复杂,一个是难以达到我们想要的计算效率。本小节将介绍通过矩阵计算来实现基本的图形变换。
2017-02-26 23:13:33 7469
原创 WebGL学习系列-基本图形变换
经过前面的学习,我们已经可以绘制基本的图形了。本小节将介绍基本的图形变换,介绍在WebGL中,如何对基本的图形进行平移、旋转和缩放。
2017-02-22 23:08:46 2102
原创 WebGL学习系列-多边形绘制原理
前面学习了通过缓冲区对象来绘制多个点的原理,在实际的3D世界里,有好多复杂的模型,但细化分解后又是由一个个基础的几何图形构成的,掌握了基础图形的绘制才能够理解更加复杂的模型。本节将会讲解三角形,矩形以及利用三角函数绘制圆。
2017-02-20 22:22:56 4253
原创 WebGL学习系列-使用缓冲区对象画多个点
一般而言,我们需要绘制的点的数量非常的多,所以不可能像第一个程序一样一个点一个点绘制,WebGL提供了缓冲区对象,用于处理绘制多个点的数据问题。
2017-02-19 10:15:34 3035
原创 WebGL学习系列-第一个程序
本篇学习第一个WebGL程序——画一个点,通过此程序来理解WebGL程序的结构,这是所有后续知识的开端。画一个点先看一下效果图: 为了画这么一个点,在WebGL可不太简单,它会涉及到WebGL上下文以及着色器的概念,不要着急,咱们慢慢来理解。WebGL上下文学过Canvas的同学应该都知道,想要在浏览器中使用Canvas画图,需要先取得一个上下文,就像创建一个场景一样,有了场景才可以绘制。在W
2017-02-18 14:21:36 1364
原创 WebGL学习系列-目录
前言都说时间转眼即逝,距离最后一篇博文已经几个月了,我们总是在叹息时间飞逝,最后回眸的时候,却又觉得生活少了些什么。作为一名后端开发人员,学习WebGL之路是快乐并痛苦着的,坦诚的讲,我觉得一般的后端开发人员空间思维都没有专业前端同学的好,特别是视觉感。不管怎样,作为2017对自己的第一份礼物,还是希望自己用心把这件事做好,既然学了,那就好好待人家吧。说起学习WebGL,还是缘于公司的情况。笔者所在
2017-02-15 23:07:32 1098
原创 java线程池系列(3)-ScheduledThreadPoolExecutor
前言定时执行任务是非常常见的需求,比如我们通常会使用spring或者quartz来实现定时任务,JDK本身也提供了多线程并发执行定时任务的框架,即ScheduledThreadPoolExecutor,它是基于优先级队列和ThreadPoolExecutor线程池技术来实现的,本篇介绍其实现的原理。
2016-10-07 22:42:06 1083
原创 java线程池系列(2)-FutureTask实现原理
线程池可以并发执行多个任务,有些时候,我们可能想要跟踪任务的执行结果,甚至在一定时间内,如果任务没有执行完成,我们可能还想要取消任务的执行,为了支持这一特性,ThreadPoolExecutor提供了 FutureTask 用于追踪任务的执行和取消。
2016-10-03 15:42:03 1461
原创 java线程池系列(1)-ThreadPoolExecutor实现原理
前言做java开发的,一般都避免不了要面对java线程池技术,像tomcat之类的容器天然就支持多线程。即使是做偏后端技术,如处理一些消息,执行一些计算任务,也经常需要用到线程池技术。鉴于线程池技术的重要性,接下来会分多篇介绍java中提供的ThreadPoolExecutor线程池实现的底层机制。
2016-10-01 20:18:50 1824
原创 java并发之SynchronousQueue实现原理
前言SynchronousQueue是一个比较特别的队列,由于在线程池方面有所应用,为了更好的理解线程池的实现原理,笔者花了些时间学习了一下该队列源码(JDK1.8),此队列源码中充斥着大量的CAS语句,理解起来是有些难度的,为了方便日后回顾,本篇文章会以简洁的图形化方式展示该队列底层的实现原理。SynchronousQueue简单使用经典的生产者-消费者模式,操作流程是这样的:有多个生产者,可以并
2016-09-17 10:54:59 63162 29
原创 java并发等待条件的实现原理(Condition)
前面介绍了排它锁,共享锁的实现机制,本篇继续学习AQS中的另外一个内容-Condition。本篇从一个生产-消费例子出发,进而揭示借用AQS,是如何实现并发等待条件的。
2016-09-11 11:13:43 4542 6
原创 轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理
前言前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进一步,学习非常有用的读写锁。鉴于读写锁比其他的锁要复杂,不想堆一大波的文字,本篇会试图图解式说明,把读写锁的机制用另外一种方式阐述。
2016-09-04 22:08:32 38351 34
原创 java共享锁实现原理及CountDownLatch解析
前言前面介绍了ReentrantLock,又叫排他锁,本篇主要通过CountDownLatch的学习来了解java并发包中是如何实现共享锁的。
2016-08-28 23:44:00 30354 8
原创 轻松学习java可重入锁(ReentrantLock)的实现原理
前言相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣了解,今天我将带领你轻松的学习下java中非常重要,也非常基础的可重入锁-ReentrantLock的实现机制。
2016-08-28 14:17:46 86380 65
原创 聊聊cpu内存一致性
作为一名java攻城狮,想要深入了解java这门语言,免不了跟多线程打交道,继而会跟java内存模型打交道。内存模型是一个比较难以理解的东西,而这一切都缘于更加底层的硬件,cpu工作方式的复杂度引起的。本文试图举例说明cpu在多线程下工作的不确定性因素,以及cpu为此提供了什么利器来解决这个问题,这也是跟java中多线程可见性息息相关的。
2016-08-26 00:19:26 3734 3
原创 一个多层级节点用户树的设计构思
由于近期一个项目要开发一个多层级用户体系,并且还要支持部分链条的可移动性,经过初步构思,已经有了一个初步的思路,今天在这里简单分享一下。
2016-07-24 01:05:14 3839
原创 grunt和seajs的打包初体验
seajs作为前端模块加载器,在依赖管理方面是挺方便的,用起来也还算比较简单。不过,由于模块化使得模块划分比较细,所以加载一个页面将会发起多次http请求,这在生产环境中是不可接受的。一般而言,生产环境下,资源会放在CDN,而资源本身,通常会进行合并及压缩。 grunt 是 js 的一个著名的打包工具,可以作为node的一个包,使用npm安装使用。为了进一步探索seajs在真实场景下可能
2015-10-13 23:49:38 1747
原创 seajs3.0模块加载原理及源码注释
由于前端业务的复杂,导致前端开发的复杂度日益递增,所以有必要对前端进行模块化划分并进行模块的依赖管理。现在前端模块化主要有COMMONJS、AMD、CMD等标准。目前国内的 seajs 还算比较流行,它是基于CMD标准的,鉴于学习的目的,花了些时间研究了下seajs3.0 的源码,这里主要分享一下 模块依赖加载的原理。 同时附上一份简单的源码注解。(作者水平有限,时间也有限,仅供参考,有任何说
2015-10-06 18:18:12 1953
原创 单页面hash跳转简要记录
现在有越来越多的需求,需要在一个复杂页面(有很多ajax异步操作,使用 js 来控制页面的展示)实现导航,书签之类的功能,同时支持浏览器向前向后浏览。由于兼容性问题,目前有三种实现的方案。这里作一下简要记录:1. pushStatehtml5 提供了新的 history api,可以让开发者动态修改浏览器的url,而不会引起整个页面的重绘,给用户带来更好的体验,api 定义如下:
2015-09-05 21:44:35 4682
原创 jQuery1.7系列四: 事件
声明:写博客,是对自身知识的一种总结,也是一种分享,但由于作者本人水平有限,难免会有一些地方说得不对,还请大家友善 指出,或致电:tianzhen.chen0509@gmail.com 关注:国内开源jQuery-UI组件库:Operamasks-UI jQuery版本:v1.7.1jQuery1.7系列四: 事件一. 有感而发
2012-03-19 20:57:55 1464
原创 jQuery1.7系列三: jQuery延迟列表(Deferred)
声明:写博客,是对自身知识的一种总结,也是一种分享,但由于作者本人水平有限,难免会有一些地方说得不对,还请大家友善 指出,或致电:tianzhen.chen0509@gmail.com 关注:国内开源jQuery-UI组件库:Operamasks-UI jQuery版本:v1.7.1 jQuery1.7系列三
2012-03-18 11:31:08 2311
原创 jQuery1.7系列二: jQuery的缓存机制
声明:写博客,是对自身知识的一种总结,也是一种分享,但由于作者本人水平有限,难免会有一些地方说得不对,还请大家友善 指出,或致电:tianzhen.chen0509@gmail.com 关注:国内开源jQuery-UI组件库:Operamasks-UI jQuery版本:v1.7.1jQuery1.7系列二: jQuery的缓存机制一
2012-03-11 19:38:50 2194
原创 jQuery1.7系列一: jQuery 对象的实质
声明:写博客,是对自身知识的一种总结,也是一种分享,但由于作者本人水平有限,难免会有一些地方说得不对,还请大家友善指出,或致电:tianzhen.chen0509@gmail.com 关注:国内开源jQuery-UI组件库:Operamasks-UI jQuery版本:v1.7.1jQuery1.7系列一: jQuery 对象的实质一
2012-03-10 15:35:21 4479 1
原创 javascript原型的那些事儿
声明: 发帖是对自己学过知识的一个总结,也是分享知识成果的一种有效途径。由于个人经验有限,难免会有一些错误的地方,还请大家批评,指正。 也可以致电 tianzhen.chen0509@gmail.com 告诉我错误,在此表示感激。 若需转载,请注明出处。一.有感而发 Javascript(以下简称js)是每个web开发人
2011-10-23 16:52:23 830 1
原创 不要浮躁,从现在做起
已经毕业几个月了,再来看看08年开的这个号,感觉心有些冷。对于学技术的自己,虽然一路走来,在java的道路上,也接触了一些东西,多少也有些感触和心得,但一切都被时光抹平,没有一点的累积,没有一点的遗迹。感觉心理时不时会有些浮躁,有时浮躁自己除了 上班还要多干些什么,学些什么技术好
2011-10-16 21:34:35 804 5
原创 集合类的要点总结
<br />集合类的要点总结<br />1. Collections.addAll VS Collection.addAll<br />Collection.addAll只能添加一个Collection类型的对象,而Collections.addAll支持可变参数列表。<br />publicstaticvoid main(String[] args) {<br /> List<String> list1 = new ArrayList<String>();<br />
2010-07-25 11:20:00 734
原创 javascript事件学习小结
再次学习了一下js的事件,把一些值得记住的要点写下来,方便日后查询。 首先要说一下typeof这个关键词,此次才发现它是多么的有用。它主要用于测试一个变量的类型,比如是string,number,function等等,但我说它好用还有另外的方面,就是它能够测试一个对象,一个对象的变量等是否存在,如果不存在则会返回"undefined",则可以让我们处理一些浏览
2010-03-27 11:34:00 705 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人