自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(609)
  • 资源 (7)
  • 收藏
  • 关注

转载 数据库的事务隔离级别分析

 在数据库系统中,隔离是定义一个操作对数据所做的改变如何/何时对其它的并行操作可见。 隔离级别 数据库系统有四个隔离级别。对数据库使用何种隔离级别要审慎分析,因为1. 维护一个最高的隔离级别虽然会防止数据的出错,但是却导致了并行度的损失,以及导致死锁出现的可能性增加。2. 然而,降低隔离级别,却会引起一些难以发现的bug。 在不同的并行控制模式下

2009-04-10 16:40:00 1042

转载 图解正向代理、反向代理、透明代理

套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术。一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术。一、正向代理(Forward Proxy)   一般情况下,如果没有

2016-02-24 10:13:40 1598

转载 设计模式及继承和接口

周星驰在《武状元苏乞儿》中的苏灿亦是做上帮主之位,才得到降龙十八掌的秘芨,可惜只练成十七掌,一直未能参透如何施展最后一掌。待至最后危机时刻,苏灿才悟到第十八掌“亢龙有悔”即是前十七掌的融为一体(此招与金庸原著并不相同).结果此掌挥出登时将对手赵无极打得灰飞烟灭、不见尸骸……         设计模式常见有23招(不算上多线程模式中的8招),根据类型又可以分为3类,Creational 模式

2015-03-25 14:48:43 1651

转载 为什么类是单继承的?接口是多继承的?

如果将资源的组织结构看作空间的话资源确实是单继承的,确实应该是树。因为一个空间单元只可能有一个直接的父空间单元不可能会有两个,因为空间是不交叉的。那个PrivilageBigram两两组合出的多继承应该是从运动的角度观察事物的,运动就是变化,就是时间。比如一个人肯定是只有一个直接领导的,但是这个人在开展工作的时候是可以从任何他人那里得到(继承或者别人委托给他)权限的,这是多继承的。类是单继

2015-03-25 14:41:08 3406 1

转载 范畴category:组合的本质

之前我在分解和组合的抽象方法一文中谈了分解decomposition和组合composition具体特点,范畴理论大师Bartosz Milewski最近正好写了这篇Category: The Essence of Composition,从范畴角度挖掘了分解组合和树形结构以及构造定律的本质,并解释了函数编程FP的一些原理,如果你对这方面已经有所思考,让我们一起深入细节吧。下面是大概翻译。

2015-03-25 14:38:41 1174

转载 分解和组合的抽象方法

抽象方法一般有两个分解decomposition和组合composition,这两种方法的方向正好相反,分解是将整体分解为部分,而组合是将部分组合成整体。在软件架构设计和编码中,我们经常快速灵活使用这两种方法,比如将一个类分解为多个小类,将一个方法分解为多个方法,或者将几个类合成一个类一起调用,GoF设计模式中有不少模式是展示这两种方法的使用,比如桥模式或适配器模式是将几个类组合在一起调用

2015-03-25 14:37:40 1798

转载 HASH碰撞

如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。既然是把任意长度的字符串变成固定长度的字符串,所以必有一个输出串对应无穷多个输入串,碰撞是必然存在的。一个优良的hash函数 f 应当满足以下三个条件:(1)对于任意y,寻找x,使得f(x)=y,在计算上是不可行的。(2)给定x1∈A,找x2∈B,,使得f(x1)=f(x2),在计算上是不可

2015-03-13 11:19:04 27563 1

转载 各种垃圾回收算法(二)标记-清除( Mark-Sweep )算法

标记-清除( Mark-Sweep )算法第一种实用和完善的垃圾收集算法是 J. McCarthy 等人在 1960 年提出并成功地应用于 Lisp 语言的标记-清除算法。仍以餐巾纸为例,标记-清除算法的执行过程是这样的:午餐过程中,餐厅里的所有人都根据自己的需要取用餐巾纸。当垃圾收集机器人想收集废旧餐巾纸的时候,它会让所有用餐的人先停下来,然后,依次询问餐厅里的每一个人:“你

