计算机科学中抽象的好处与问题—伪共享等实例分析

2018-06-04
阅读 3 分钟
2.8k
David John Wheeler有一句名言“计算机科学中的任何问题都可以通过加上一层间接层来解决”,一层不够就再加一层。后半句是我加的 (* ̄︶ ̄) ,虽然有点玩笑的意思,但是也的确能说明一些问题。计算机科学的确是靠着一层又一层的抽象与封装解决了巨量的问题。

为什么要指令重排序?

2018-05-28
阅读 5 分钟
9.1k
我们知道java在运行的时候有两个地方可能用到重排序,一个是编译器编译的的时候,一个是处理器运行的时候。那么我们就应该问问为啥要用指令重排序呢?

实现高可用的两种方案与实战

2018-05-17
阅读 6 分钟
5.8k
把debian1作为调度服务器承担请求分发的任务,即用户访问的是debian1,然后debain1把请求按照一定的策略发送给应用服务器:debian2或者debain3,甚至更多的debain4、5、6......

基于一致性哈希的分布式内存键值存储——CHKV

2018-05-11
阅读 6 分钟
3.4k
NameNode : 维护 DataNode节点 列表,用心跳检测 DataNode(一般被动,被动失效时主动询问三次),节点增减等系统信息变化时调整数据并通知 Client;

后端好书阅读与推荐(续五)

2018-05-04
阅读 13 分钟
7.2k
通过前面这本书我们已经知道redis怎么用比较好了,现在我们来看看 Redis 的实现原理。这本书是作者自己看着源码写出来的,不得不佩服作者的智慧与毅力。这本书基于redis3.0,此刻redis最新版是4.0.9,我们看书的时候可以自己去看看源码,看看redis有啥变化没,源码在此。

分布式一致性机制整理

