自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超威半导体

失望-痛苦-分裂-自省-領悟-覺醒-重生

  • 博客(296)
  • 资源 (24)
  • 收藏
  • 关注

原创 MySQL事务特性

数据库事务是一组连续数据操作,在多个数据库进行并发操作数据库的时候,如果不加以控制,会导致数据库出现不可预期的结果,可能造成脏读,不可重读,幻读的可能性。例如两个银行账户A、B.A转金额和B存入金额是两个操作,如果在中途出现异常,如果没有事务管理机制,就会导致不一致性的情况发生,数据丢失。因此事务的特点就有原子性,一致性,隔离性,持久性。一般称为数据库的ACID特性。Mysql数据库一般使用的引擎为

2017-02-16 19:59:42 594

原创 设计模式之责任链模式

责任链模式是一种行为模式,很多时候我们对象在处理一个请求的条件是比较灵活的,可能代码中存在大量的if-else结构,不同条件的处理逻辑可能比较复杂,可能会使一个类过分的复杂,或者可能不符合类的单一原则,而且对于处理方式的改变也很可能会涉及到原有代码的改变,责任链模式就是解决这样一种应用场景的可能.责任链的UML图 主要由三个角色组成:Handler : 责任链的基础,维护Handler的引用,类似

2017-02-13 19:02:49 339

原创 JVM运行数据环境

JVM(Java virual machine)Java虚拟机是Java语言的基础,虽然名称叫做java虚拟机,但是跟Java语言并没有强相关,JVM主要提供一种执行字节码(class文件的载体),很多其他的语言例如python都有基于jvm的实现版本,JVM在很多时候给我们提供了便利,屏蔽了很多细节,尤其是垃圾回收与跨平台与多线程机制.JVM的基本结构如下: 它处于连接基本类库与字节码文件和操作

2017-02-08 13:58:33 384

原创 基于注解spring AOP实现

spring容器的三大特点:控制反转,切面编程(Aspect of Program)与事务管理这次写了个spring切面编程的demo,spring对切面编程的支持主要在对象的方法调用层次.用最简单的手段实现最多的功能,这是spring的设计哲学.因此spring支持最完善的也是对于方法的拦截.spring进行切面编程的主要手段是生成代理.在代理对象执行目标对象所拦截方法前后或者周围提供各种功能.切

2017-01-20 16:46:45 500

原创 多线程环境下单例模式

很多时候我们在生成对象的时候并不需要每次都为同一个类生成一个新的对象,因为这个类可能是无状态的,例如访问数据库的连接,如果我们每次手动的去new,如果生成这个类需要的资源不那么多还好,如果生成这个对象需要非常多的资源,那就需要慎重考虑了,每次复用一个对象明显更加节省资源.单例模式属于创建模式,侧重点在于创建对象UML图非常的简单: 我们来写一个非常典型的单例模式的例子:public class

2017-01-19 15:21:19 354

原创 Java对象深复制与浅复制

我们在遇到一些业务场景的时候经常需要对对象进行复制,对于对象的复制一般有两种方式,深复制和浅复制浅复制:对象的复制仅是对象本身,对象引用的其它对方并不会复制。深复制:对象的复制包含对象引用的对象。Java所有对象的基类提供了clone方法,但是这个方法是protected native修饰,因此只暴露给之类去重写,外部是无法直接调用的。 我们现在来测试两种复制,首选是浅复制,浅复制要实现Clone

2017-01-16 18:05:23 387

原创 ubuntu安装jdk与搜狗输入法

在ubuntu下安装搜狗输入法遇到了一些问题,总结一下,打开搜狗输入法Linux版的官网http://pinyin.sogou.com/linux/?r=pinyin,并下载你需要的版本,这里选择64位版。然后使用命令sudo dpkg - i sogou*.deb 安装后或者安装中可能会依赖问题,使用: $sudo apt-get install -f 修复以来,在配置语言,键盘输入

2016-12-28 09:48:04 545

原创 工厂模式

在面向对对象设计中,我们会通过构造各种各样的对象并组织对象之间的关系,但是在很多时候我们并不是很关心这个对象是怎么来的,或者是这个对象的创建是十分的复杂,而希望直接有个现成的方式直接去获取,客户可以直接拿来就可以使用也不用去维护这个对象的生命周期。 工厂模式也分三种比较常见的模式,简单工厂方法,工厂方法模式,抽象工厂模式简单工厂模式简单工厂模式的角色有三个:抽象产品角色具体产品,实现了抽象

2016-12-15 16:32:15 621 2

原创 面向对象设计原则

