自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DR的专栏

烂笔头的星光

  • 博客(87)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL连接缓慢,打开缓慢原因

问题状况:最近由于服务器变换了网段,导致IP地址变换,变化后使用MySQL客户端连接MySQL服务器和在客户端中打开表的速度非常慢(无论表的大小),甚至连接超时,但是直接登录到服务器在本地连接MySQL,速度则正常。问题原因:MySQL数据库收到一个网络连接后,首先拿到对方的IP地址,然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名在权限系统里面进行权限判断。反向

2015-02-26 20:30:17 5848

原创 UPDATE...WHERE...ORDER BY...LIMIT语句

在MySQL中尽量少使用UPDATE ...WHERE ...ORDER BY ...LIMIT语句,原因是MySQL会对where条件匹配的所有记录加上X锁,如果多个线程同事执行这条语句,就会有非常大的概率发生死锁,而且MySQL服务器不能自动的去解除这种死锁。下面的例子证实了这一点,先创建一张record表,再插入几条记录mysql> create table record(

2015-01-31 12:16:22 6303 1

原创 MySQL慢查询

慢查询(slow log)可以帮助我们定位到特定的SQL语句进行SQL语句层面的优化,例如,慢查询日志会记录那些执行时间超过给定值得SQL语句,从而定位到问题的所在。开启慢查询查看MySQL数据库实例关于慢查询的参数mysql> show variables like '%slow%';+---------------------------+--------------------

2015-01-02 17:15:42 1094 1

原创 MySQL参数

MySQL在启动的时候会去加载初始化一系列的参数文件,这些参数动态的决定了MySQL运行时的特性。MySQL中的参数是由一个个键值对(key-value)组成的,可以分为以下两类:动态参数:可以在MySQL实例运行时改变其value的值。静态参数:只能在MySQL实例启动的时候进行初始化,运行期间其value是只读的,不可改变。MySQL实例在启动的时候是按照一定的顺序去读取这

2014-11-30 22:15:11 2335

原创 SQL编程之生日问题

在学习MySQL的时候,一个较为经典的SQL编程题目就是生日问题,已知某个用户的出生日期和当前日期,计算他最近的生日。一般需要考虑两个问题闰年2月是29天今年的生日是否过完例如:某人的生日是1992年2月29日,当前若当前日期是2004年1月2日,那么他的最近生日是2004年2月29日;若当前日期是2004年3月3日,那么他最近的生日则是2005年3月1日。现在,利用S

2014-10-31 20:09:56 1952

原创 Linux进程通信——管道

进程间通信(IPC:Inner Proceeding Communication)进程是操作系统实现程序独占系统运行的假象的方法,是对处理器、主存、I/O设备的抽象表示。每个进程都是一个独立的资源管理单元,每个进程所看到的是自己独占使用系统的假象,因此各个进程之间是不能够直接的访问对方进程的资源的,不同的进程之间进行信息交互需要借助操作系统提供的特殊的进程通信机制。进程之间的通信,从物理上

2014-10-13 20:49:32 1606

原创 Linux进程

Linux进程进程是Linux中事务管理的基本单元,所有的进程都拥有自己的独立处理环境和系统资源,并且各进程之间不可以直接访问对方的资源,进程之间的交流需要通过特定的机制(IPC)。在Linux系统的内核头文件中(/usr/src/kernels/内核版本/include/linux/sched.h)定义了进程控制块(PCB)结构体struct task_struct来管理每个进程的资源。

2014-10-11 13:19:17 1836

原创 C文件IO

ANSI C标准几乎被所有的操作系统支持,ANSI C标准提供了完善的I/O函数,使用这些I/O操作我们可以控制程序的输入输出、读写系统磁盘文件。本文记录了用户进程I/O缓冲介绍、文件的读写、文件定位操作等内容。库函数与系统调用文件是位于磁盘上的,如何在运行的程序(进程)中控制文件的读写,通过下面的这张图,我们可以看到应用程序如何控制系统资源(包括磁盘中的文件)的大概的原理。操

2014-10-03 20:17:55 1789

原创 C变量和函数的存储类型

C变量和函数的存储类型在上一篇《C程序内存管理》的文章中,已经知道了C语言编译后的可执行文件的存储结构以及运行时的内存布局,本文则记录C语言中变量和函数的存储类型,以及在内存中的一些行为。C语言中变量的声明/定义格式如下:存储类型    类型修饰符    数据类型    变量名;存储类型:用来指明变量的存储位置,即运行该变量在哪一段分配内存空间,常见的存储位置有auto、ext

2014-10-02 13:18:30 3853 2

原创 C程序内存管理

C程序的内存管理熟悉Java语言的肯定知道,Java中内存管理是由虚拟机帮助我们完成的,在C/C++中可不是这样,程序员需要自己去分配和回收内存空间。本文记录了C程序在内存中存储结构、C变量和函数常见的存储类型、分配和回收内存等方面的内容。以下C程序所使用的编译器版本是GCC 4.4.7。从一个C程序说起文件的结构对于以下这段Hello.c程序再熟悉不过了#includei

2014-10-02 01:38:17 3267

原创 Java中由substring方法引发的内存泄漏

在Java中我们无须关心内存的释放,JVM提供了内存管理机制,有垃圾回收器帮助回收不需要的对象。但实际中一些不当的使用仍然会导致一系列的内存问题,常见的就是内存泄漏和内存溢出内存溢出(out of memory ):通俗的说就是内存不够用了,比如在一个无限循环中不断创建一个大的对象,很快就会引发内存溢出。内存泄漏(leak of memory):是指为一个对象分配内存之后,在对象已经不在使

2014-09-09 14:53:47 4641 4

翻译 HashMap vs HashTable

HashMap 与 HashTable 的差异?能不能让HashMap同步?HashMap和HashTable之间的差异在Java面试中经常被提问到,以此来检验面试者是否正确理解容器类的用法以及是否知道怎么做出选择。HashTable是一个遗留的容器类,存在于Java API中很长时间了,并且在Java4的时候被重构了,从那时起,HashTable成为了Java集合框架(Java Collec

2014-09-06 15:57:52 1412

原创 HashMap源码解析

HashMap是Java中使用最多的几种容器之一,和其他List、Set、Queue的各种实现相比,HashSet并没有实现Collection接口,而是实现的是Map接口。HashMap是基于哈希表的Map接口的实现,维护的一个个key - value(键值对)的映射关系,通过使用哈希算法使得对容器中的元素访问更加迅速。在推出HashMap之前,JDK中使用的哈希实现是HashTable,H

2014-09-06 02:07:11 2544

原创 观察者模式

观察者模式(Observer Pattern)在项目中经常会被使用到,也被叫做发布订阅模式,也就是说  观察者 =  发布者 + 订阅者GoF的《设计模式》中对观察者是这样描述的:Define a one-to-many dependency between objects so that when one object changes state, all its depende

2014-09-05 00:18:49 1131 1

原创 一个Shell重定向的笔记

进程读文件之前,需要先打开文件,进程打开文件的时候,Linux会把这个文件关联到一个数字(称之为文件描述符),文件描述符是打开的文件在进程表中的一个索引。每个进程都有自己的一组已经打开的文件和各自的文件描述符,一旦打开某个文件,进程就可以通过文件描述符进行读写该文件。当进程不在需要文件的时候,它必须关闭文件,并且释放文件描述符。Linux进程在启动的时候会打开3个文件:标准输入(文件描述符0),标准输出(文件描述符1),标准错误(文件描述符2)。子进程会继承父进程的文件描述符,可以使用命令ls /p

2014-09-03 22:20:50 1297

原创 MySQL改变表的存储引擎

MySQL提供了多种数据库存储引擎,存储引擎负责MySQL数据库中的数据的存储和提取。不同的存储引擎具有不同的特性,有时可能需要将一个已经存在的表的存储引擎转换成另外的一个存储引擎,有很多方法可以完成这种转换,每一种方法都会有优缺点,应当根据实际情况去选择,下面讲述三种转换MySQL表引擎的方法:导入和导出为了更好的控制转换的过程,可以是使用mysqldump工具将数据导出到文件,然后修改文件中的CREATE TABLE语句的ENGINE选项,注意修改表名,因为一个数据库中不可能有两个同名的表,即时它们使

2014-09-01 21:46:25 1432 1

原创 应用线程池ThreadPoolExecutor

在配置和调整应用线程池的时候,首先考虑的是线程池的大小。线程池的合理大小取决于未来提交的任务类型和所部署系统的特征。定制线程池的时候需要避免线程池的长度“过大”或者“过小”这两种极端情况。线程池过大:那么线程对稀缺的CPU和内存资源的竞争,会导致内存高使用量,还可能耗尽资源。线程池过小:由于存在很多可用的处理器资源还未工作,会对吞吐量造成损失。精密的计算出线程池的确切大小是很困难的,一般我们会估算出一个合理的线程池大小。

2014-08-31 17:41:04 2071

原创 Java Collections Framework

通常我们会用数组去保存一些基本数据类型,数组是编译器支持的类型,但是数组的一个明显缺点就是具有固定尺寸,而在一般情况下,只有在程序运行的时候,我们才能知道要保存的具体数目。Java类库提供了一套相当完善的容器框架(Collections Framework)来解决这个问题。其中基本的类型是List、Set、Queue和Map。这些对象类型也被称为集合类,但是由于Java中使用了Collection这个名称指代该类库的一个子集,所以一般使用更广泛的术语“容器”来称呼它们。容器的基本任务是保存对象,更准确的

2014-08-30 18:09:51 966

原创 Executor框架

Java多线程并发下大多围绕着执行任务进行管理的,所谓任务就是抽象的、离散的工作单元。这样将工作分为任务的创建和任务的执行,而且理想状态下任务是独立的活动,它的工作不依赖于其它任务的状态、结果和边界效应。任务的独立有利于并发性,如得到相应的资源,从而可以并行的执行。任务的执行策略:顺序执行、每任务每线程

2014-08-26 17:20:36 1261

原创 Java并发——Callable和Future

Executor框架将工作单元划分为任务,即任务是逻辑上的工作单元,而线程是任务异步执行的机制。Runnable是任务的一个抽象,并且理想状态下任务是独立的执行,但是Runnable的run( )不能返回一个结果或者抛出一个受检查的异常,这与我们有些实际任务是不相符的。在通过线程或者executor执行Runnable任务中,不仅仅是不能返回任务的执行结果,有时我们希望可以控制某个任务,或取消或终止,但在executor中一旦提交任务,我们将很难单一的控制任务的生命周期,虽然ExecutorService扩

2014-08-26 15:06:27 1925

原创 Timer与ScheduledThreadPoolExecutor

在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录。在JDK中提供了两种方法去创建延迟周期性任务。TimerTimer是java.util包下的一个类,在JDK1.3的时候被引入,Timer只是充当了一个执行者的角色,真正的任务逻辑是通过一个叫做TimerTask的抽象类完成的,TimerTask也是java.util包下面的类,它是一个实现了Runnable接口的抽象类,包含一个抽象方法run( )方法,需要我们自己去提供具体

2014-08-25 22:49:37 2479

原创 策略模式

策略模式(Strategy Pattern)是相对比较简单的一种设计模式,是通过定义一组算法,并且将每个算法封装到具有共同接口的独立类中,从而使它们之间可以相互转换,使算法在不影响客户端的情况下发生变化。策略模式体现了这样两个原则——封装变化和对接口编程而不是对实现编程。设计模式的作者把策略模式定义如下:Define a family of algorithms, encapsul

2014-08-22 23:25:53 597

原创 先行发生原则(Happens-before)

先行发生原则(Happens-Before)是判断数据是否存在竞争、线程是否安全的主要依据。先行发生是Java内存,模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,那么操作A产生的影响能够被操作B观察到。Java内存模型中存在的天然的先行发生关系:1. 程序次序规则:同一个线程内,按照代码出现的顺序,前面的代码先行于后面的代码,准确的说是控制流顺序,因为

2014-08-21 22:12:11 3568

原创 装饰模式

装饰模式是23种设计模式之一,英文名叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。通过使用装饰模式,可以在运行时扩充一个类的功能。原理是:增加一个装饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为装饰类的构造函数的参数。装饰类实现新的功能,但是,

2014-08-19 19:01:51 954

原创 原型模式

原型模式(Proxy Pattern)是创建型模式(Creation)的一种,创建型型模式是对类的实例化过程的抽象化,能够提高对象的创建和管理职责。原型模式的英文原话是:Specify the kinds of objects to create using a prototypical instance,and create new object by copying this prot

2014-08-18 15:02:01 1162

原创 建造者模式

建造者模式(Builder Pattern)是创建型型模式(Creational Pattern)的一种,与工厂方法、抽象工厂等创建型模式不同,建造者模式需要关注一些创建的细节,它将产品的内部表象和产品的生产过程分割开来,从而使得一个创建的过程可以创建出具有不同表象的产品对象。建造者模式的英文原话是:Sepatate the construction of a complex object

2014-08-17 15:31:43 784 2

原创 抽象工厂模式

抽象工厂模式是一个比较常用的设计模式,它的英文原话是:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.意思是:为创建一组相关和相互依赖的对象提供一个接口,而且无须指定它们的具体类。抽象工厂模式的UML图如下

2014-08-12 00:52:54 713

原创 工厂方法模式

工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而克服了它的缺点。首先,在工厂方法模式中核心工厂类不在负责所有产品的创建,而是将具体创建的工作交给子类去做。这个核心类则称为一个抽象工厂角色,不接触具体产品类实例化的细节。当引入新的产品的时候,就可以在不修改具体工厂角色,这一特点是的工厂方法模式有着超越简单工厂模式的优越性。工厂方法模式的定义:Define an interface for creating an object, but let subc

2014-08-11 21:07:53 895

原创 简单工厂模式

工厂模式工厂方法模式又叫虚拟构造函数模式或者多态性工厂模式。工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创见性工作推迟到子类中去。工厂模式可以分为简单工厂、工厂方法和抽象工厂模式。简单工厂模式严格说简单工厂模式不在23种GoF设计模式之中,它是由工厂决定创建具体类的实例。一个工厂类处于对产品类实例化的中心位置,它知道每一个产品,决定哪一个产品类应当被实例化。优点:允许客户端(具体产品类)相对独立于产品实例的创建过程,当引入新的产品的时候,不需要修改现有的产品类。缺点:由于对象的创建完全由

2014-08-11 02:24:16 664

原创 代理模式

代理模式(Proxy Pattern)是结构型模式(Strutural)的一种,结构型模式模式描述如何将类或者对象结合在一起形成更大的结构。结构型模式的特点是通过组合类或者对象产生更大的结构以适应更高层次的逻辑需求。代理模式的目的是:Provide a surrogate or placeholder for another object to control access to it.意

2014-07-27 15:11:34 693

原创 Spring AOP

软件开发的时候,提倡“高内聚,低耦合”,如何减少模块之间的耦合程度是一件麻烦的事情。比如,有时候我们的业务需要在某些操作的时候加上一些记录日志、加上一些验证、加上保存缓存等等。这些操作都是夹杂在整个业务之中的,如果把这些业务代码也写在一起,就变成了“大杂烩”,模块之间的耦合程度非常的高,使得开发不能专注于某一个方面,出了问题也不好调试。Spring AOP(Aspect Oriented Pr

2014-07-27 00:27:01 861

原创 Spring IoC

控制反转(IoC)在面向对象编程(OOP)的世界里,几乎所有的东西都被抽象成对象,很多情况下完成一项事情需要多个对象的参与,并且对象之间往往不会孤立的存在,会存在各种的依赖关系,当业务的规模不是很大的时候,这种我们可以自己去管理对象之间的依赖,但是当业务规模达到一定程度的时候,对象之间的关系错综复杂的时候,管理这些关系是我们无能为力的,或者很容易出错的,并且在软件编程的世界里还提倡“高内聚,低耦合”,过度的耦合会带来一系列的问题。

2014-07-26 17:32:05 618

原创 Java类加载

类加载的过程    先从一个HelloWorld说起,对于一个HelloWorld.java文件,起初我们在dos命令行下面使用javac HelloWorld.java编译源程序,生成一个HelloWorld.class的字节码文件,然后我们使用java HelloWorld就可以执行该程序,可是从我们硬盘上的.class文件是如何变成内存中的执行指令的呢?再细分的一点说,我们知道Java的

2014-07-25 20:03:16 1082

原创 单例模式

创建型模式创建型模式(Creation Pattern)是对类的实例化过程的抽象化,能够提供的对象的创建和管理职责,设计模式中创建型模式共有5种:单例模式工厂方法抽象工厂模式建造者模式原型模式1.2单例模式(Singleton Pattern)单例模式关注的是对象创建的次数和何时创建对象,对象创建的次数正如其名是1个,何时创建则衍生出单例模式的两种形式,饿汉模式和懒汉模式。

2014-07-18 22:06:10 842

原创 Linux启动过程

Linux的启动过程:jia'dian

2014-07-14 23:40:10 586

原创 hosts文件的修改

hosts文件的作用:当我们在浏览器输入一个域名地址的时候,需要转换成IP地址后才能访问,一般是根据域名请求DNS服务器,得到IP地址。对于一个经常访问的域名,这样做很耗时,所以,可以将该域名以及它的IP地址写入到hosts文件中去,系统每次请求解析域名,都会先在hosts文件中查询有没有对应的IP地址,如果有则直接使用,不用再去请求DNS,如果没有则去请求DNS解析。利用hosts文件我们还可以将一些恶意域名屏蔽掉,使它重定向到另外的一个IP地址。路径:在windows7下hosts文件的路径

2014-07-13 10:35:34 816

原创 AWK模式处理语言

AWK是一种模式扫描和处理语言,它处理一个或多个文件,以查看这些文件中是否含有匹配指定模式的记录,每次发现有匹配的记录就执行与模式相对应的动作,与过程式的编程语言相反,AWK是一种数据驱动语言:用户描述想要处理的数据并告诉AWK如何出来这些数据。AWK与Sed最大的区别在于,AWK对于结构化文件的处理能力,所谓结构化文件是指划分为记录和域的文件。AWK对格式化报表的生成提供很多强大的支持。

2014-07-05 18:07:05 1064

原创 Sed的使用

Sed是一种非交互式的流编辑器(Stream Editor),可动态编辑文件。所谓非交互式是说,sed和传统的文本编辑器(如Vi、Emacs)不同,并非和使用者直接交互,sed处理的对象是文件的数据流,sed从文本的一个文本行或者标准输入读取数据,将其复制到缓冲区,然后读取命令行或者脚本的第一个命令,对缓冲区中的数据进行操作,所以sed是不会改变源文件中的任何内容。sed的工作模式是对每一行数据,若符合指定的样式,就执行相应的操作。二、使用场景编辑相对交互式文本而言较大的文件;编辑命令太复杂,在交互式

2014-07-02 21:05:35 1123

原创 Linux压缩和打包归档命令

一、打包解包命令:tar命令所路径:/bin/tar执行权限:所有人语法格式:tar[选项] [目录]选项: -c create创建.tar文件-x 解压tar包-v verbose显示过程-f 指定压缩后的文件名-z 调用gzip压缩或解压缩功能打包或解包,后缀格式为.tar打包使用tar -cvf 打包后的文件名称 需要打包的文件集 解包使用tar -xvf 需要解压的tar包-C 解压到路径

2014-06-30 22:22:16 3168

原创 MySQL存储引擎

和大多数数据库不同,MySQL中有一个插件式存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎。MySQL和其他数据库的区别一览其中,MySQL中并不是所有的存储引擎都支持上述功能,各存储引擎之间的差异如下:可以在创建表的时候指定表的存储引擎,如果不指定,则使用默认的存储引擎,使用show engines \G命令查看MySQL支持的存储引擎以及默

2014-06-15 16:08:38 981

staruml-5.0-with-cm.exe

staruml-5.0-with-cm.exe 安装 工具

2014-07-19

w3cl在线测试工具

网上的

2013-03-27

空空如也

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

TA关注的人

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