自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

转载 数据库日志文件-- undo log 、redo log、 undo/redo log

在谈日志文件之前,不得不提事务这一概念。在某种意义上来说,如果没有事务存在,也就没有所谓的日志文件。下面开始了。 一、事务1  ACID数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,

2015-11-18 17:50:38 558

转载 数据库的checkpoint

上一章的结尾我们留下了一个问题,就是在上一章所介绍的模型中,恢复管理器必须要通过全篇扫描整个undolog进行日志恢复,这样做显然是没有太大必要的,因为系统中断肯定是在最后几个事务受到影响,前面的事务应该已经完成commit或者rollback了,不会出现abort的情况,那我们如何知道哪些事务受到了影响呢,如果我们知道了哪一些事务受到了影响,那我们就可以不用全篇进行扫描,而仅仅扫描很小的一部分就

2015-11-18 17:38:01 1858 1

转载 【转】xstream的使用介绍(javabean和xml互转)

最近在项目中遇到了JAVA bean 和XML互转的需求, 本来准备循规蹈矩使用dom4j忽然想起来之前曾接触过的XStream, 一番研究豁然开朗,利器啊利器, 下来就XStream的一些用法与大家分享。XStream是大名鼎鼎的thought works下的一个开源项目, 主要功能是提供JAVA bean 和XML文本之间的转换,另外还提供JAVA bean和JSON之间的转换,这个不

2015-08-14 15:07:30 564

转载 SkipList的java实现

跳跃表是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间),并且对并发算法友好。关于跳跃表的具体介绍可以参考MIT的公开课:跳跃表跳跃表的应用Skip list(跳表)是一种可以代替平衡树的数据结构,默认是按照Key值升序的。Skip list让已排序的数据分布在多层链表中,以0-1随机数决定一个数据的向上攀升与否,通

2014-09-13 16:53:22 768

转载 网络IO模型解析:同步IO和异步IO,阻塞IO和非阻塞IO的对比分析

本文讨论的背景是Linux环境下的network IO。本文最重要的参考文献是Richard Stevens的“UNIX? Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“I/O Models ”,Stevens在这节中详细说明了各种IO的特点和区别,如果英文够好的话,推荐直接阅读。Steve

2014-09-11 13:20:19 790

转载 java多线程模式ThreadLocal原理简述及其使用详解

原创整理不易,转载请注明出处:java多线程模式ThreadLocal原理简述及其使用详解代码下载地址:http://www.zuidaima.com/share/1781557457128448.htmThreadLocal是为了使每个线程保存一份属于自己的数据。先看一个使用ThreadLocal的实例。[java] view plaincopy

2014-09-03 12:53:17 473

转载 MySQL索引背后的数据结构及算法原理

摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分

2014-08-26 18:50:04 524

转载 Java代理模式

、代理模式所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。生活中的例子:过年加班比较忙,没空去买火车票,这时可以打个电话到附近的票务中心,叫他们帮你买张回家的火车票,当然这会附加额外的

2014-08-23 14:06:38 478

转载 java动态代理(JDK和cglib)

JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为

2014-08-23 13:45:31 444

转载 Java Object类方法

java.lang.Object  java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。  Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。  Object类是Java中唯一没有父类的类。  其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。 Object类中的方法  构造方法

2014-08-23 11:21:46 1096

转载 JVM内存配置详解

前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理; 基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Wi

2014-08-23 10:33:50 645

转载 阿里巴巴常考面试题及汇总答案

个人总结,仅自己学习用。愿与大家一起分享!如有错误请指正。一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答:   1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中St

2014-08-23 10:22:29 262

转载 Java虚拟机的JVM垃圾回收机制