2015-03-13 10:55:27 4082

转载 Go语言中反射包的实现原理(The Laws of Reflection)

前言过去只是知道某些语言带有反射,但是一直没机会使用这种高级功能,所以也没有深入了解过。昨天看golang时里面提到reflection,既然这么多语言支持这个性质,那就深入了解下好了。这篇文档翻译自官方文档的The Laws of Reflection,翻译目的不是为了翻译,而是加深自己记忆以及理解,所以有些地方可能不会直译,因为我没那么高水平,有时自己能看懂,但是按着原话翻译出来给别人

2015-01-04 13:09:12 2959

转载 RPM方式安装MySQL5.6

RPM方式安装MySQL5.6RPM方式安装MySQL5.6a. 检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)1[root@localhost ~]# rpm -qa | grep -i mysql2mysql-libs-5.1.66-2.el6_

2014-12-03 13:49:30 715

转载 一致性 hash 算法( consistent hashing )

consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 

2014-06-30 21:55:44 729

转载 负载均衡算法

互联网分布式系统中,很多服务是数据存储相关的,海量访问量下,直接访问存储介质是抗不住的,需要使用cache,cache集群的负载均衡算法就成为一个重要的话题,这里对现有的负载均衡算法进行一些总结。BTW:虽然是Cache负载均衡算法小结,其实可以说是负载均衡算法小结,只是针对Cache应用场景罢了。负载均衡算法主要有:Static算法Random算法Round ro

2014-06-30 21:48:28 945

转载 Web 研发模式演变

lifesinger commented 4 months ago前不久徐飞写了一篇很好的文章:Web 应用的组件化开发。本文尝试从历史发展角度,说说各种研发模式的优劣。一、简单明快的早期时代可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、PHP 等工程师在服务端生成,浏览器负责展现。基本上

2014-05-08 20:18:58 1001

原创 免费的swing/swt可视化开发工具windowbuilder

windowbuilder,也就是原来的SWT Designer。Google收购了Instantiations,把它的工具也重新免费发布了。用过swt designer的人都知它是非常好用的swing/swt可视化开发工具,有了它,swing/swt也可以像visual studio一样拖拉控件写程序(虽然netbean也可以,不过没怎用),可惜是个收费产品,后来把改名为windowbuil

2014-05-06 23:01:12 985

转载 Go语言内存模型

目录:名词定义背景介绍Happens BeforeHappens-before 定义同步方法初始化创建Goroutine销毁GoroutineChannel通信锁Once参考链接名词定义执行体 - Go里的Goroutine或Java中的Thread背景介绍内存模型的目的是为了定义清楚变量的读写在不同执行体里的可见性。理解内存

2014-02-15 11:29:42 1611

转载 SVN源码服务器搭建-详细教程

一、引言      笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文,不是很适合来作为入门者使用;毕竟,TortoiseSvn是一个客户端,服务器端的配置也很重要。      一年前,笔者刚刚毕业,初入公司,在进行开发时,由于没有进行软件代码版

2014-02-09 14:42:21 982

转载 协议森林06 瑞士军刀 (ICMP协议)

出处:http://www.cnblogs.com/vamei  到现在为止,我们讲解了网络层中最重要的IP协议(参考协议森林)。IP协议的一个重要补充是是ICMP协议。 ICMP协议ICMP(Internet Control Message Protocol)是介于网络层和传输层的协议。它的主要功能是传输网络诊断信息。   

2014-02-07 14:30:55 1156

转载 Windows下在本机创建SVN服务

一个小项目,需要在自己的pc上创建svn服务,为了简单,没有用Apache,以前只是用过客户端,没有创建过服务端,结果花了一个上午,终于搞定了。svn最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。当然一个人开发的时候没有必要创建。注:我没有用VisualSVN。一、软件下载1、服务器端软件Subversion,我用的是1.6.6版本,Setup

2014-02-06 21:51:40 770

转载 在本地使用SVN进行源代码管理,配置自己的SVN Repository

