自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ykp的专栏

厚积薄发

  • 博客(72)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 Tomcat文件服务器搭建过程详解

当我们使用tomcat上传和下载文件的时候,如何不想放在服务器的webapps/ROOT下,有两种配置方式:方式一:在conf\server.xml中添加如下信息:<Context path="/demo/ykp/file" docBase="D:\upload\ykp"></Context>如下图: 在D:\upload\ykp中存放一些文件: 此时重启tomcat,即可通过如下方式访问文件:

2017-09-26 23:11:29 3911 1

转载 多线程环境下生成随机数

生成伪随机数据Java里有伪随机型和安全型两种随机数生成器。伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分。安全随机生成器在底层依赖到操作系统提供的随机事件来生成数据。安全随机生成器需要生成加密性强的随机数据的时候才用它;生成速度慢;如果需要生成(Linux /dev/random 就是个这样的安全随机生成器)大量随机数据,可能会产生堵塞需要等待外部中断事件。而伪随机生成器,

2016-06-07 17:02:36 5624

原创 通过匿名内部类overrides

在查看jdk源码的过程中,我们会经常看到如下形式的代码:通过分析我们可以知道这是一种overrides的一种实现方式。测试代码如下:package com.ykp.test;public class A { public void printName() { System.err.println("printName"); }}package com.ykp.tes

2016-06-07 15:55:41 727

转载 Java concurrency – CountDownLatch Example

正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:CountDownLatch是什么CountDownLatc

2016-06-07 10:06:07 560

原创 oracle批量insert

