自定义博客皮肤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)
  • 收藏
  • 关注

原创 mysql prepareStatement的源码实现分析

 今天分析了一下mysql 5.1 版本驱动包的prepareStatement实现源码,发现驱动包并没有实现真正的服务器预编译,还是跟普通的Statement一样,在客户端拼装好完整的sql,底层还是用socket与服务器通过二进制协议流进行数据交互,然后把请求返回的结果,生成resultSet数据集合,以方便后续的数据迭代处理.   public java.sql.Resul...

2013-12-18 18:16:03 624

原创 HttpSession

目录一、术语session二、HTTP协议与状态保持三、cookie四、理解session机制五、cookie机制与session机制的区别和联系六、HttpSession常见问题七、Session的用法  一、Session术语Session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间...

2013-12-13 14:56:49 130

原创 HttpSession

关于HttpSession的误解实在是太多了,本来是一个很简单的问题,怎会搞的如此的复杂呢?下面说说我的理解吧:一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。其工作原理是这样的:1.当一个用户向服务器发送第一个请求时,服务器为其建立一个session...

2013-12-13 14:17:06 71

原创 telnet测试HTTP协议

1. 命令行窗口中用telnet测试HTTP协议 HTTP消息是由普通ASCII文本组成。消息包括消息头和数据体部分。消息头以行为单位,每行以CRLF(回车和换行)结束,消息头结束后,额外增加一个CRLF,之后内容就是数据体部分了。我们可以在命令行窗口,通过TELNET,来测试HTTP协议。1. 使用telnet连接到HTTP服务器,如要从google上请求index.htm...

2013-12-13 14:14:49 583

原创 http协议 cookie设置

  在bs的架构中,浏览器作为客户端,与服务器之间通过session保持连接状态。以前面试的时候,经常被问及一个问题:浏览器禁止cookie时,服务器与客户端浏览器能否保持session连接?    其实要完全回答正确这个问题,需要对cookie的作用有全面的了解。具体cookie的解释大家可以google一下。我以前一直有一个误解(估计很 多人都有),以为cookie就是一个文件,用来...

2013-12-13 09:59:25 170

转载 JAVA JDBC(MySQL)驱动源码分析

JAVA连接数据库是其众多功能中的一部分,主要有两种方式连接DataBase: 一种是采用JDBC-ODBC桥,另一种则是称之为纯驱动连接DataBase,第一种方式在大型项目中基本上不再使用,本系列文章主要分析纯驱动源码。 对于初学JAVA者,甚至那些使用JAVA做过几年开发的程序员来讲,对于JDBC的工作原理都不一定能够明白。知其然,不知其所以然。遇到问题就不知所 措了。通过针对于MYSQL

2013-12-05 16:09:25 1655

原创 Java IO结构图

gt       大小: 62.9 KB 大小: 54.2 KB

2013-12-05 16:09:20 445

原创 Java IO流学习总结

Java流操作有关的类或接口:Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。  IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流 字符流和

2013-12-05 16:09:15 440

原创 Java IO流分析整理

Java中的流,可以从不同的角度进行分类。按照数据流的方向不同可以分为:输入流和输出流。按照处理数据单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点流和处理流。 ######### 输出流 & 输入流 #############输出流:  输入流: 因此输入和输出都是从程序的角度来说的。  ############ 字节流

2013-12-05 16:09:10 407

原创 BufferedInputStream实现原理分析

ufferedInputStream是一个带有缓冲区的输入流,通常使用它可以提高我们的读取效率,现在我们看下BufferedInputStream的实现原理:  BufferedInputStream 内部有一个缓冲区,默认大小为8M,每次调用read方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源 (譬如文件)读取新数据(这里会尝试尽可能读取多的字节)

2013-12-05 16:09:05 1220

原创 CountDownLatch和CyclicBarrier的区别

在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而 CyclicBarrier在调用reset之后还可以继续使用。那如果只是这么简单的话,我觉得CyclicBarrier简单命名为ResetableCountDownLatch好了,显然不是的。 我的理解是,要从他们的设计目的去看这两个类。javadoc里面的描述是

2013-12-05 16:08:59 477

原创 fail fast

Fail Fast从字面上看是“快速失败”的意思,或者叫做“速错”,其含义就是让可能发生的错误尽早的被发现。 无论是人类,还是代码这个道理都是适用的。我们在做事的时候,犯错误是很常见的,但是我们应该尽量使得错误发生之初就被发现,并找出原因进行纠正。一开始不重视或者变相的处理了,这会使得错误延后,反而使得损失增大。 还有个事例就是创业,我们就要抱着“如果要失败那就快点”的心态,加快自己前进的步伐。

2013-12-05 16:08:54 440

原创 java.util.concurrent介绍

