自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JAVA】JAVA线程池——ThreadPoolExecutor

1 为什么使用线程池

2014-08-29 18:15:53 848

转载 JDBC读写Excel

package com.mysql.odbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement

2014-05-26 17:01:49 636

转载 【HttpClient4】 基本操作

1 简单连接示例          CloseableHttpClient httpClient = HttpClients.createDefault();        HttpGet httpGet = new HttpGet("http://www.baidu.com");        CloseableHttpResponse response = httpClie

2014-04-15 15:48:17 881

原创 【Mysql行锁】SELECT...FOR UPDATE和SELECT ...LOCK IN SHARE MODE

1 SELECT...FOR UPDATE锁的类型:读最新的可见数据,在每个它读取的行设置独占锁。     锁定范围:若SELECT的where条件中含有主键,则锁定搜索结果行;否则,锁定整个表。     排他性:多个独占锁不共存,也不可以与共享锁共存。故:SELECT...FOR UPDATE锁定的数据,在其他事务中无法通过 SELECT...FOR UPDATE 和 S

2014-03-20 19:28:39 894

转载 JDBC入门-1

什么是JDBC,在什么时候会用到它?JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。

2014-03-18 09:54:35 488

转载 【Mysql】mysql表分区3 —Hash分区

HASH分区主要用来确保数据在预先确定数目的分区中平均分布。在RANGE和LIST分区中,必须明确指定一个给定的列值或列值集合应该保存在哪个分区中;而在HASH分区中,MySQL 自动完成这些工作,你所要做的只是基于将要被哈希的列值指定一个列值或表达式,以及指定被分区的表将要被分割成的分区数量。要使用HASH分区来分割一个表,要在CREATE TABLE 语句上添加一个“PARTITI

2014-02-27 16:42:17 1784

转载 【Mysql】mysql表分区2 —List分区

MySQL中的LIST分区在很多方面类似于RANGE分区。和按照RANGE分区一样,每个分区必须明确定义。它们的主要区别在于,LIST分区中每个分区的定义和选择是基于某列的值从属于一个值列表集中的一个值,而RANGE分区是从属于一个连续区间值的集合。LIST分区通过使用“PARTITION BY LIST(expr)”来实现,其中“expr” 是某列值或一个基于某个列值、并返回一个整数值的表达

2014-02-27 15:48:21 652

转载 【Mysql】mysql表分区2 —Range分区

按照RANGE分区的表是通过如下一种方式进行分区的,每个分区包含那些分区表达式的值位于一个给定的连续区间内的行。这些区间要连续且不能相互重叠,使用VALUES LESS THAN操作符来进行定义。在下面的几个例子中,假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20。CREATE TABLE employees (    id INT NOT

2014-02-26 15:22:12 542

转载 【Mysql】mysql分区入门1—简介

一 什么是数据库分区? 数据库分区是一种物理数据库设计技术,DBA和数据库建模人员对其相当熟悉。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间。 分区的作用分区的作用:数据库性能的提升和简化数据管理(1) 在扫描操作中,mysql优化器只扫描保存数据的那个分区,以减少扫描范围获得性能的提高。

2014-02-26 15:15:29 515

转载 【Tomcat】Tomcat源码解读系列(一)——server.xml文件的配置

本文转自:http://lengyun3566.iteye.com/blog/1662281Tomcat是JEE开发人员最常用到的开发工具,在Java Web应用的调试开发和实际部署中,我们都可以看到Tomcat的影子。大多数时候,我们可以将Tomcat当做一个黑盒来看待,只需要将编写的Java Web工程进行部署即可,但是,在遇到一些比较复杂难解决的问题时,如果我们了解了Tomc

2014-02-17 10:50:37 513

转载 MySql数据库 索引原理

本文引用文章如链接:http://www.codinglabs.org/html/theory-of-mysql-index.html#more-100参考书籍:Mysql技术内幕本文主要是阐述mysql索引机制,主要是说明存储引擎Innodb第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分

2014-02-17 10:42:10 483

转载 【Java】配置Eclipse来调试并发代码

1       声明:本文是《 Java 7 ConcurrencyCookbook 》的第八章,作者: Javier Fernández González译者:郑玉婷校对:方腾飞、2       配置Eclipse来调试并发代码当今,几乎全部的程序员,不管使用什么程序语言,都会用IDE来创建应用。在相同的应用里,他们提供了很多有趣的功能来整合,例如:·        

2014-02-12 15:41:34 561

转载 【Java】New IO

1.   基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2.    Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层

2014-02-12 15:13:53 631

转载 【JVM】深入浅出Java垃圾回收机制

深入浅出Java垃圾回收机制 英文原文:cubrid,编译:ImportNew- 王晓杰对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模

2014-02-11 15:46:55 463

转载 Mysql隔离级别

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)       在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Di

