自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JAVA前线技术专栏

微信公众号「JAVA前线」

  • 博客(135)
  • 收藏
  • 关注

转载 Spring中BeanPostProcessors【1】简单预处理

1 概述有时我们希望在Spring IoC容器初始化受管Bean前、属性设置后对该Bean先做一些预处理,或者在容器销毁受管Bean之前自己释放资源。Spring IoC为我们提供了多种方法来实现受管Bean的预处理和后处理。Spring中定义了BeanPostProcessors接口:package org.springframework.beans.factory.config;im

2017-01-13 09:04:55 3293

转载 TCP三次握手和backlog参数

1 三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。为什么非要三次握手呢?谢希仁的《计算机网络》中这样说:为了防止已失效的连接请求报文段突然又传送到了服务端因而产生错误

2017-01-07 07:16:53 2483

原创 RTT(往返时间)和RPC

RTT(Round-Trip Time)往返时间在计算机网络中它是一个重要的性能指标。表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认,不包含数据传输时间)总共经历的时间。RTT由三个部分决定:链路的传播时间、末端系统的处理时间、路由器的缓存中的排队和处理时间。其中前两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网

2017-01-03 09:57:32 53402 5

转载 操作系统-线程

1 背景自从20世纪60年代提出进程这个概念以来,在操作系统中一直都是以进程为运行的基本单位。直到20世纪80年代中期,人们才又提出了更小的能独立运行的基本单位线程。为什么要引入线程这个概念呢?主要是因为在实际的应用中,人们需要提出一种新的实体,这个实体必须满足两个特性:1 各个实体之间可以并发执行。2 实体之间可以共享相同的地址空间。就像在同一个进程内部的各个函数,共享该

2017-01-01 11:48:17 1280

转载 操作系统-进程

1 进程的概念一个进程就是一个正在运行的程序。一个进程应该包含以下内容:(1) 程序的代码,既然进程是一个正在运行的程序,自然需要程序的代码(2) 程序的数据(3) CPU寄存器的值,包括通用寄存器,程序计数器(4) 堆(heap)是用来保存进程运行时动态分配的内存空间(5) 栈(stack)有两个用途,1保存运行的上下文信息。2在函数调用时保存被调用函数的形参或者局部变量

2016-12-29 18:40:15 4665

转载 大小端模式

1 什么大小端大小端在计算机业界,Endian表示数据在存储器中的存放顺序。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作

2016-12-25 22:21:52 2809

转载 Java中的位运算