Repository 即源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等。SVN最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。对于个人开发来说,虽然不存在并发修改冲突的问题,但个人源码可以使用到SVN的版本控制功能,以便找到开发过程中的版本记录。一般个人没有条件也没必要搭一个独立的服务器来做Rep

2014-02-06 21:51:12 1130

转载 GoLang之Concurrency再讨论

0 goroutine是否并发的问题GoLang通过go关键字实现并发操作(真的并发吗?),一个最简单的并发模型:package main    import (      "fmt"      "math/rand"      "time"  )    func routine(name string, delay time.D

2014-01-23 17:45:40 1433

转载 现代编程语言用什么语言写成?

对于脚本型语言通常是c写的,包括解析器(编译器和执行器)和大部分基础的标准库(比较高阶的库才会用本语言写)。从这个意义上来说,脚本语言只是c的wrapper,正因为如此,所以才会有人喊python的sort居然比go快之类的说法,其实就算是python的sort快,那也只证明了c比go快。但也有一些语言的解析器用c++写(比如V8)。对于编译型语言,通常编译器也是c写的(但编译器对性能要求

2014-01-22 17:43:11 1781

转载 golang: 类型转换和类型断言

类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同的处理方式。golang Comma-ok switch测试 类型转换 类型断言类

2014-01-22 17:20:38 40750 2

转载 golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方文档有明确的说明:http://pkg.golang.org/pkg/builtin/

2014-01-22 16:16:33 3923

转载 Go中error类型的nil值和nil

先看C语言中的类似问题:空字符串。1const char* empty_str0 = "";2const char* empty_str1 = "\0empty";3const char* empty_str2 = NULL;

2014-01-22 15:23:23 3809

转载 Go的List操作上的一个小“坑”

一直想不清楚一个问题,简单设计的东西到底是“坑多”还是“坑少”呢? 复杂的设计,考虑的太全面,使用起来更麻烦,使用者容易陷入乱,落入自身的陷阱;而简单的设计呢,在许多方面上又顾及不周,如果使用者对其“设计”没仔细研究,或者其实现本身又是一个黑盒子,也容易掉入到设计本身遗留下来的“陷阱”。下面是我刚开始使用Go写代码时碰到的一个小“坑”,这个“坑”的原因我归结为后者。这个“小坑”来自于go的

2014-01-21 17:34:38 3673

转载 关于Go,十件你可能不知道的事

1. 匿名结构体全局组合12345var config struct {//定义一个用于全局配置结构体 APIKey string OAuthConfig oauth.Config}config.APIKey = "BADC0C0A"数据模板12

2014-01-21 17:32:46 1837 1

转载 位操作基础篇之位操作全面总结

Title:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      [email protected]:   C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大

2014-01-17 17:26:22 826

转载 负数在计算机中的表示

今天,老大让我调查一个浮点数转换为整数的问题。自己就查了些资料,顺便复习一下原码、反码和补码。 原码:将一个整数,转换成二进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。如单字节的5的反码为:0000 0101;-5的原码为1111 1010。补码

2014-01-17 17:25:32 1099

转载 Go语言并发与并行学习笔记(三)

Go语言并发的设计模式和应用场景以下设计模式和应用场景来自Google IO上的关于Goroutine的PPT:https://talks.golang.org/2012/concurrency.slide本文的示例代码在: https://github.com/hit9/Go-patterns-with-channel生成器在Python中我们可以使用yield关

2014-01-14 16:10:28 5264 2

转载 Go语言并发与并行学习笔记(二)

Go语言的并发和并行不知道你有没有注意到一个现象,还是这段代码,如果我跑在两个goroutines里面的话:var quit chan int = make(chan int)func loop() { for i := 0; i 10; i++ { fmt.Printf("%d ", i) } quit 0}func mai

2014-01-14 16:09:45 13679 7

转载 Go语言并发与并行学习笔记(一)

如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。首先,并行!=并发, 两者是不同的,可以参考:http://concur.rspace.googlecode.com/hg/talk/concur.htm

2014-01-14 16:09:09 34786 19

转载 绝妙的 channel

绝妙的 channel在 Go 编程语言中,channel 是一个闪耀的特性。它提供了一种强大的、在不使用锁或临界区的情况下,从某个 goroutine 向其他 goroutine 发送数据流的方法。今天我想讨论关于 channel 的两个重要的特性,这些特性不但使其在控制数据流方面极为有用,而且用在流程控制方面也十分有效。一个已经被关闭的 channel 永远

2014-01-14 15:12:32 2553

转载 Golang:有趣的 channel 应用

严格意义上说,本文是我另外一片文章《Golang Funny: Play with Channel》的中文版本。不过,毕竟是用中文当母语的,所以就不翻译了,重新按照那个内容写过吧。channel 是 golang 里相当有趣的一个功能,在我使用 golang 编码的经验里,大部分事件都会是在享受 channel 和 goroutine 配合的乐趣。所以本文主要介绍 channel 的一

2014-01-14 15:11:52 5006

转载 golang test测试实例

本文的目的是对mymysql进行单元测试和性能测试准备工作:1 go get github.com/ziutek/mymysql/thrsafe2 在mysql建表和初始化数据(db是test)123456789101112drop

2014-01-13 17:00:55 4524

转载 golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试通过go help test可以看到go test的使用说明:格式形如:go test [-c] [-i] [build flags] [packages] [flags for test binary]参数解读:-c : 编译go test成为可执行的二进制文件,但是不运行测试。

2014-01-13 17:00:22 2055

转载 Go的异常处理 defer, panic, recover

Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。在极个别的情况下,也就是说,遇到真正的异常的情况下(比如除数为0了)。才使用Go中引入的

2014-01-13 16:59:58 1334

转载 无辜的goroutine

本文主要是针对一些对于goroutine的“指控”提出我自己的看法,特别是轩脉刃的一篇博客文章《论go语言中goroutine的使用》提出了goroutine的几宗罪。实际上goroutine确实有增加程序复杂度而容易导致问题之处,特别是死锁;但是另外的一些指控,我认为实际上goroutine是没有直接责任的。以下就《论go语言中goroutine的使用》的内容一一提出我的观点

2014-01-13 15:07:35 1047

转载 论go语言中goroutine的使用

go中的goroutine是go语言在语言级别支持并发的一种特性。初接触go的时候对go的goroutine的欢喜至极,实现并发简便到简直bt的地步。但是在项目过程中,越来越发现goroutine是一个很容易被大家滥用的东西。goroutine是一把双面刃。这里列举一下goroutine使用的几宗罪:1 goroutine的指针传递是不安全的12

2014-01-13 15:06:54 2781

转载 goroutine与调度器

我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一个调度器来维护这些goroutine,确保所有的goroutine都使用cpu,并且是尽可能公平的使用cpu资源。这个调度

2014-01-13 15:03:39 1999

转载 Go语言并发之美

EMC中国研究院  颜开简介        多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes。随着Golang, Erlang, Scale等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式需要有一个极其简洁的内核,还有在此之上丰富的外延,可以解决现实世界中各种各样

2014-01-10 17:28:05 1530

AOP的实现机制.pdf

AOP的实现机制的实例代码和文档一起使用。

2013-02-22

commons-cli-1.2-bin.zip

commons-cli的jar包 Commons CLI 是一个用来处理命令行参数的 Java 工具包。

2012-01-27

Java网络编程,一本入门级书籍

Java网络编程,关于java网络方面的入门级书籍

2009-08-04

即用即查——JSP函数与对象参考手册

即用即查——JSP函数与对象参考手册 即用即查——JSP函数与对象参考手册

2008-11-21

JSP数据库开发实例精粹.pdf

JSP数据库开发实例精粹.pdf

2008-02-04

JAVA编程习题与解答(全美经典学习指导系列)中文版

JAVA编程习题与解答(全美经典学习指导系列)中文版

2007-07-12

空空如也

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

TA关注的人

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