java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性。如果一些类名看起来相似,可能是因为 java.util.concurr

2013-12-05 16:08:49 447

原创 JVM 体系结构

一.Java虚拟机结构: 一.JVM 体系结构:JVM内存结构上图展示了JVM 体系结构!下面我们分别说下他们的作用:方法区一个JVM只有一个方法区,是所有线程共享的 存放Class的线性二进制流 类信息,该类型的常量池,字段信息,方法的字节码,操作数栈和该方法的栈帧中的局部变量区的大小,异常表,到类ClassLoader的引用,到Class类的应用 方法区大小不固定,

2013-12-05 16:08:44 484

原创 MySQL数据库MyISAM和InnoDB存储引擎的比较

MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。 MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)。 InnoD

2013-12-05 16:08:39 414

原创 Redis学习手册

(转自 http://www.cnblogs.com/stephen-liu74/archive/2012/04/16/2370212.html)        为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原 因主要有三。其一,Redis不仅性能高效,而且完全免费。其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧。最后就是上手容易,操作简 单。记得在

2013-12-05 16:08:33 394

原创 配置Memcache服务器并实现主从复制功能

一、Linux下Memcache服务器端的安装Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent.用wget指令直接下载这两个东西.下载回源文件后。1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure –prefix=/usr/local;然后make;然后make install;2.再安装memcache

2013-12-05 16:08:28 459

原创 Memcached工作原理终点

(转自 http://blog.163.com/czg_e/blog/static/46104561201121451713323/) 1、memcached是怎么工作的?      Memcached的神奇来自两阶段哈希(two-stage hash)。Memcached就像一个巨大的、存储了很多对的哈希表。通过key,可以存储或查询任意的数据。 客 户端可以把数据存储在多台memcac

2013-12-05 16:08:23 421

原创 Memcached工作原理

面临的问题        对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题。特别当你的程序架构还是建立 在单数据库模式,而一个数据池连接数峰值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了。很多小网站的开发人员一开始都将注意力放在了产品需 求设计上,缺忽视了程序整体性能,可扩展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过

2013-12-05 16:08:18 391

原创 hadoop+zookeeper+hbase环境搭建的一些问题

host文件配置     /etc/hosts文件若没配置好,会引起一系列不见遇见的问题,有时候会在这些问题上面花费较多的时间. hadoop@PC3GD000516:/usr/local/hadoop$ more /etc/hosts127.0.0.1 localhost192.168.215.85 master pc-name0192.168.215.201 sla

2013-12-05 16:08:13 754

原创 Hadoop namenode无法启动

最近遇到了一个问题,执行start-all.sh的时候发现JPS一下namenode没有启动         每次开机都得重新格式化一下namenode才可以         其实问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失         于是我们得重新配置一个tmp文件目录         首先在home目录下建立一个hadoop_t

2013-12-05 16:08:08 389

原创 使用zookeeper实现分布式共享锁

分布式系统中经常需要协调多进程,多个jvm,或者多台机器之间的同步问题,得益于zookeeper,实现了一个分布式的共享锁,方便在多台服务器之间竞争资源时,来协调各系统之间的协作和同步。 package com.zookeeper.lock.server;import java.io.IOException;import java.util.ArrayList;import j

2013-12-05 16:08:02 747

原创 CountDownLatch的介绍和使用

1、类介绍java.util.concurrent 类 CountDownLatchjava.lang.Objectjava.util.concurrent.CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以

2013-12-05 16:07:57 349

原创 rsync命令(转)

虽然是个很基本的工具了 不过有时候需要一些细致的资料还是要差一下 所以 放在这里咯   目录1. 什么是rsync;2、rsync 服务器的理由和用途;3、架设rsync服务器过程;3.1 rsync的安装;3.2 rsync服务器的配置文件4 架设rsync服务器的示例说明4.1 全局定义4.2 模块定义5 启动rsync 服务器及防火墙的设置;5.1

2013-12-05 16:07:52 592

原创 rsync安装 /配置及异常处理

1 rsync简述    rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync。它的特性如下:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。无须特殊权限即可安装。优化的流程,文件传输效率高。可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。   

2013-12-05 16:07:47 613

原创 (转)Hadoop学习资料汇总

1)Cygwin相关资料  (1)Cygwin上安装、启动ssh服务失败、ssh localhost失败的解决方案  地址:http://blog.163.com/pwcrab/blog/static/16990382220107267443810/  (2)windows2003+cygwin+ssh  地址:http://wenku.baidu.com/view/3777b8b

2013-12-05 16:07:42 574

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

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

2013-12-05 16:07:37 608

原创 Hadoop 解除 "Name node is in safe mode"(转)

运行hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode 这个错误应该还满常见的吧(至少我运行的时候是这样的) 那我们来分析下这个错误,从字面上来理解: Name node is in safe mode 说明

2013-12-05 16:07:32 394

原创 hadoop集群测试

Hadoop集群安装好后,可以测试hadoop的基本功能。hadoop自带了一个jar包(hadoop-examples-0.20.205.0.jar,不同版本最后不同)中wordcount程序可以测试统计单词的个数,先来体验一下再说。 [hadoop@master ~]$ mkdir input  #先创建一个输入目录  [hadoop@master ~]$ cd input/  

2013-12-05 16:07:26 508

原创 Exception AttributeError: "'NoneType' object has no attribute

今天根据 http://sebug.net/paper/python/ch11s06.html>学习案例时,遇到 下面的异常.   #!/usr/local/python# -*- coding:utf-8 -*-# filename: objvar.pyclass Person: ''' Represents a person''' population =

2013-12-05 16:07:21 1537

原创 python问题:IndentationError:expected an indented block错误解决

原文地址:http://hi.baidu.com/delinx/item/1789d38eafd358d05e0ec1df    Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的。 在编译时会出现这样的错IndentationErr

2013-12-05 16:07:16 428

原创 python学习与实战

恬好这几天有空,下去学习了python 脚本语言,给我的感觉是:超级shell脚本语言.       如果你已经有java/javascript语言基础,下去参考简明教程> ,估计三两天就可以熟识语法了.当然 python 还包含了许多的模块,包括 面向过程开发/面向对象开发/多线程/web开发/文件处理等等,这些相关模拟当然需要根据实际情况再进行深入学习了.       根据不同的需求以

2013-12-05 16:07:11 683

原创 Linux查看文件编码格式及文件编码转换

如果你需要在Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim 中可以直接查看文件编码 Shell代码

2013-12-05 16:07:06 368

原创 (转) 设计模式——小单例有大秘密

单例模式大家并不陌生,也都知道它分为什么懒汉式、饿汉式之类的。但是你对单例模式的理解足够透彻吗?今天我带大家一起来看看我眼中的单例,可能会跟你的认识有所不同。下面是一个简单的小实例:[java] view plaincopyprint?//简单懒汉式  public class Singleton {            //单例实例变量      

2013-12-05 16:07:00 352

原创 Ubuntu环境变量的设置&&主界面的选项设定&&: command not found的解决

在Ubuntu中有如下几个文件可以设置环境变量。 /etc/profile:在登录时操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息。当用户第一次登录时,该文件被执行。 /etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。 /etc/bashrc:为每一个运行bash shell的用户执行此文件。

2013-12-05 16:06:55 566

原创 SSH原理与运用(二):远程操作与端口转发

SSH原理与运用(二):远程操作与端口转发作者:阮一峰(Image credit: Tony Narlock)七、远程操作SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。上一节的操作,就是一个例子:  $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' 单引号中间的部分

2013-12-05 16:06:50 371

原创 SSH原理与运用(一):远程登录

SSH 是每一台 Linux 电脑的标准配置。  随着 Linux 设备从电脑逐渐扩展到手机、外设和家用电器,SSH 的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。  SSH 具备多种功能,可以用于很多场合。有些事情,没有它就是办不成。本文是我的学习笔记,总结和解释了 SSH 的常见用法,希望对大家有用。  虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基

2013-12-05 16:06:45 404

原创 找到最耗CPU的java线程

找到最耗CPU的java线程1 找出占用cpu过高的进程ID号   命令: top -c        2 找出该进程下,运行时间过长的进程 id号.     命令:ps -mp 10024 -o THREAD,tid,time | sort -rn     3 因为在java堆栈日志中,线程id以 16 进程存储,因此我们需要先把 10 进制的线程id,转为

2013-12-05 16:06:40 522

原创 使用ssh-keygen设置ssh无密码登录

也知道这个东西,大家都会,就当是谁忘了的时候,做个提醒的吧。。。 ssh 是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下ssh链接是需要密码认证的,可以通过添加系统认证(即公钥-私钥)的修改,修改后系统间切换可以避免密码输入和ssh认证。以下将创建过程简单介绍下。 假设 A 为客户机器,B为目标机; 无密原理:A作为客户端,要实现无密码公钥认证,连接到服务

2013-12-05 16:06:35 450

原创 hadoop dfs 常用命令行

* 文件操作 * 查看目录文件 * $ hadoop dfs -ls /user/cl * * 创建文件目录 * $ hadoop dfs -mkdir /user/cl/temp * * 删除文件 * $ hadoop dfs -rm /user/cl/temp/a.txt * * 删除目录与目录下所有文件 * $ hadoop dfs -rmr /user/cl/temp * * 上传文件 *

2013-12-05 16:06:30 529

空空如也

空空如也

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

TA关注的人

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