自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雪落无痕

爱技术、爱学习、爱生活

  • 博客(4)
  • 资源 (6)
  • 收藏
  • 关注

原创 数据存储引擎

存储引擎是数据存储系统的发动机,直接决定了数据存储系统能够对外提供的性能和功能。存储系统的基本功能包括:增、删、改、读,其中数据的读取,又可以分为随机读取和顺序扫描。哈希存储引擎是哈希表的持久化实现,支持增、删、改、查和随机读取操作,但是不能支持顺序扫描,对应的存储系统为键值存储系统;B树存储系统是B树的持久化实现,不仅支持数据的增、删、改、读,还支持数据的顺序扫描。LSM树存储引擎和B树一样,不仅

2017-02-26 15:03:09 432

原创 分布式存储系统的分类

分布式存储系统面临的需求比较复杂,大致可以分为三类:非结构化数据:包括所有格式的办公文档、文本、图片、图像、音频、视频信息等。结构化数据:一般会存储在关系型数据库中,可用二位关系的表结构来对数据进行描述,数据的模式需要预先进行定义。半结构化数据:介于结构化数据和半结构化数据直接,HTML文档就属于半结构化数据。它一般是自描述的,与结构化数据的最大区别之处在于,半结构化的数据模式和内容混在一起,

2017-02-26 14:45:18 10180 1

原创 分布式存储的概念

大规模分布式存储系统的传统定义:“分布式存储系统是大量PC服务器通过Internet互联,对外提供一个整体的服务”。 分布式存储系统具有以下的几个特性:可扩展 。分布式存储系统可以扩展到几百台甚至几千台这样的一个集群规模,系统的整体性能线性增长。低成本。分布式存储系统的自动容错、自动负载均衡的特性,允许分布式存储系统可以构建在低成本的服务器上。另外,线性的扩展能力也使得增加、减少服务器的成本低

2017-02-26 14:19:00 5378

原创 设计一个有getMin功能的栈

设计一个有getMin功能的栈【题目】实现一个特殊的栈,在实现基本的栈功能的基础上,再实现返回栈中最小元素的操作【要求】pop、push、getMin的操作时间复杂度都是O(1)设计的栈类型可以使用现成的栈结构【解决思路】在设计上,我们使用两个栈来解决问题,使用空间换取时间复杂度上的最优解。一个栈用来存储我们当前栈中最小的元素;另外的一个栈用来实现我们的基本栈的操作,存储基本数据。数据压栈规

2017-02-26 11:43:03 297

性能调优之性能参数指标

性能调优相关的一些名词的介绍,帮助进行性能调优

2015-12-24

nginx-1.2.9.tar.gz

nginx安装包,附带nginx开发源码

2015-12-24

Hibernate课件

Hibernate学习课件,帮助你快速的入门Hibernate

2015-03-22

bootstrap中文手册

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。[1] 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。

2015-03-22

正则表达式测试工具

自制的正则表达式测试工具,源码如下: /** * @Project: regutil * @Title: MainFrame.java * @Package com.zhang * @Description: 正则表达式工具 * @author zhanghongbin [email protected] * @date 2014-11-9 下午6:35:37 * @Copyright: 2014 zhanghongbin. All rights reserved. * @version V1.0 */ package com.zhang; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; /** * @ClassName MainFrame * @Description TODO * @author zhanghongbin [email protected] * @date 2014-11-9 */ public class MainFrame extends JFrame{ /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = 1L; private JTextField jfRegx,jfStr; private JButton test; private JLabel tp1,tp2,jlResult; private Container container; public MainFrame(){ try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } this.setSize(600, 400); this.setLocation(350, 100); this.setResizable(false); this.setTitle("正则表达式测试工具"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfRegx = new JTextField(); jfStr = new JTextField(); test = new JButton("测试"); jlResult = new JLabel("等待测试..."); tp1 = new JLabel("正则式:"); tp2 = new JLabel("待测项:"); container = this.getContentPane(); container.setLayout(null); tp1.setBounds(90, 30, 80, 30); jfRegx.setBounds(170, 30,350, 30); tp2.setBounds(90, 90, 80, 30); jfStr.setBounds(170, 90, 350, 30); test.setBounds(440, 140, 100, 30); jlResult.setBounds(90, 190, 430, 200); container.add(tp1); container.add(jfRegx); container.add(tp2); container.add(jfStr); container.add(test); container.add(jlResult); this.setVisible(true); test.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent env) { String regx = jfRegx.getText(); String str = jfStr.getText(); if(regx.isEmpty()==false){ if(str.isEmpty()==false){ Pattern pt = Pattern.compile(regx); Matcher mt = pt.matcher(str); int i = 0; StringBuffer bf = new StringBuffer(); bf.append("<html><body>"); bf.append("<h2 style='color:#ff0000'>"); boolean is =false; while(mt.find()){ bf.append("|"+mt.group()+"|"); i++; is= true; } if(is==false){ bf.append("对不起,没有找到到匹配项!"); bf.append("</h2>"); bf.append("</body></html>"); }else{ bf.append("<br><br>"); bf.append("一共找打"+i+"个匹配组!"); bf.append("</h3>"); bf.append("</body></html>"); } jlResult.setText(bf.toString()); }else{ JOptionPane.showConfirmDialog(null, "亲,要填写待测式哦!", "提示", JOptionPane.YES_NO_OPTION); } }else{ JOptionPane.showConfirmDialog(null, "亲,要填写正则式哦!", "提示", JOptionPane.YES_NO_OPTION); } }}); } /** * @Title: main * @Description: TODO */ public static void main(String[] args) { new MainFrame(); } }

2014-11-09

中文参考文档

Hibernate中文参考文档,减缓Hibernate学习坡度,给初学者带来便利

2014-08-26

空空如也

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

TA关注的人

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