自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lnho的专栏

发表是最好的记忆

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

转载 理解MySQL——架构与概念

第一章、MySQL架构与概念1、MySQL的逻辑架构 最上面不是MySQL特有的,所有基于网络的C/S的网络应用程序都应该包括连接处理、认证、安全管理等。中间层是MySQL的核心,包括查询解析、分析、优化和缓存等。同时它还提供跨存储引擎的功能,包括存储过程、触发器和视图等。最下面是存储引擎,它负责存取数据。服务器通过storage engine API可以和各种存储引擎进行

2015-10-23 14:36:12 568

转载 理解MySQL——复制(Replication)

1、复制概述1.1、复制解决的问题数据复制技术有以下一些特点:(1)    数据分布(2)    负载平衡(load balancing)(3)    备份(4)    高可用性(high availability)和容错1.2、复制如何工作从高层来看,复制分成三步:(1)    master将改变记录到二进制日志(binary log)中(这些记录叫做

2015-10-23 14:34:58 570

转载 理解MySQL——索引与优化

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),

2015-10-11 17:52:39 663

原创 Java虚拟机内存分配策略

1.JVM内存分配分区Java的内存简单分为堆内存和非对内存 其中堆内存又可以分为新生代和老年代 新生代分为1个Eden区和2个Survivor区,如下图: 2.JVM垃圾回收种类分为2种,MinorGC和FullGC. MinorGC针对新生代的内存回收,时间较短,经常发生。 FullGC针对老年代的回收,通常伴随MinorGC,耗费时间较久,较少发生。2.JVM内存分配策略(1)先在E

2015-08-22 14:14:29 1802

转载 查找出现次数超过一半的数

题目: 给2*n+1个整数,存储在数组中,保证这些数中,有一个数的次数出现超过了n+1次,怎样求出那个出现次数超过n+1次的整数,比如有 五个数1,2,2,3,2; 那么这个数字就是2。 这道题中的数都可能非常大,10^9。 (1)基本的设计思想: 一个数字出现的次数超过了长度的一半, 那么我们可以这样认为这个数字出现的个数一定大于其他全部数字出现的个数之和。算法的步骤如下: ①设数组为

2015-08-22 13:16:15 1282

转载 分布式网站架构后续:zookeeper技术浅析

Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用。  Zookeeper是针对大型分布

2015-06-20 09:33:58 1021

原创 windows 64位上eclipse访问hadoop

1. hadoop环境变量vi etc/profile export HADOOP_PREFIX=/home/webadmin/hadoop-2.5.2 export HADOOP_PREFIX PATH CLASSPATH2. 拷贝到其他主机scp -r ~/hadoop-2.5.2 webadmin@116.211.91.59:~/hadoop-2.5.23. windows 64位上ecl

2015-05-15 22:09:29 1053

原创 CentOS 6 安装Hadoop 2.6 (一)准备工作

!!!重要:hadoop 2.5以后的版本都是64位编译的,如果你非要在32位的系统上使用,你需要重新编译源码! 以下采用CentOS 6 i386,JDK8,hadoop-2.6.4进行安装。1. 修改hostsCentOS修改主机名(hostname) (注意把自己的机子放在第一行,hbase那边会读这个数据)2. SSH免密码登录Linux配置SSH无密码登录3. 安装JDKCentOS

2015-05-15 22:01:04 2000

原创 MySQL数据库优化技巧(二)

在上一篇MySQL数据库优化技巧中,主要是从表设计的角度来优化,这篇将探讨一下其他的优化技巧。1. 使用索引索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(), MIN()和ORDERBY这些命令的时候,性能提高更为明显。 那该对哪些字段建立索引呢?一般说来,索引应建立在那些将用于JOIN, WHERE判断和ORDER B

2015-05-15 17:12:26 854

原创 也谈Spring MVC

在说Spring MVC之前,我们先说说没有Spring MVC的时候。 1)最早的Java Web程序,我们使用Servlet来处理请求,一般来说,一个请求对应一个Servlet,比如/user/add.do,就对应某个useradd的Servlet来处理。在Servlet中,我们可以获取到HttpServletRequest(req)和HttpServletResponse(resp)两个参数

2015-05-11 00:25:28 713

原创 Java知识整理——反射

Java的反射机制是做什么的? 主要功能就是可以根据一个类的名称来创建一个类的实例,并调用实例的方法。 我们通常情况下创建一个类实例的方法,就是new ABC()这样的方式来创建,那为什么还要用反射绕一大圈呢?因为反射可以让ABC这个具体的类,在运行的时候指定,例如可以通过传参的方式指定进来,比如我们传一个参数ABC就可以创建ABC这个类,也可以传递其他参数来创建DEF这个类。怎么做? 直接

2015-05-10 23:16:26 1579 2

原创 Spring工作原理分析

1. 控制反转IoCSpring的核心功能就是IoC,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。 具体来说就是,在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过property标签说明该类的属性名、通过constructor-args说明构造方法的参数。当通过applic

2015-05-10 22:06:45 759

原创 Linux命令速查(带参数说明)