Java提供的位运算符有:左移(>)、无符号右移(>>>)、位与(&)、位或(|)、位非(~)、位异或(^),除了位非( ~)是一元操作符外,其它的都是二元操作符。1 左移 ( System.out.println(5步骤1:将5转为2进制表示形式,java中int类型4个字节32位步骤2:左移2位后低位补00000 0000 0000 0000 0000 00

2016-12-25 21:35:03 621

转载 加密解密的概念

随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施( PKI, Public Key Infrastructure )逐步在国内外得到广泛应用。我们是否真的需要 PKI , PKI 究竟有什么用?下面通过案例一步步地来剖析这个问题 : 甲想将一份合同文件通过 Internet 发给远

2016-12-23 09:51:12 2209

转载 Redis的持久化机制

1 持久化机制redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。 redis支持两种持久化方式,一种是快照也是默认方式,另一种是 Append-onlyfile(缩写 aof)的方式。 2 快照快照是默认的持久化方式。这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动

2016-12-22 19:15:57 745

转载 操作系统-IO模式

1 概念说明在进行解释之前,首先要说明几个概念:-用户空间和内核空间-进程切换-进程的阻塞-文件描述符-缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核(kernel),独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限

2016-12-19 19:54:33 1963 1

转载 CDN的基本工作过程

使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商、跨地域的用户覆盖。由于CDN将内容推送到网络边缘,大量的用户访问被分散在网络边缘,不再构成网站出口、互联互通点的资源挤占,也不再需要跨越长距离IP路由了。CDN是如何工作的呢?先看看没有CDN服务时,一个网站是如何向用户提供服务的。

2016-12-18 10:46:59 1525

转载 对称加密与非对称加密

1 对称加密对称加密是最快速、最简单的一种加密方式,加密与解密用的是同样的密钥。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大加密越强,但加密与解密的过程越慢。若只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解密。但密钥有足够大,黑客们可能永远也无法破解,

2016-12-17 17:59:33 438

转载 MapReduce中如何处理跨行的Block和InputSplit

1 提出问题Map最小输入数据单元是InputSplit。比如对于那么对于一个记录行形式的文本大于128M时,HDFS将会分成多块存储(block),同时分片并非到每行行尾。这样就会产生两个问题:1、Hadoop的一个Block默认是128M,那么对于一个记录行形式的文本,会不会造成一行记录被分到两个Block当中?2、在把文件从Block中读取出来进行切分时,会不会造成一行记录被分成

2016-12-13 10:00:29 3023 1

原创 Hadoop中的FileStatus、BlockLocation、LocatedBlocks、InputSplit

1 FileStatus1.1 包名org.apache.hadoop.fs.FileStatus1.2 格式FileStatus{path=hdfs://192.X.X.X:9000/hadoop-2.7.1.tar.gz; isDirectory=false; length=210606807; replication=3; blocksize=134217728;

2016-12-12 21:41:42 2812

原创 Hadoop中基于文件的数据格式(1)SequenceFile

1 概述1 SequenceFile是Hadoop为例存储二进制的而设计的一种平面文件。2 SequenceFile的key和value是writable或者writable子类。3 SequenceFile的存储不按照key排序,内部类Writer提供了append方法。4 SequenceFile作为一个容器,可以将小文件打包到SequenceFile,高效对小文件进行存储和处

2016-12-11 10:55:35 1739

原创 从Hadoop IOUtils closeStream方法看如何安全关闭流

使用方法IOUtils.closeStream(writer);进入代码public static void closeStream(java.io.Closeable stream) { cleanup(null, stream);}public static void cleanup(Log log, java.io.Closeable... closeables) {

2016-12-11 06:56:19 2947 1

原创 MapReduce中的InputFormat(2)自定义

1 概述Hadoop内置的输入文件格式类有:1)FileInputFormat这个是基本的父类,自定义就直接使用它作为父类。2)TextInputFormat这个是默认的数据格式类。key代表当前行数据距离文件开始的距离,value代码当前行字符串。3)SequenceFileInputFormat这个是序列文件输入格式,使用序列文件可以提高效率,但是不利于查看结果,建议在过程中使

2016-12-10 11:55:08 3860

转载 Hadoop上传文件报错: name node is in safe mode

将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全

2016-12-09 20:26:30 601

转载 Hadoop中的序列化

1 简介序列化和反序列化就是结构化对象和字节流之间的转换,主要用在内部进程的通讯和持久化存储方面。通讯格式需求hadoop在节点间的内部通讯使用的是RPC,RPC协议把消息翻译成二进制字节流发送到远程节点,远程节点再通过反序列化把二进制流转成原始的信息。RPC的序列化需要实现以下几点:1.压缩,可以起到压缩的效果,占用的宽带资源要小。2.快速,内部进程为分布式系统构建了高速

2016-12-09 20:15:23 431

转载 Hadoop报错:Failed to locate the winutils binary in the hadoop binary path

1 发现问题在虚拟机中搭建了hadoop集群,在windows中访问报错15/06/11 15:35:50 ERROR Shell: Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException: Could not locate executable null\bin\winutils

2016-12-05 08:52:43 23816

原创 Hadoop报错:could only be replicated to 0 nodes, instead of 1

1 发现问题执行hadoop上传文件命令,报错could only be replicated to 0 nodes, instead of 12 方案1原因查看logs文件夹下datanode相关日志:java.io.IOException: Incompatible clusterIDs in /home/hadoop-2.X.X/tmp/dfs/data: namenod

2016-12-04 10:45:15 2511

转载 Hive中的复杂数据类型

在Hive中如何使用符合数据结构  maps,array,structs 1 Array的使用 创建数据库表,以array作为数据类型create table  person(name string,work_locations array)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'COLLECTION ITEMS T

2016-11-24 10:01:04 3383

转载 SQLyog Enterprise常用快捷键

1 SQL格式化F12 格式化当前行所在的SQLCtrl+F12    格式化选中的SQLShift+F12   格式化所有SQL 2 窗口操作Ctrl+T 打开一个新的查询窗口Alt+L            关闭当前查询窗口Ctrl+Shift+C 将选中行注释Ctrl+Shift+R 去除选中行注释Ctrl+Enter 代码补全 3 查询执行操

2016-11-14 21:01:01 862

转载 Runtime.addShutdownHook添加钩子

1 方法含义void java.lang.Runtime.addShutdownHook(Thread hook) 用来在jvm中增加一个关闭的钩子。当程序正常退出,系统调用System.exit方法或虚拟机被关闭时才会执行添加的shutdownHook线程。其中shutdownHook是一个已初始化但并不有启动的线程,当jvm关闭时会执行系统中已经设置的所有通过方法addShutdown

2016-09-26 18:08:43 892

转载 maven报错:Check $M2_HOME environment variable and mvn script match.

1 发现问题eclipse中使用maven插件的时候,运行run as maven build的时候报错-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 2 解决问题步骤1设置环境变量

2016-09-19 20:14:17 7063

原创 Eclipse中解决Git无权限问题

1 发现问题有的朋友改了域用户名和密码,发现在eclipse下无法pull和push分支,报错not authorized信息。2 解决问题window>preferences>general>security>content>git>delete 即可清除原有密码,再次pull时输入新密码即可。

2016-09-19 20:04:39 5421

转载 JAVA线程中的生产者和消费者问题

生产者消费者问题是研究多线程时绕不开的问题,描述的是有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止。解决生产者消费者问题的方法有两种,一种是采用某种机制保持生产者和消费者之间的同步,一种是在生产者和消费者之间建立一个管道。前一种有较高的效率并且可控制

2014-06-23 07:05:54 1613

原创 Java中的匿名内部类

通常通过继承某个类或实现某个接口的方式来编写代码,但是有时候某一些代码只使用一次,就没有必要写专门写一个子类或实现类了,可以采用匿名内部类的写法。最常用的场景是线程方面的应用。一、不使用匿名内部类①继承abstract class Player{public abstract void play();}public class FootBallPlayer ex

2014-06-14 17:24:32 4173

原创 Mysql存储过程中使用cursor

一、表学生表CREATE TABLE `t_student` (   `stuNum` int(11) NOT NULL auto_increment,   `stuName` varchar(20) default NULL,   `birthday` date default NULL,   PRIMARY KEY  (`stuNum`) ) ENGINE=In

2014-06-08 15:29:10 15888

原创 Mybatis-generator应用实例

1 核心文件generator.xml指定数据库jar包位置、数据库连接信息、生成包的位置、表名等关键信息。该文件放在任意位置。<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybat...

2014-06-07 19:52:18 14424 1

转载 Mybatis中的resultType和resultMap

一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对

2014-05-29 13:11:39 162927 21

原创 Oracle中空值与数字相加问题

select 10 + 10 + 10 from dual结果是30,完全没问题。select null + 10 + 10 from dual结果是空串,但期望的结果是20.select nvl(null,0) + 10 + 10 from dual这样处理结果为20。若查询有空值的情况需利用nvl处理,否则运算有误。

2014-05-24 09:52:00 9774 1

原创 Oracle中字符缓冲区相关错误

一、buffer overflow,limit of 10000 bytesdeclarebeginfor c in 1..1000 loop dbms_output.put_line('测试测试测试');end loop;end;缓冲区默认大小为10000 bytes。循环1000次一共有6000个汉字,也就是12000 bytes。在SQL窗口的输出标签页可设置缓冲

2014-05-23 18:13:58 2620

原创 Oracle查看建立索引和使用索引注意点

一、查看和建立索引select * from user_indexes where table_name = 'student'create index i_student_num on student(num)二、使用索引的注意点①类型匹配若student中num列是varchar类型,语句select * from student where num = 100该语

2014-04-19 15:12:24 4911

原创 Java如何正确关闭IO流

一、错误示例1public void fileCopy(){FileReader fr = null;FileWriter fw = null;try{fr = new FileReader("c:\\xy1.txt"); // ①fw = new FileWriter("c:\\xy2.txt"); // ②char[] charBuffer = new ch

2014-04-12 18:04:54 17621 2

原创 Oracle中计算日期之间相差的年月

一、基本用法20个月换算成1年8个月,select trunc(20/12) || '年' ||mod(20,12) || '个月' from dual 二、深入用法要结合months_between函数,结果为1年11个月select trunc((months_between(to_date('2012-09-12','yyyy-mm-dd'),to_date('2

2014-03-07 21:24:32 7404

转载 SQL中MINUS、INTERSECT、UNION、UNION All

一、基本概念差集:MINUS交集:INTERSECT并集:UNION、UNION All。UNION将重复的元组去掉,UNION ALL则不会。 表Store_Information 店面营业表store_nameSalesDate分店115002013-01-05分

2014-02-13 13:20:23 1594

原创 线程间共享数据

一、每个线程做执行的代码相同若每个线程执行的代码相同,共享数据就比较方便。可以使用同一个Runnable对象,这个Runnable对象中就有那个共享数据。public class MultiThreadShareData1{ public static void main(String[] args) {  SaleTickets sale = new SaleTicket

2014-02-07 10:48:42 7496 3

原创 端口检测工具FPORT

一、背景开发中经常要进行冲突端口的检查,可通过命令行操作,请参看我曾经发表过一篇文章:《windows和linux中检查端口是否被占用》http://blog.csdn.net/woshixuye/article/details/12706143二、fport工具这个工具使用起来非常方便,是一个.exe的小工具。1、通过命令行找到该工具所在文件夹如:E:>cd E:/to

2014-01-26 12:27:37 4896 4

原创 Oracle使用同义词

一、背景有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1。其中Auser2和Buser1建立了dblink。现希望通过登录Buser1访问Auser1上的三张表table1,table2,table3信息和函数function1。二、步骤①登录Auser1对Auser2授权(若需要删除则加上delete)g

2014-01-22 16:34:42 1854

空空如也

空空如也

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

TA关注的人

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