1. 如果说设计模式是对某种场景的最佳实践,那再在这些场景与设计上更进一步的提炼出的规范可以被总结为一系列面向对象设计的原则, 这些原则是更加抽象的一层,这些原则并不是某个厂商或者是语言的编写者确立的规范,而是在大量的实践中总结出来的经验,可以说是 优秀的面向对象设计大都符合这些规范,也可以说是在这些规范的约束下设计出良好的面向对象系统。开闭原则就是强调系统应该对扩展开放,

2016-12-14 18:08:36 536

原创 设计模式之观察者模式

系统模块间的依赖往往开始于各种消息的传递,很多时候我们需要完成当某一件事情发生就要通知相关的关注方获得通知以便进行一系列活动。观察者模式就是这样一种设计模式,被关注者是产生变化的源头,因此在变化的源头去通知那些关注者相比较关注者主动去获取被关注者的变化会更加方便。 观察者模式的UML图如下: 有四个角色: 被观察者Obserable :定义被观察者应该有的功能,这里定义了添加观察者和移除观察者和

2016-12-07 19:38:51 392

原创 设计模式之建造者模式

建造者模式属于创建型设计模式,我们经常需要创建一些对象,这个对象是由一些基本的部分组成的,但是考虑到各种情况,这些具体的部分会经常的发生改变,但是组织这些部件的顺序等等是不容易的变化的,这点类似乎模板方法模式遇到的使用场景,模板方法侧重点在于定义一个基本的算法骨架,建造者模式侧重点在于灵活的变更具体部件的实现。类图如下: 有三个角色需要解释: 1.Director类(导演类):维护一个Bui

2016-12-04 16:11:13 349

原创 设计模式的意义与23种常见模式介绍

自从计算机诞生以来,生产效率大大的提高,尤其是微型计算机能够进入千家万户。让大众能够利用强大的计算资源,但是单纯的计算机硬件虽然能够提供机械强大的计算能力,但是要有效的利用这样的能力就需要用软件去操作,就像不同国家的人说着不同的语言,我们需要通过翻译才能够顺利沟通,同样计算机也需要明白人类需要它做什么事情,所以计算机对应的语言就叫做机器语言即一般来说的二进制编码。这是一种跟人类语言相差很大的语言,虽

2016-12-03 16:08:06 3599

原创 Java生产者消费者

wait与nofity关键字是Java多线程的关键,主要是用来线程之间的通信用的,如果你的Java程序中有两个线程——即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓 冲区中有内容待消费(不为空)。相应的,消费者可以通知生产者可以开始生成更多的数据,因为当它消耗掉某些数据后缓冲区不再为满。 我们可以利用wait()来让一个线程在某些条件下暂停运行。例如,在生产者消费者模

2016-11-24 10:16:54 798 1

原创 Git Bash提交代码避免每次输入用户密码

使用Github提交代码遇到每次都需要输入用户名密码的情况,只要在本地生成一个认证文件即可免去输入。在%HOME%目录,一般是C:\users\Administrator。使用git bash命令:$touch .git-credentials$vim .git-credentials// 然后输入https://{username}:{password}@github.com然后移动到项目目

2016-11-22 11:07:16 4910 1

原创 SpringMVC @RequestBody使用

Spring mvc是一个非常轻量的mvc框架,注解可以大大减少配置,让请求的拦截变得比较简单。这次记录下@RequestBody 注解接收参数尤其是数组参数的用法。 关于容器的配置不再多说,这里写出spring-servlet.xml的sechme:<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://ww

2016-11-14 12:15:11 29590 1

原创 MySQL聚合函数Group by理解