2018-04-20
阅读 5 分钟
11k
分布式中一致性是非常重要的,分为弱一致性和强一致性。现在主流的一致性协议一般都选择的是弱一致性的特殊版本:最终一致性。下面就从分布式系统的基本原则讲起,再整理一些遵循这些原则的协议或者机制,争取通俗易懂。但是要真正实施起来把这些协议落地,可不是一片文章能说清楚的,有太多的细节,要自己去看论文呐(...

源码分析JDK8之AbstractQueuedSynchronizer

2018-04-07
阅读 12 分钟
3.7k
源码分析我认为主要有两个作用:满足好奇心,我想每一个有追求的人都不会满足于仅仅做一个API Caller实现功能就好,我们也想知道它到底是怎么实现的;借鉴与升华,当我们明白了一个类的设计原理,在一定的情境下我们可以借鉴其设计哲学,甚至针对我们自己特殊的业务场景对其进行改良与优化。

MySQL InnoDB 锁——官方文档

2018-03-29
阅读 5 分钟
15.4k
个人认为学习MySQL最好的书面材料莫过于官方文档了,它不仅详细介绍了方方面面的使用方法,还讲解了原理,让你知其然并且知其所以然。这里就把官网的InnoDB Locking这一小节翻译过来,抛砖引玉。

一文理清21种设计模式:用实例分析和对比

2018-03-13
阅读 11 分钟
7k
设计模式无论是对于最底层的的编码实现还是较高层的架构设计都有着重要的指导作用。所谓光说不练假把式,今天我就把项目中常见的应用场景涉及到的主要设计模式及其相关设计模式总结一下,用实例分析和对比的方式在一片文章中就把最常见的21种设计模式梳理清楚。

后端好书阅读与推荐(续四)

2018-03-05
阅读 14 分钟
9.5k
后端好书阅读与推荐系列文章:后端好书阅读与推荐后端好书阅读与推荐(续)后端好书阅读与推荐(续二)后端好书阅读与推荐(续三)后端好书阅读与推荐(续四) 这里依然记录一下每本书的亮点与自己读书心得和体会,分享并求拍砖。 Docker生产环境实践指南 Docker生产环境实践指南 (豆瓣) [链接] 前面docker的基本概念和...

数据结构与算法——常用高级数据结构及其Java实现

2018-03-04
阅读 15 分钟
14.6k
前文 数据结构与算法——常用数据结构及其Java实现 总结了基本的数据结构,类似的,本文准备总结一下一些常见的高级的数据结构及其常见算法和对应的Java实现以及应用场景,务求理论与实践一步到位。

数据结构与算法——常用排序算法及其Java实现

2018-01-24
阅读 9 分钟
5k
原理:依次比较相邻的两个数,将小数放在前面(左边),大数放在后面(右边),就像冒泡一样具体操作:第一趟,首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,这样第一趟下来最大的数就在最后一位了。然后还是...

后端好书阅读与推荐(续三)

2017-12-21
阅读 12 分钟
5.2k
这本书是国产书籍里面质量较高的一本了(很多国产书都是东拼西凑或者敷衍了事),作者从实际出发,结合理论,讲的很有逻辑,而且还有很多形象的手绘,和那本Java并发编程实战相比更新一些,读起来也更容易一些。

GitLab+Jenkins+Rsync+PM2实现Node项目的持续集成与自动部署

2017-12-20
阅读 7 分钟
12.4k
最原始的软件开发流程是,在本地搭建好环境,进行开发测试,然后去服务器上搭建环境,手动上传代码,运行测试,然后启动服务。实际上,近些年来出现了很多的工具,使得这些步骤可以自动化,大大降低人工出错的概率,提高生产效率。下面,我就把GitLab+Jenkins+Rsync+PM2实现的Node项目的持续集成以及自动部署的实验过程...

后端好书阅读与推荐(续二)

2017-11-09
阅读 11 分钟
5.4k
后端好书阅读与推荐系列文章:后端好书阅读与推荐后端好书阅读与推荐(续)后端好书阅读与推荐(续二) 几个月又过去了,又读了几本书,同时为了深切体会到某些书里面的要点还专门做了一个小项目,这里就把读书与小项目过程中的一些心得体会记录一下。 Effective Java Effective java 中文版(第2版) (豆瓣) [链接] 本...

Spring体系常用项目一览

2017-09-24
阅读 8 分钟
14.8k
如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪。

后端好书阅读与推荐(续)

2017-09-08
阅读 13 分钟
7.5k
续前文 后端好书阅读与推荐 - Mageek`s Wonderland ,几十天过去了,又看了两本好书(还有以前看过的书),这里依然把它们总结归纳一下,加入一些自己的看法、有用的链接和可能的延伸阅读,并推荐给需要的同学。

后端好书阅读与推荐

2017-08-03
阅读 7 分钟
5.4k
这一两年来养成了买书看书的习惯,陆陆续续也买了几十本书了,但是一直没有养成一个天天看书的习惯。今天突然想要做个决定:每天至少花1-3小时用来看书。这里我准备把这两年来看的书挑出好的做一个简要总结、即将要看的书做一个计划,以便整理成书单留给自己学习,也顺便推荐给需要的童鞋。

Nodejs中的一些小trick

2017-07-04
阅读 6 分钟
6.8k
之前常常因为不注意,习惯用写PHP或者Java的方式来写nodejs,产生了了一些错误,这里总结一些小小的trick,以便于展示nodejs的不同,和平时需要注意的地方。

数据结构与算法——常用数据结构及其Java实现

2017-06-17
阅读 11 分钟
26.9k
仿佛一下子,2017年就快过去一半了,研一马上就要成为过去式了,我打算抓住研一的尾巴,好好梳理一下数据结构与算法,毕竟这些基础知识是很重要的嘛。所以准备在这里搞一个系列的文章,以期透彻。

Java8解决了什么?

2017-06-07
阅读 3 分钟
3.8k
在学习面向对象时,许多人都会用Java来举例子,但是其实Java并非纯正的面向对象语言,最明显的就是:int,double等基本类型不是对象。自从java8出来过后,引入了流,函数式编程,就更不是在向着面向对象发展了。有人可能会感到诧异,为啥越来越偏离我们遵循了这么久的面向对象设计模式?

Java String 探索

2017-05-09
阅读 5 分钟
3.5k
String和StringBuilder:StringBuilder是可变的,也就是说用StringBuilder创建的字符串你可以随时改变它。StringBuilder和StringBuffer:StringBuffer是同步的,它是线程安全(thread-safe)的,但效率要比StringBuilder差得多。

Java多线程之内置锁与显式锁

2017-05-02
阅读 8 分钟
9.8k
Java中具有通过Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是互有补充,今天就来做一个总结。

Java多线程之volatile

2017-04-18
阅读 5 分钟
2.9k
CPU会把一些经常使用的数据缓存在cache中,避免每次都去访问较慢的memory。在单线程环境下,如果一个变量的修改都在cache中,自然不会有什么问题,可是在多线程环境中就可能是下面这个图的示意图(单核另当别论)

AOP,MVC——Spring的学习以及对CodeIgniter的反思

2017-03-18
阅读 2 分钟
4.3k
最近在学习Spring,深深地感到这个框架之所以这么流行不是没有道理的,我之前一直用的是PHP,框架用的就是codeigniter,由于其简洁轻量的特性很是让人喜爱,可是也有很多问题,然而很多问题Spring都是解决了的,比如PHP项目中CodeIgniter使用的一些建议,这里提到的登录逻辑的实现,就是具有Spring 面向切面编程 的雏形...

NodeJs项目中的一些要点记录

2016-10-08
阅读 4 分钟
2.9k
一般我们调试Js项目都是通过Alert()(前端)或者 Console.log()(后端),这总是显得不够灵活。即使是NodeJs内置的debugger也不够友好。这里推荐一款调试工具Node Inspector。这个工具结合Chrome就能达到Eclipse的debug模式的强大效果。

爬虫性能:NodeJs VS Python

2016-08-28
阅读 14 分钟
15k
早就听说Nodejs的异步策略是多么的好,I/O是多么的牛逼......反正就是各种好。今天我就准备给nodejs和python来做个比较。能体现异步策略和I/O优势的项目,我觉得莫过于爬虫了。那么就以一个爬虫项目来一较高下吧。

在tensorflow上进行机器学习的“Hello World”:MNIST 手写识别

2016-08-22
阅读 16 分钟
17.1k
进入tfgpu虚拟环境后,首先进入目录:/anaconda2/envs/tfgpu/lib/python2.7/site-packages/tensorflow/examples/tutorials/mnist/,然后进入IPython交互终端。

TensorFlow 安装笔记

2016-08-17
阅读 26 分钟
34.5k
最近上了几门深度学习的公开课,还是觉得不过瘾,总觉得要搞一个框架来试试。那么caffe,tensorflow,torch等等选哪一个呢?经过一番比较我还是选择tensorflow,首先他是一个更通用的框架,而且对python支持最好,其次还有google支持,也是开源的,相信在未来无论是学术界还是工业界,他都会流行起来的。

UFLDL 学习笔记

2016-07-30
阅读 9 分钟
3.6k
最近开始看Andrew Ng 大牛的深度学习教程,算是作为对自己的一个激励,也作为日后回顾的办法,开始记录学习笔记,每一章节分别对应,所有章节写在这一片文章里便于查询。所以我会不断更新滴~