###ls 列出文件-R递归遍历 -1单列显式 -m逗号分隔 -a显示隐藏 -F文件类型 --color彩色 -l权限和所有者 -X扩展名排序 -t时间排序 -S大小排序 -h易读模式###cd 切换目录-切换到以前目录###mkdir创建目录-p同时创建所有父级目录 -v显示细节###cp复制文件-R复制目录 -v显示细节 -i询问覆盖(有些系统已经做了alias cp='cp -i') -a复制作为

2015-05-09 17:56:01 1531 2

转载 UNICODE,GBK,UTF-8区别

简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转u

2015-05-09 16:09:38 2437

原创 SQL语句之left join、right join、inner join的区别

简单来说:left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行举例如下:表A记录如下: aID     aNum 1     a20050111 2     a20050112 3     a20050113

2015-05-09 16:04:27 776

转载 Java对象克隆方法(浅克隆、深克隆)

要让一个对象进行克隆,其实就是两个步骤: 1. 让该类实现java.lang.Cloneable接口; 2. 重写(override)Object类的clone()方法。上面的克隆方法其实是浅克隆,顾名思义就是很表面的很表层的克隆,如果我们要克隆User对象,只克隆他自身以及他包含的所有对象的引用地址。 而深克隆,就是非浅克隆。克隆除自身以外所有的对象,包括自身所包含的所有对象实例。至于深克隆

2015-05-09 15:51:04 1937

原创 Java知识整理——远程方法调用

什么是RMI ? Java远程方法调用(RMI)是一个Java API,它执行的面向对象的等价远程过程调用(RPC)的方法,包括了直接传输序列化的Java类和分布式垃圾收集的支持。 远程方法调用(RMI),也可以看作是一个远程运行的对象上激活的方法的过程。RMI提供位置透明性,因为用户认为一个方法是在本地运行的对象上执行。 RMI Tips here.什么是RMI的体系结构的基本原理? RMI

2015-05-09 15:43:47 1098

原创 Java知识整理——JDBC

什么是 JDBC ? JDBC是一个抽象层,允许用户在不同数据库间进行选择。JDBC使开发人员能够在Java中编写数据库应用程序,而不必让自己关心一个特定的数据库的底层细节。 解释JDBC中驱动的作用。 JDBC驱动提供了 对 JDBC API 所提供的抽象类 的 数据库供应商的特定实现。每个驱动必须提供java.sql包的以下的类实现:Connection,Statement,Prepare

2015-05-09 15:39:50 830

原创 Java知识整理——异常处理

Java中的两种异常是什么?它们之间的区别? Java有两种类型的异常:checked与unchecked(检查与未检查) 异常. 如果unchecked异常可能会在方法或构造函数的执行时被抛出从而蔓延到方法或构造函数的外部, 它们也不需要要在方法或构造函数中声明throws子句. 然而, checked异常必须通过方法或构造函数的throws子句声明. 关于java异常处理的建议请参考这里Jav

2015-05-09 15:36:02 801

原创 Java知识整理——Servlet&JSP

Servlet什么是Servlet? servlet是用来处理客户端请求并生成动态web内容的Java程序语言类。Servlets大多是用来处理或者存储HTML表单提交的数据,提供动态内容和管理那些不在HTTP无状态协议中的状态信息。解释一个Servlet的架构. 核心抽象概念肯定是所有servlet必须实现 javax.servlet.Servlet 接口。 每个 servlet 必须直接

2015-05-09 15:32:20 955

原创 Java知识整理——垃圾回收

Java中垃圾回收的目的是什么, 它什么时候被使用 ? 垃圾回收用于识别和丢弃程序不再需要的对象, 以便回收和复用资源.System.gc() 和Runtime.gc()方法用途? 这些方法用于提醒JVM开始垃圾回收. 然而开始垃圾回收的时机是由JVM决定的.finalize()什么时候被调用 ? 它的目的是什么 ? finallize方法是在释放该对象内存前由gc(垃圾回收器)调用

2015-05-09 15:30:35 769

原创 Java知识整理——容器

Java Collections框架的基本接口 ? Java Collections 框架 提供了一系列支持对象集合操作的设计良好的接口和类. Java Collections框架中最基础的接口是: Collection, 表示一组对象(元素). Set, 包含非重复元素的集合. List, 包含非重复元素的有序集合. Map, 包含非重复键的键值对的对象.为什么Collection没有

2015-05-09 15:25:35 778

原创 Java知识整理——线程

进程与线程的区别 ? 进程是一个程序的执行(即正在运行的程序), 然而线程是在进程中独立的执行序列. 一个进程可以包含很多线程. 线程有时被称为轻量级的进程. 说下创建线程的不同方式. 你倾向于哪种方式并说明原因 ? 有三种创建线程的方式: 继承Thread类. 实现Runnable接口. 通过Executor框架创建线程池. 首选方式是实现Runnable接口, 因为它不需要

2015-05-09 15:14:07 833

原创 Java知识整理——基础知识