1.JVM内存空间   JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured) 分区作用: 新创建的对象通常先将其分配在新生代中,在新生代中经过若干次GC之后仍未释放的对象,再将它移动到旧生代。为了让内存回收更高效(GC会暂停JVM中的应用),Sun JDK在1.2开始对堆采用了分代管理的方式。在分配对象遇到内存不足时,先对新生代进行GC(Young GC

2014-08-14 21:40:41 422

转载 Java CyclicBarrier

1、类说明:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。2、使用场景:需要所有的子任务都完成时,才执行主任务,这个时候就

2014-08-13 09:58:12 496

原创 Java多线程 Callable Future FutureTask

1.CallableCallable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。Callable和Runnable有几点不同: (1)Callable规定的方法是call(),而Runnable规定的方法是run(). (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。 (3

2014-08-12 22:55:19 652

转载 深入研究java.lang.ThreadLocal类

一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一

2014-08-11 16:50:52 383

转载 IO - 同步,异步,阻塞,非阻塞 (转)

转自http://blog.csdn.net/historyasamirror/article/details/5778378当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常

2014-08-10 10:29:57 470

转载 Java内存模型-jsr133规范介绍

最近在看《深入理解Java虚拟机:JVM高级特性与最佳实践》讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范。系统的看了jsr 133规范的前面几个章节的内容,觉得受益匪浅。废话不说,简要的介绍一下java内存规范。什么是内存规范在jsr-133中是这么定义的A memory model describes, given a

2014-07-30 22:48:54 618

转载 java volatile by Brian Goetz

volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对

2014-07-30 22:16:20 485

转载 configure的交叉编译问题 (Linux x86 - Linux arm11) 修改configure配置

这个是前一篇CMake交叉编译的后继。针对的也是像我一样,对Linux下configure编译工具毫不了解但是要用它们做交叉编译的程序猿们。  首先,所谓的configure虽然用的多,但是它也只是一个自动生成的东西,如果你打开这个东西一看,那真和天书差不多。我们下载下来的Linux开源工程,往往编译步骤是先执行命令./configure,检查是否符合编译条件,然后生成一个Makefile

2014-05-14 09:38:18 2217

转载 关于--enable-assembler,--enable-static,--enable-shared编译项的研究

--enable-static与--enable-shared--enable-static:生成静态链接库--enable-shared:生成动态链接库 静态库       在编译过程中,就将静态库中的代码载入程序,由此生成出的可执行程序在运行中不再需要静态库,但因为库中的程序代码被复制进目标程序中,因此生成的程序体积会比较大。       lin

2014-04-24 22:01:17 1216

转载 MapReduce执行过程

1、Map-Reduce的逻辑过程假设我们需要处理一批有关天气的数据,其格式如下:按照ASCII码存储,每行一条记录每一行字符从0开始计数,第15个到第18个字符为年第25个到第29个字符为温度,其中第25位是符号+/-0067011990999991950051507+0000+0043011990999991950051512+002

2014-04-21 22:29:14 623

转载 Java内存分配

本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在

2014-04-17 23:22:43 609

转载 mysql索引的创建、删除、查看

此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html1.索引作用   在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。   例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c

2013-12-17 22:55:18 438

原创 格式化导入文本数据到mysql

今天有一批存在文本文件里的数据要导入到mysql数据库中(大概50w条),数据是格式化的刚开始用mysql语句一个一个insert,发现慢的不行,后来网上搜了下,有mysql的命令可以实现此功能。load data infile 'C:/Users/luo/Desktop/resultFile' replace into table filmrele1000 fields

2013-12-12 21:07:42 1139

转载 SHELL 十三问

来源:www.chinaunix.net作者:网中人整理:HAWK.Li繁简转换:lilysulia原文出处:http://bbs.chinaunix.net/forum/24/20031209/218853.html                                   目                 录1) 为何叫做 shell ?..........

2013-11-14 21:19:31 1090

原创 shell中exec 与fork/source的区别

执行一个sh文件,有三种方式exec  test.sh./test.shsource test.sh区别:1、exec让script在同一进程上执行,这个进程之前在执行的任务被杀死2、fork/source会在新的进程中执行,执行结束后返回原线程demo:参考shell十三问的例子新建2个脚本1.sh#!/bin/bashA=Bech

2013-11-14 21:15:22 897

转载 Apache Commons工具集简介

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。我选了一些比较常用的项目做简单介绍。文中用了很多网上现成的东西,我只是做了一个汇总整理。一、Commons BeanUtilshttp://jakarta.apache.org/commons/beanutils/index.html说明:针对Bean的一个工具集。由于Bean

2013-11-12 15:41:21 680

转载 Shell学习经验

学习shell总感觉进入不到状态,请问大家能不能给一个循序渐进的步骤:以下是SHELL_HAT兄给的建议,我觉得也非常好,不知道有没有其它人的看法,我也做下参考:1、看《十二篇》,了解常用的命令有哪些。http://bbs.chinaunix.net/thread-434579-1-1.html2、在Shell版块尝试解答问题,比较自己的方案和别人的方案优劣之处在哪里。

2013-11-11 20:23:06 840

转载 MySQL性能优化的21个最佳实践

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。Ad

2013-11-03 16:43:49 682

转载 Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置

1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp 2、把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更改,否则会报错!) 3、把openfire_src文件夹里的三个无用的htm

2013-10-20 20:52:10 784

转载 zen-Coding在Notepad++中的使用

zen-Coding是一款快速编写HTML,CSS(或其他格式化语言)代码的编辑器插件,这个插件可以用缩写方式完成大量重复的编码工作,是web前端从业者的利器。 zen-Coding插件支持多种编辑器,如UltraEdit,Notepad++等。温馨提示:zen-Coding已经改名Emmet,并且搭建了一个新的网站:docs.emmet.io。zen-Conding下载地址:ht

2013-10-10 22:14:23 947

转载 mongodb基本命令2

首先要启动MongoDB shell工具,即bin下的mongo.exe 常用shell命令如下: 1、查询本地所有数据库名称 > show dbs;2、切换至指定数据库环境(若无指定的数据库,则创建新的库) > use dbtest;切换至dbtest库或创建名为dbtest的库3、查询当前库下的所有聚集集合

2013-09-30 21:31:03 587

转载 MongoDB基本管理命令

MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。下面通过熟悉MongoDB的基本管理命令,来了解MongoDB提供的DBMS的基本功能和行为。MongoDB命令帮助系统

2013-09-30 21:18:12 789

转载 java工程师15本必读书籍推荐

一、Java编程入门类  对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。1、《Java编程思想》下载地址:http://www.shangxueba.co

2013-09-01 20:06:16 630

转载 eclipse设置智能提示

eclipse智能提示今天有点时间,研究了一下MyEclispse的智能感知的功能。刚开始使用它时总是感觉如此不爽→智能感知功能太弱!与Visual Studio2008简直不是一个档次的!不过后来经过查看网上的资料发现它也并非如此的弱,就在上周我自己玩弄它时就发现可以通过如下设置来修改它的智 能感知的提示时间:Windows→Preferences→Java→Ed

2013-09-01 16:14:30 1066

转载 vim快捷键

一、移动光标1、左移h、右移l、下移j、上移k2、向下翻页ctrl + f,向上翻页ctrl + b3、向下翻半页ctrl + d,向上翻半页ctrl + u4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^5、移动光标到下一个句子 ),移动光标到上一个句子(6、移动到段首{,移动到段尾}7、移动到下一个词w,移动到上一个词b

2013-08-28 12:58:49 566

转载 Java虚拟机(JVM)中的内存设置详解

转自http://www.cnblogs.com/zcshan/archive/2011/03/10/jvm.html在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class

2013-08-16 17:34:43 546

转载 github 上常用的两种工作模式

文章开始前稍微介绍下GIT. Git --- The stupid content tracker, 傻瓜内容跟踪器。那么怎么理解呢?git首先是一个版本控制工具,这点和常用CVS, Subversion是一样的,而不同的是,他采用分布式版本控制库的方式管理。Git的速度非常快,可以很轻易创建分支,并且非常适合用于大项目,它有着非常出色的代码合并追踪能力,再同时它有很多小工具帮它管理版本库。在

2013-08-07 17:11:17 620

转载 git常用命令

转自:http://www.xbc.me/git-commands/取得Git仓库初始化一个版本仓库git initClone远程版本库git clone git@xbc.me:wordpress.git添加远程版本库origin,语法为 git remote add [shortname] [url]

2013-08-07 13:51:07 596

空空如也

空空如也

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

TA关注的人

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