今天遇到一个问题是分组统计问题,表结构如下,我们的需求是按小时去聚合统计不同type和count_key的和。 这里可以用聚合函数:SELECT type,count_key,count,DATE_FORMAT(count_hour,"%H") as hour FROM statistic_hourly GROUP BY type,count_key,DATE_FORMAT(count_hou

2016-11-14 11:32:12 2659

原创 阶段学习规划

关键字:JVM,并发,分布式,tcp/ip。 Java常见的数据结构算法的实现原理。(参考jdk源码) Java并发包下面的类(java.concurrent包下面的) NIO(模型)与IO,其中NIO是重中之重。 Jvm内容,GC回收,类加载机制,内存模型。 加分项目:计算机系统原理。 网络通信协议(TCP/IP,HTTP等)。 数据结构与算法。 著名开源项目的源码。 你自己有很棒的

2016-11-02 23:16:53 462

原创 导入ecplise项目No projects are found to import解决方案

最近在clone一个git项目的时候遇到一些文件,首先导入直接显示: No projects are found to import 显然这是ecplise无法正确识别项目类型导致的,这是由于ecplise识别一个工程需要.classpath与.project文件,一般是隐藏的,我们可以去其他正常的项目当中找到这两个文件,然后复制到对应的git目录下,导入eclipse发现对应的项目结构是这

2016-11-02 12:12:36 43263 3

原创 设计模式之建造者模式

建造者模式属于创建型模式,就是要更好的创建对象。很多时候我们创建一个对象的过程是十分复杂的,这种复杂性主要的原因是因为一个对象的各个部件十分的复杂或者是非常零散,需要使用该对象如果去临时组装会非常的麻烦,关键是客户端并不关心这种组装的过程而只需要指定的对象,建造者模式就是这样的设计模式,可以让我们直接获取建造好的对象。先看UML图。建造者模式涉及到的角色有四个Product : 产品的接口,就是我们

2016-10-31 16:20:31 237

原创 linux命令总结(三)

总结几个比较常的命令,十分的常用,但是一般的文档不一定会说明. 我们经常在输入一长串命令的时候希望回退到中间某个单词处去修改某个部分,例如: 1.ALT + B与ALT + F 空格前移$sudo apt-get intall program^// 这里我们发现intall拼写错了,我们需要回去,我们没必要去一个个字母移动过去// 使用alt + b空格前移.ctrl + b字母前移//

2016-10-18 15:31:51 294

原创 ubuntu下安装QQ

ubuntu下安装QQ 由于各种原因要迁移到linux下开发,ubuntu比较适合新手入门,因为它有比较好的图形界面的支持,但是在ubuntu下面很多常用软件是不支持的,例如我们工作需要的QQ,在网上也找了一些相关的解决方案,webqq是一个选择,但是webqq支持的功能不是很完善,稳定性也不够高.比较好的办法是采用wine的环境下安装QQ,wine大概的功能就是可以在unix上运行windwos的

2016-10-13 09:58:05 463 3

原创 linux下md5sum使用

linux作为流行的服务器传输经常会用有文件的校验,linux系统内置了md5校验,会为每个文件生成一定位数的md5值,相当于指纹,这样可以对传输的文件进行校验. 生成的md5值与文件名无关. 接下来我们演示其基本用法:$cd // 到用户目录$mkdir md5sum_demo // 建立一个文件夹演示md5sum$touch micro1.txt // 新建文件micro1$cp mi

2016-10-12 18:29:00 738

原创 ubuntu下安装git

git为最先进的版本控制工具,在linux-ubuntu下安装git,打开终端: 1.首先查看是否已经安装了gitThe program ‘git’ is currently not installed. You can install it by typing: sudo apt install gitmicro@micro-H81M-S1:/$ gitThe program 'git' i

2016-10-10 09:43:28 509

原创 linux命令总结(二)

cp 复制 : cp -a /dir1/dir2 . : 复制对应的目录到当前终端工作的目录。 cp -a dir1 dir2 : 复制dir1 到 dir2 ln -s dir1 dir2 : 软链dir1 到 dir2 (软链接:类似与快捷方式) ln dir1 dir2 : 物理链接 touch -t 1610090000 f

2016-10-09 16:33:28 290

原创 linux命令总结(一)

linux命令总结:arch : 显示处理器的架构为x86-64,还有IBM powerPC架构或则solar什么架构,winintel联盟下只支持x84架构,Linux是支持不同的处理器架构的。 uname -m : 也是显示处理器架构。 dmidecode -q : 显示硬件系统部件信息。 hdparm -i /dev/hda sda为对应磁盘的符号。cat 查看硬件信息相关 :

2016-10-08 16:59:34 359

原创 九月开发总结

个人总结 最近一个月发生的事情比较多,过去玩过硬件,学过网络,后来又学过C和Python,然后搞了两年Java,然后专注在Java web这块,感觉自己的目标越来越明确,也一直比较相信自己会在这个领域努力做得更好,不会再去纠结方向上的问题,自己理想就是当一个能够改变世界的攻城狮,哈哈,开玩笑,总之想做一个实干一点,做点有趣产品的工程师,自己的职位是Java工程师,首先我对Java有特殊的感情,从市

2016-10-01 12:41:25 504

原创 设计模式UML总结

各个设计模式之间的关系图: 1、策略模式2、抽象工厂模式3、代理模式4、迭代器模式5、访问者模式6、工厂方法模式7、简单工厂模式 8、观察者模式9、建造者模式10、模板方法模式11、桥梁模式12、外观模式13、享元模式14、原型模式15、装饰模式16、组合模式

2016-09-21 14:29:08 792

原创 扑克牌顺子

`public class Solution { public boolean isContinuous(int [] numbers) { if (numbers.length != 5) return false; // 首先对数组进行排序(冒泡) for (int i = 0;i < numbers.length;i ++) {

2016-09-12 13:14:52 432

原创 八月项目与读书笔记

最近由于各方面的原因没有及时的更新博客,似乎又到了一个思绪比较复杂的时期,我其实有很多内容想分享出来,虽然我知道我的博客的markdown功能也没好好使用,而且最开始就打算博客主要是记录自己心得的东西没期待着多少人看所以“坏习惯”也就养成了。 最近在学习Java高级特性、多线程高并发、设计模式、spring与jdk源代码。之前有阵子由于盲目的崇拜所谓的大规模分布式集群等等高大上的东西让自己比较迷茫

2016-08-23 11:19:02 444

原创 Sequelize order排序

写nodeJs ORM采用的Sequelize框架,基本的增删改查可以去官方API查询, 我需要对某个list的id进行排序,官方文档如下:User.findAll({ 'order': [ ['id', 'DESC'], ['nick'] ]});但是并不能获得争取的结果,去StackOverFlow上查看了相关的内容,发现正确的写法应该是:U

2016-08-15 12:39:36 24530 1

原创 JavaScript对象遍历与比较

JS写多了发现对于一些基本类型的相关处理还不够熟练,这里总结下Js里的基本类型和相关类型的一些常见操作。基本的流程控制语句也与其他语言类似,三种控制结构,顺序,判断,循环。javaScript基本类型包含 字符串、数字、布尔、数组、对象、Null、Undefined,都是弱类型,变量声明为var,也可以不用var声明,这样运行并不会出错,只是变量作用的值域不同而已,关于具体不同于闭包等相关内容属于高

2016-08-12 10:46:53 1272 1

原创 nodeJs缺少模块问题解决方案

npm是nodeJs的模块管理工具,类似于Java里的maven管理jar的功能,最近在某个模块引用代码被更新之后node server就一直启动失败显示找不到模块,在node项目的目录下也使用了npm install工具安装了模块,但依然不能解决问题,后来想起在maven里也会出现这种情况,是采用把缺少class的maven仓库依赖对用的文件夹删除掉再重新更新maven依赖即可更新好最新的jar文

2016-08-10 10:12:40 6539 3

原创 《大型网站技术架构》读后感

最近新项目一边做项目一边拜读了一下《大型网站技术技术架构》,一直对架构很感兴趣听说这本书算是架构的入门科普的书,在网上找电子档看了下,感觉非常不错所以就花了点钱去买了一本来认真的读了一下,书不厚但是内容比较丰富,由于是讲大型网站的演化和主要架构,因此作者不可能面面俱到,在豆瓣去看了下评分,的确两级分化比较严重。部分的读者出于对于作者的出身(作者李智慧阿里巴巴的技术总监)所以抱着挖掘宝藏的心态读拜读,

2016-08-03 18:53:52 924

原创 CAP与ACID与BASE理论综述

CAP理论是基于分布式存储系统的一种理论,CAP具体指的是:Consistency为一致性,Availability为可用性,partition tolerance是分区容错性。CAP指的是任何一个分布式存储系统很难同时满足这三个属性,最多只能满足其中两个。关系数据库因为最开始是在单机的环境,因此不用太在意分区容忍,又有严格的ACID事务管理机制,因此在一定的阶段内能比较好的支撑整个数据库系统的正常

2016-07-25 15:54:56 1409

原创 thrift远程调用示例

thrift是facebook研发的跨语言的RPC框架,这次我们来编写一个thrift调用的示例。 需要首先定义一个数据结构,用文本编辑器,然后通过thrift编译成不同语言的文件,这是实现跨平台的关键步骤,这次我演示的是将定义的数据结构文件编译成java的类。 1.首先去thrift官网下载编译工具。(windows下是thrift-[版本号].exe) 我们用文本编辑器定义一个简单的数据结

2016-07-22 11:35:26 2301

原创 Redis增删改查示例

数据库产品这么多,归根到底还是为了更好的存储,集中管理,与数据共享,另外还有高可用,高性能,容错性等等。 上一篇文章最后介绍了Redis,作为一种内存数据库,它的应用十分的广泛,它存储的是一种K-V结构的记录。学习一个数据库首先抓住重点就是学会如何使用增删改查,这次来演示下如何Java构建Redis的增删改查。Redis的集群还有工作原理暂时不做探讨。 1首先去Redis官网下载Redis官网

2016-07-22 11:02:50 1872 1

原创 主流NoSQL技术详解与比较

主流NoSQL分类1键值(Key-Value)存储数据库 键值对NoSQL是比较流行的一种NoSQL的解决方案,特点就是采用键值对来存储数据,它的优势在于容易部署和简单性,但是如果查询的部分只是整个数据库的小部分,那性能并不是特别突出。2列存储数据库 列存储NoSQL比较适合的场景是处理海量的分布式存储的数据,它的主键可能是指向多个列的,数据量增加的时候几乎不影响性能。3文档型数据库 文档数据

2016-07-21 11:35:33 9496

原创 正则表达式的匹配问题

这个题看似简单,但是难度不小,jdk也有实现,但是自己来造轮子发现考虑的情况非常多,这次为了这个算法思考了两三天,最后找到了解决方案如下:public boolean match(char[] str, char[] pattern) { // 反转字符数组 for (int i = str.length - 1,j = 0;j < i;i --,j ++) {

2016-07-20 09:05:53 721

原创 设计模式之策略模式

设计模式不拘泥于语言,不拘泥于特定的场景,传达的是一种思想,在实际学习中我们或多或少的接触所谓的设计模式的名字,为了学设计模式也不得不去看很多样例,因为抽象的思想很难表达,而语言是能够具体表达的东西,无论如何,我们最后设计出的目标都是要复合面向对象几大基本原则的。开闭原则接口隔离依赖倒置里氏替换单一职责最小知识面向接口编程与尽量用组合去替换继承关系复用 满足这些原则的OOA被公认为是

2016-07-14 11:33:54 412

原创 内置Jetty HTTPS启动

上一章用内置的jetty搭建了web服务,主要是加载容器和选择通道,这次我们来搭建一个支持安全协议SSL的web服务,即https。 我们先来复习两种加密的方式,一种是对称加密,另一种是非对称加密。 对称加密就是解密和加密的秘钥是一样的,代表性的为AES算法。这种传输的效率要高一些,但是保密性较差,因为秘钥的保管十分重要。 非对称加密就是加密的秘钥和解密的秘钥不相等,也就是分为公钥和私钥。这样

2016-07-12 16:03:10 10670 3

Alfred 3.3.dmg

mac x 快捷键神器你懂的。直接安装好,再安装破解工具自动破解。

2019-07-16

matplotlib下载

matplotlib官网下载一般比较慢。。。我这里备份一下,原链接https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz/download

2018-05-19

linux就该这么学

linux

2017-03-29

毕业设计,NoSQL

博主NoSQL毕业设计,暂不开放下载

2016-08-23

大型网站技术架构

《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。, 《大型网站技术架构:核心原理与案例分析》不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。

2016-07-14

jar源代码查看工具

经常遇到问题,找不到源代码,这个工具可以查看jar的源码

2016-06-28

mybatis-generator工具

希望你们喜欢,我博客有教程。

2016-05-12

bootstrap-typeahead.js

bootstrap 实时查询typeahead js插件。

2016-01-27

zookeeper 3.4.6

流行的负载均衡与容灾解决方案zookeeper

2016-01-27

bootstrap模板

bootstrap完整模板,包含css,js,image等等

2016-01-27

自动生成entity mapper工具包

修改相应参数生成entity mapper.xml与mapper.java

2015-12-01

sourceTree产品证书

source的产品证书 导入即可 亲测有效

2015-11-28

springg mvc jar

spring mvc jar provided by micro_hz

2015-09-25

自定义注解实现过滤实例

参考我日志,mysql与自定义注解的实现。源代码。

2015-08-24

Spring与Struts

两个实例,主要是action的配置和bean的配置

2015-08-13

jsp+servlet+tomcat+mysql项目

十分简单的一个jsp+servlet+mysql的一个项目。主要是为了熟悉怎么流程。

2015-08-07

mysql-connector.jar包

mysql-connector很常用的jar包,连mysql数据库用的。

2015-08-06

Struts2 2.3.24开发文档

struts2开发文档,补充jar包的内容。

2015-08-04

Struts2 2.3.24jar包

struts2开源框架的jar包。不含开发文档。

2015-08-04

spring4.1.7开发文档

spring开源框架的开发文档,补充jar包的内容说明。

2015-08-04

spring-4.1.7 jar包

spring开发框架jar包。不含有开发文档。

2015-08-04

mybatis-3.2.7

mybatis的jar包,轻松获得dao层的开发,轻量级的orm封装。

2015-08-04

C#系列教程

C#系列教程(PDF)

2007-10-18

空空如也

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

TA关注的人

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