什么是JVM? 为什么称Java为跨平台的编程语言? Java虚拟机(Java Virtual Machine)是可以执行Java字节码的虚拟机,每个Java源文件将被编译成字节码文件,然后在JVM中执行。Java之所以被设计成可以在任意的平台运行,而不需要重写或者在不同的平台下重新编译,这些都要归功于Java虚拟机(JVM),因为JVM非常了解特定的指令的长度以及底层硬件平台的特殊性。JDK和

2015-05-09 15:12:15 812

原创 设计模式概览

设计模式是人们将面向对象软件设计的优秀经验、解决方案整理归纳而成的既定模式。 我们将设计模式分为三种类型:创建型,结构型,行为型。一、创建型单例模式:用于得到内存中的唯一对象工厂方法模式:用于创建复杂对象抽象工厂模式:用于创建一组相关或相互依赖的复杂对象建造者模式:用于创建模块化的更加复杂的对象原型模式:用于得到一个对象的拷贝二、结构型外观模式:定义了一个高层接口,为子系统中的一组接

2015-05-09 14:36:12 808

转载 MySQL类型介绍以及适用范围

1. 整型类型Tinyint(8位) 范围:无符号(0~256)、有符号(-128~127) 场景:一般用于存储数字字典,常量表的id,因为数据量十分有限,又是常量表,所以可以用它存储 Smallint(16位) 范围:无符号(0~65536)、有符号(-32768~32767) 场景:Tinyint的替代品,若常量表数据比较多,比如中国的省-市-自治区-区县-村镇,到这个范围下,基本够用

2015-05-08 23:58:08 2652

转载 MySQL数据库优化技巧

1. 优化数据类型(1)使用小类型的数据类型。小类型的数据在磁盘寻址的时候占用更少的资源,也减少了CPU的运算时间,这样在io wait的时候就不会因为大字段而消耗过多资源。 (2)简单类型优先。比如使用整型存储时间戳;用整型存储IP地址;用整型存储货币浮点,在应用层,再用乘除法换算小数点的精度。 (3)尽量不要使用NULL。对于优化索引,如果字段是NULL,无法对其NULL进行索引排列。不过I

2015-05-08 23:30:51 884

原创 《测试驱动开发》学习笔记

为什么用测试驱动开发测试驱动开发可以使得代码整洁可用,具体包括以下几点: * 便于预测完成时间 * 便于促进代码重构 * 让团队成员相互信赖测试驱动开发的方法开发过程会经历以下阶段:不可运行->可运行->重构1. 不可运行阶段——写一个会失败的自动测试程序注意点: * 创建一个清单,列出我们所知道的需要让其运行通过的测试 * 通过一小段代码说明我们需要看到怎么样的一种操作 * 暂时忽略J

2015-04-09 16:18:46 989

原创 CentOS设置文本启动方式(命令行模式)

临时的方案进入命令行后输入init 3设置为默认启动方式图形界面需要点用系统大量的内存和CPU资源,对于服务器而言,高效率是最重要的,因此将Centos 默认启动改为文本方式。编辑/etc/inittab文件,找到语句“id:initdefault:”,将该句的 5 改为 3,重新启动后,Centos 就会自动进入字符界面。

2015-04-09 11:40:53 2857

原创 初学Linux应掌握的Shell命令

模糊查询正在运行的进程解压tar.gz修改环境变量

2015-04-09 11:17:53 1126

原创 Tomcat设置网站别名

打开Tomcat目录下的 conf/server.xml 文件,新增一行 <Alias>你的域名</Alias> :<Host name="lnho.github.io" appBase="webapp" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Alias>

2015-04-09 11:15:27 5179

原创 Oracle表空间的查询与创建

查询表空间执行:select name from v$datafile 查询表空间中数据文件具体位置。执行:select * from DBA_DATA_FILES; 查询表空间中数据文件具体位置和文件名,表空间名等,比上一个全。创建用户#创建临时表空间create temporary tablespace score_temptempfile '/home/usr/oracle/orad

2015-04-09 11:12:59 2060

原创 JavaWeb常用的操作

常用操作获取class路径: URL path=Thread.currentThread().getContextClassLoader().getResource("server.xml");读取properties文件: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties

2015-04-08 18:14:53 854

原创 图片工具GraphicsMagick的安装配置与基本使用

本文使用GraphicsMagick的版本为1.3.18 (Released March 9, 2013)。1.简介GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最

2013-12-05 11:26:34 6196

原创 MongoDB学习笔记(三)使用Spring Data操作MongoDB

1.所需的包:2.代码:(1)配置文件一:bootstrap.xml//代码开始    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLoca

2013-12-03 01:35:50 2462

原创 MongoDB学习笔记(二)使用Java操作MongoDB

1.需要的包:mongo-2.10.1.jar(下载地址在http://www.mongodb.org/downloads)2.使用方法: MongoClient mongoClient = null; try { mongoClient = new MongoClient(); } catch (UnknownHo

2013-12-03 01:32:02 1601

原创 MongoDB学习笔记(一)环境搭建与常用操作

一、MongoDB是什么  MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。  它介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言

2013-12-03 01:29:58 5762

空空如也

空空如也

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

TA关注的人

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