2014-01-15 13:57:31 435

原创 【Java】 StackTraceElement的getLineNumber方法返回-1问题

WEB工程在eclipse编译发布到tomcat后,执行正常,日志打印时也可以通过StackTraceElement的StackTraceElement获得行号。  但是通过ant脚本打出来的包,运行时,日志打出的行号全部为-1,定位了下,发现问题如下:     >debug="true">    原理:   >debuglevel (类似于linux下,

2013-12-25 19:03:47 1350

转载 【Redis】 redis setnx命令实现分布式锁

Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists。这系列的命令非常有用,这里讲使用SETNX来实现分布式锁。用SETNX实现分布式锁利用SETNX非常简单地实现分布式锁。例如:某客户端要获得一个名字foo的锁,客户端使用下面的命令进行获取:SETNX lock.foo  如

2013-12-13 09:39:33 1584

转载 【RabbitMQ】三种类型的Exchange

Direct Exchange – 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记为“dog”的消息才被转发,不会转发dog.puppy,也不会转发dog.guard,只会转发dog。  Java代码  Channel channel = c

2013-11-30 09:47:39 743

转载 ClassLoader入门

类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Jav

2013-11-26 11:28:42 411

转载 【Java】ClassLoader简介

静态库、动态连接库程序编制一般需经编辑、编译、连接、加载和运行几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在连接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。为了克服这个缺点可以采用动态连接库。这个时候连接器仅仅是在可

2013-11-26 10:04:00 333

原创 Log4j手动启动方式

Log4j在使用前,必须进行加载配置文件,手动启动方式为:1 配置文件为properties文件:PropertyConfigurator.configure(URL url);2 配置文件未xml文件:DomConfigurator.configure(URL url);URL的获取方式,可以通过 ClassName.class.getReso

2013-11-22 11:03:28 1326

转载 【mysql】linux下,mysql的四种启动方式

mysql的四种启动方式:1、mysqld启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root客户端连接:mysql --defaults-file=/etc/my.cnformysql -S /tmp/mysql.sock2、mysqld_safe启动my

2013-10-30 10:55:36 700

转载 【linux】ssh配置文件详解

nux中/etc/hosts.deny文件可以配置限制访问ip等信息,它同apache中order deny,allow 差不多,不过写法有些不同。只允许192.168.1.1访问,这样写:sshd: ALL EXCEPT 192.168.1.1同理在/etc/下有个hosts.allow,同样可以进行配置。sshd_config配置详解sshd_config是Op

2013-10-30 10:10:19 2876

转载 【linux】 sudo设置详解

对linux有一定了解的人多少也会知道点关于sudo命令。sudo命令核心思想是权限的赋予 ,即某个命令的所属用户不是你自己,而你却有权限执行它。但是我们需要注意的是,虽然你有权限执行这个命令,但是在执行的时候却仍是以这个命令本身所属用户来完成的[注释1]。(su命令类似sudo命令,但是两者的差别在于前者su是一个粗粒度权限赋予,对su最好的理解我觉得是change user running

2013-10-30 09:22:20 603

转载 【转发】使用tomcat7创建异步servlet

一、简介  Servlet API 3.0 之前,需要使用类似Comet的方式来实现创建异步的Servlet。然而,Tomcat7 与 Servlet API 3.0 支持同步与异步方式。在同步Servlet中,一个处理客户端HTTP请求的线程将在整个请求的过程中被占用。对于运时较长的任务,服务器主要在等待一个应答,这导致了线程的饥渴,并且负载加重。这是由于即使服务器只是等待,服务端的线程

2013-09-13 17:38:02 868

转载 基于hadoop集群的hive 安装及异常解决方法

第一部分:软件准备与环境规划Hadoop环境介绍•Hadoop安装路径•/usr/local/hadoopHive环境规划•Hive安装路径•/usr/local/hive•Hive数据存放路径•hdfs•/user/hive/warehouse•Hive元数据•第三方数据库•derby mysql软件准备•OS•ubuntu•J

2013-07-22 14:23:32 991

转载 【转载】安全单例

1、时间和空间比较上面两种写法:懒汉式是典型的时间换空间,也就是每次获取实例都会进行判断,看是否需要创建实例,浪费判断的时间。当然,如果一直没有人使用的话,那就不会创建实例,则节约内存空间。饿汉式是典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断了,节省了运行时间。2、线程安全(1)从线程安全性上讲,不加同步的懒汉式是线程

2013-07-15 11:07:29 421

转载 [Hadoop] WordCount运行详解

1、MapReduce理论简介 1.1 MapReduce编程模型  MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是"任务的分解与结果的汇总"。  在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;

2013-06-04 17:30:19 431

转载 Zookeeper入门

安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。单机模式单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/

2013-05-31 15:43:38 632

转载 [MYSQL] show processlist命令详解

processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。 1. 进入mysql/bin目录下输入mysqladmin processlist; 2. 启动mysql,输入show processlist; 如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的

2013-05-25 11:53:10 427

转载 STRUTS2.3.4最基础的jar包-必须添加完整

struts2.3.4,jar包必须添加完整,类容如下:asm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcommons-fileupload-1.2.2.jarcommons-io-2.0.1.jarcommons-lang3-3.1.jarcommons-loggin-1.1.1.jar

2013-05-21 15:38:41 562

转载 HTTP Keep Alive分析与优化总结

一、什么是HTTP Keep Alive  HTTP Keep-Alive 很大程序上被误解了,下面介绍一下它在HTTP/1.0和HTTP/1.1版本下是如何工作的,以及其在JAVA中的运行原理及优化建议。HTTP是一个请求响应模式的典型范例,即客户端向服务器发送一个请求信息,服务器来响应这个信息。在老的HTTP版本中,每个请求都将被创建一个新的客户端->服务器的连接,在这个连接上

2013-05-13 15:39:36 613

原创 【JackSon Json】 入门1

Jackson json依赖三个jar包,下载地址为:     http://wiki.fasterxml.com/JacksonDownload1 bean -->json 默认        ObjectMapper om = new ObjectMapper();        String rsp = om.writeValueAsString(obje

2013-05-09 11:56:24 1716

转载 【c3p0】c3p0配置详解

3  30  1000  false   属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试   使用。Default: null--> Test   保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试   获取连接失败

2013-05-08 15:15:46 472

转载 javax.annotation.Resource注解

当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦。这时候我们可以使用注解这种机制来为类配置注入对象。       java为我们提供了 javax.annotation.Resource这个注解。       spring框架提供了org.springframework.beans.factory.annotation.Autowired。

2013-05-08 14:21:07 4428

转载 【spring注解】spring注解入门

一、各种注解方式1.@Autowired注解(不推荐使用,建议使用@Resource)@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。要使@Autowired能够工作,还需要在配置文件中加入以下Xml代码Xml代码

2013-05-08 13:36:33 900

转载 【spring】 scope入门

scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。打个比方吧!我们都是处在社会(容器)中,如果把中学教师作为一个类定义,那么当容器初始化这些类之后,中学教师只能局限在中学这个场景中,中学,就可以看做中学教师的scope。Spring容

2013-05-08 12:48:34 469

转载 【设计模式】bridge模式

1. 概述      在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:•第一种

2013-05-07 10:48:12 601

转载 【设计模式】策略模式

策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一 个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结 构。  这个模式涉及到三个角色:  ●  环境(Context)角色:持有一个Strategy的

2013-05-02 15:30:00 426

转载 【设计模式】 简单工厂模式

简单工厂模式解释:        简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图:        简单工厂模式中包含的角色及其相应的职责如下:

2013-05-02 14:31:36 405

空空如也

空空如也

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

TA关注的人

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