oracle中的批量操作有如下两种情况:插入的数据集合为一个子查询如果我们需要插入的数据集合来自数据库,则我们可以采用如下形式来就行批量插入:insert into order_info (o_id, o_name, addtime) (select t.username, t.realname, sysdate from ITM_USER t where t.userna

2016-06-03 10:39:31 10160

原创 oracle的merge into操作详解

merge into的使用场景一段业务逻辑,需要先判断一条记录在数据库中是否有存在,若存在则更新该记录,若不存在则插入记录。 应用之前的做法是: 1、先用条件判断记录在数据库中的个数。 2.1、若count(*)>0,则执行UPDATE操作。 2.2、若count(*)=0,则执行INSERT操作。 或 1、先插入记录。 2.1、若报ORA-001主键错误,则存在记录,此时执行UPDA

2016-05-27 17:34:30 9655

转载 序列作为主键使用的原理、优缺点讨论

这几天和同事一直在讨论关于表设计中主键选择的问题,用sequence作为主键究竟有什么好处,又有什么缺点,尤其是有些事务场景上下文需要用到创建的序列值,如何用?其实我想说的是,可能只是一个很简单的概念,可能深入理解,还是有很多未知的知识,当然也就可能会有一些容易忽略但又可能很关键的坑,只有碰了才知道。。。 以下是总结摘要,如有疏漏,还请过路的各位大侠赐教。1、首先说下seq.nextval主要有以

2016-05-26 18:22:40 1676

转载 oracle sequence的概念及作用

sequence概念及作用sequence是用来在多用户环境下产生唯一整数的数据库对象。序列产生器顺序生成数字,它可用于自动生成主键值,并能协调多行或者多表的主键操 作。没有sequence,顺序的值只能靠编写程序来生成。先找出最近产生的值然后自增长。这种方法要求一个事务级别的锁,这将导致在多用户并发操作的环 境下,必须有人等待下一个主键值的产生。而且此方法很容易产生主键冲突的错误,如下图: 如上

2016-05-26 16:56:38 4838

转载 jenkins配置权限不对导致无法登陆的重置方法

转自:http://blog.sina.com.cn/s/blog_56d8ea90010147z3.html找到.jenkins/config.xml文件: 替换为: 1、 这个权限对应“任何用户可以做任何事(没有任何限制)”2、 这个权限对应“登录用户可以做任何事”3、 hudson.model.Hudson.Administer:test hudson.scm.SC

2016-05-25 18:34:16 2956

原创 Jenkins+maven+svn+tomcat操作手册(四)

上接:Jenkins+maven+svn+tomcat操作手册(三)上一篇我们进行的是测试,接下来我们进行一个总结。1.6 出现的问题1.6.1 插件列表为空第一次安装的时候,无论是通过war包方式还是通过msi的方式,都是可以自动加载插件列表的,但是第二次为了编写这个文档,把之前的安装删了之后,再次安装的时候,死活就是加载不了,因为网络的问题,一直加载不出来。昨晚回家,在自己的电脑上试了下,确实可

2016-05-02 17:45:05 1249

原创 Jenkins+maven+svn+tomcat操作手册(三)

上接:Jenkins+maven+svn+tomcat操作手册(二)部署完成之后,我们来进行测试1.5 测试注意:在构建之前要启动tomcat,因为jenkins需要通过网络访问tomcat,然后把war文件自动部署到tomcat的webapps目录下。下面开始构建,可以等着自动去build,也可以手工去触发一次,手工触发如下图所示的操作:构建完成之后,点击Name下边的连接:然后点击Console

2016-05-02 17:39:49 10507

原创 Jenkins+maven+svn+tomcat操作手册(二)

上接:Jenkins+maven+svn+tomcat操作手册(一)接下来,我们进行部署操作:1.4 部署部署之前,我们需要把我们创建的maven项目发布到我们的svn服务器上。 我是在自己本机安装了svn客户端和服务器,下面是svn服务器上的测试项目:下面我们开始把springtest部署到jenkins,从而实现自动部署springtest的war文件到tomcat的目标。点击新建:Item名

2016-05-02 17:01:01 7169

原创 Jenkins+maven+svn+tomcat操作手册(一)

1.1 概述在企业开发中最常用的build工具是maven,因此绝大多数项目都是采用maven来进行开发的。在项目开发过程中,经常需要做的事情就是项目的编译、打包和发布等这些重复性的事情。如何做到自动化的处理这些繁琐与无聊的工作,就是本文需要解决的问题。解决的方案就是使用jenkins这个工具来帮助我们。1.2 准备条件前提是电脑上已经具备java开发的环境:jdk+eclipse(或MyEclip

2016-05-02 16:39:29 8719

原创 Dynamic Web Module 3.0 requires Java 1.6 or newer

使用eclipse创建一个maven项目:在把它转换成Dynamic Web Module的时候,如果我们选择Dynamic Web Module 3.0(之前是2.5),则会提示如下图所示的错误:下边的红色提示:Dynamic Web Module 3.0 requires Java 1.6 or newer出现这个错误的原因是项目所采用的jre版本问题,解决方案是修改jre为1.6 or new

2016-04-21 16:17:24 981

原创 Java发送Email

package com.ykp.test;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message.RecipientType;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication

2016-03-29 12:22:19 470

原创 java使用poi操作Excel

package com.ykp.utils;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;imp

2016-03-29 10:28:21 527

原创 MySql中的存储过程

存储过程如何接收并处理集合类型的参数呢?比如,我想实现id in(ids)类型的操作,该如何实现呢?此时我们可以把id的集合拼成一个字符串,以字符串的形式传递进来,然后在存储过程里使用WHERE FIND_IN_SET(tbname.field,ids)即可:#创建数据表CREATE TABLE grade ( g_id VARCHAR(100) NOT NULL, s_name VARC

2016-03-20 22:59:13 332

转载 Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析

一、问题:数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求。二、解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库(这里仅从数据缓存方面考虑,当然,后期可以采用Hadoop+HBase+Hive等分布式存储分析平台)三、主流解Cache和数据库对比: 上述技术基本上代表了当今在数据存储方面所有的实现方案,其中主要涉及到了普通关系型数据库

2016-03-16 22:33:54 560

转载 mysql索引的类型和优缺点

现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 注:[1]索引不是万能的!索引可以加快数

2016-03-16 21:11:26 404

原创 java中静态代码块,非静态代码块,构造函数之间的执行顺序

它们之间的执行顺序为:静态代码块—>非静态代码块—>构造方法。静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。静态代码块和非静态代码块都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,如果有多个,JVM将按照它们在类中出现的先后顺序依次执行它们。非静态代码块跟非静态方法一样,

2016-03-15 16:05:33 2521

转载 浅谈Java中的hashcode方法

哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率。在Java的Object类中有一个方法:public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。为何Object类需要这样一个方法?它有什么作用呢?今天我们就来具体探讨一下hashCode方

2016-03-13 21:38:40 360

原创 Arrays和Array,Collections和Collection

Arrays: Arrays的包结构为:java.util.Arrays这个类提供了各种各样操作数组(比如排序和查询)的方法。此类还包含一个允许将数组作为列表来查看的静态工厂。除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。Array: Array的包结构为:java.lang.reflect.ArrayArray 类提供了动态创

2016-03-13 20:32:11 470

转载 Java的native方法

一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。 "A native meth

2016-03-13 00:11:51 395

原创 对String的深入理解

我们先来看一段代码:package com.ykp.test;public class StringTest { public static void main(String[] args) { String str = "TEST"; change(str); System.out.println(str); } public

2016-03-12 14:54:59 790

转载 Java中整型的缓存机制

本文将介绍Java中Integer的缓存相关知识。这是在Java 5中引入的一个有助于节省内存、提高性能的功能。首先看一个使用Integer的示例代码,从中学习其缓存行为。接着我们将为什么这么实现以及他到底是如何实现的。你能猜出下面的Java程序的输出结果吗。如果你的结果和真正结果不一样,那么你就要好好看看本文了。package com.javapapers.java;public class Ja

2016-03-11 12:22:09 385

原创 冒泡排序

package com.ykp.test;/** * 冒泡排序: * 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 * 3.针对所有的元素重复以上的步骤,除了最后一个。 * 4.持续每次对越来越少的元素重复上面的步骤,直到没有任

2016-03-11 11:06:47 300

原创 快速排序

package com.ykp.test;/** * 快速排序:快速排序采用的思想是分治思想。 * * 快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 * 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序

2016-03-11 10:47:06 399

转载 ConcurrentHashMap原理分析

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅。

2016-03-10 23:52:38 413

转载 Spring MVC请求处理流程图分析

Spring MVC请求处理流程图如下所示:从接受请求到返回响应,Spring MVC框架的众多组件都伸胳膊挽袖子行动起来,各司其职,有条不紊地完成份内的工作。在整个框架中,DispatcherServlet处于核心的位置,它负责协调和组织不同组件,共同完成请求响应的工作。和大多数Web MVC框架一样,Spring MVC通过一个前端Servlet处理器接收所有的请求,并将具体工作委托给其它组件进

2016-03-10 21:25:23 2537

原创 Weblogic和Tomcat对比

相同点WebLogic和Tomcat都是基于java的基础架构来满足实时处理需求,不同的版本与jdk版本兼容和有所不同;因为都是要和前台交互,所以他们都基于sun公司的servlet来实现的不同点费用上Tomcat开源免费。WebLogic不开源不免费。扩展性在扩展性方面WebLogic是远远超越了Tomcat。功能性WebLogic更加强大。Tomcat只能算Web Container,是官方

2016-03-10 14:50:03 1172

原创 hibernate与mybatis对比

首先简单介绍下两者的概念:Hibernate :Hibernate 是当前最流行的ORM框架,对数据库结构提供了较为完整的封装。Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于POJO 与SQL之间的映射关系。其次具体从几个方面说一下两者的区别:1.两者最大的区别:针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。针对高

2016-03-10 14:25:26 363

原创 hibernate和mybatis比较

第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hibernate

2016-03-09 21:43:00 345

转载 线程池和数据库连接池的原理

当客户端请求的数据量比较大的时候,使用线程池可以节约大量的系统资源,使得更多的CPU时间和内存可以高效地利用起来。而数据库连接池的使用则将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。本文我们主要就介绍一下线程池和数据库连接池的原理,接下来我们一起来了解一下这一部分内容。线程池的原理:其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:

2016-03-08 20:51:34 423

原创 随着input里边值的变化而触发js事件

要达到“随着input里边值的变化而触发js事件”的效果,一直以为是使用onchange事件。 实际上这是对onchange的误解,onchange事件的原理如下:当获取焦点的时候,保存当前的值,在失去焦点的时候进行判断,如果当前的值和之前保存的值不一样则触发onchange,反则反之。而目前我们是需要在没有失去焦点的时候触发事件,此时我们就应该使用onkeyup事件,即在键抬起的时候触发。

2016-03-07 11:12:55 4789

原创 org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 ti

在hadoop集群上运行pig报如下错误:2016-02-01 10:33:50,141 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 0% complete2016-02-01 10:33:50,144 [main] INFO org.apache.pi

2016-02-01 12:07:17 4302 1

转载 Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

初接触Hadoop技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?….请教了^_^没关系这里我帮大家理清每个技术的原理和思路。Pig一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走

2016-01-28 16:57:41 524

原创 .proto文件配置详解

.proto示例代码如下:package tutorial;option java_package = "com.example.tutorial";option java_outer_classname = "AddressBookProtos";message Person { required string name = 1; required int32 id = 2;// Uni

2016-01-28 09:20:43 2592

转载 HBase常用操作之namespace

1、介绍 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。2、namespace HBase系统默认定义了两个缺省的namespace hbase:系统

2016-01-14 10:57:17 527

原创 Maven项目显示红叹号

Maven项目显示红叹号,解决方案如下: 第一步:首先选中项目,右击:Properties->Java Build Path->Libraries,对那些显示红叉的地方进行修改; 一般情况下,经过这一步基本可以解决问题。但是如果Libraries中的所有红叉修改完毕之后,项目还是显示红叹号,此时就需要第二步。 第二步:删除maven的本地仓库中的所有jar文件,重新打开开发工具,此时等待jar

2016-01-03 21:22:19 5368

原创 HBase的Shell操作

前提是你需要安装好自己的HBase环境,并启动HBase,启动成功如下所示:首先我们查看下如何进入shell: ykp@ubuntu:~/hbase/hbase-1.0.0/bin$ ./hbase 进入shell: ykp@ubuntu:~/hbase/hbase-1.0.0/bin$ ./hbase shell 进入shell之后我们就可以进行各种操作了。 下面我们来进行table的增

2015-12-02 12:56:22 1226

jenkins实现maven项目自动部署到tomcat

使​用​j​e​n​k​i​n​s​来​帮​助​我​们​进​行​m​a​v​e​n​项​目​的​自​动​编​译​,​打​包​,​然​后​发​布​到​t​o​m​c​a​t​等​w​e​b​服​务​器​的​功​能​。​本​文​档​图​文​并​茂​,​最​重​要​的​是​图​片​特​别​详​细​。​对​整​个​部​署​过​程​中​出​现​的​问​题​,​都​有​详​细​的​说​明​和​解​决​方​案​!

2016-05-04

项目进度图-甘特图(Gantt图)

该项目详细的展示了项目进度图-甘特图(Gantt图)的实战过程,里边的源代码注释详细清楚,非常方便开发者学习。

2015-05-14

apache-ant-1.8.2-bin.zip

apache-ant-1.8.2-bin.zip ,当我们使用ANT的时候,需要使用这个工具JAR包,否则我们无法使用ANT。

2015-05-14

ANT实战详解

ANT实战详解,讲解了ANT这个技术的六种使用案例,可以让我们深入的了解ANT的具体使用技巧,从而可以让我们使用ANT来管理我们的项目,起到事半功倍的效果!

2015-05-14

vi命令.docx

vi编辑器的基本操作命令,方便你学习LINUX操作系统

2015-05-14

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

TA关注的人

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