自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 Maven从入门到入门

Maven的作用是包管理,当然不仅于此,但这里记录的仅限于此。包管理可以将我们从手动添加jar包,手动建立引用的繁琐的工作中解放出来,我们只需要维护一个pom.xml文件,类似于ant的build文件,这个文件位于项目根目录,如果使用maven的创建项目命令创建时会自动生成这个pom文件,IDE新建maven项目时也会自动创建。这个文件会描述项目的各种依赖关系。Maven有一系列的任务,我们只

2016-06-14 12:00:02 364

原创 netty3入门案例

Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说它是一个NIO框架,使用它可以简单快速地开发网络应用程序。Netty大大简化了网络程序的开发过程比如TCP和UDP的 Socket的开发。学习netty前需要对NIO理解得很透彻,可参考我另一篇文章java NIO或者网上找资料学习一下。下面分别以类似HelloWorld的最基础案

2016-05-31 21:36:48 3780

原创 java NIO

javaNIO是非阻塞的IO。可以用于替代IO操作,但用于对文件的操作时它并不能设置为非阻塞,它的优势体现在网络通信上。从上一篇文章xxx来看,即使使用多线程来处理Socket,但一个线程只能处理一个客户端的请求,单个线程在read的时候还是会阻塞,开销还是很大。如果使用NIO来处理,当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入

2016-05-26 15:46:18 2807

原创 java网络-Socket

1,Socket的应用java实现tcp通信主要通过Socket类。当客户端想要打开一个连接到服务器的TCP/IP连接时,就要使用到Socket类。socket类只需要被告知连接的IP地址和TCP端口,其余的都有Java实现。假如我们想要打开一个监听服务,来监听客户端连接某些指定TCP端口的连接,那就需要使用ServerSocket类。当客户端通过Socket连接服务器端的ServerSock

2016-05-24 16:09:08 548

原创 Linux网络基础命令

Linux中网络配置有下面三种方式:ifconfig命令临时配置ip地址、setup工具永久配置ip地址、修改网络配置文件 1,ifconfig命令:查看与配置网络状态[root@SZB-L0016229 ~]# ifconfigeth0 Link encap:Ethernet HWaddr 06:3F:84:00:1A:1D //ethernet代表以太网 Hwaddr

2016-05-11 15:12:04 1609

原创 Grunt-Grunt使用

Grunt是前端的构建工具,类似后端使用的Ant,也是通过配置各种任务来达到前端代码自动构建的目地。Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 nodejs 的包管理器,所以第一步需要安装nodejs环境。安装grunt之前确保npm更新到最新的版本,使用npm update -g npm在命令行中进行升级1,安装全局的grunt-cligrunt-cli并不

2016-05-10 23:25:20 3959

原创 CSS3新特性与选择器

圆角效果:border-radius:10px; /* 所有角都使用半径为10px的圆角 */     border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角、右上角、右下角和左下角,顺时针 */ 阴影:box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];阴影颜色:默认黑色;

2016-05-03 14:45:34 500

原创 linxu软件安装管理

linux软件包分类:源码包(未编译过的)、二进制包(RPM包:编译过后的包)、脚本安装包(将复杂的源码安装或二进制包利用脚本封装了安装过程,执行脚本安装)源码包效率高于二进制包,所以选择包时应该根据效率来选择。二进制包功能选择不如源码包灵活,而且存在复杂的依赖关系可能导致安装十分繁琐1,RPM安装方式安装linux的光盘中有适合本操作系统的所有rpm包,在光盘的Package目录下。

2016-04-25 16:11:56 416

原创 nginx配置解释及优化

#user  nobody;worker_processes  1;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {

2016-04-20 14:13:50 498

原创 js函数4-闭包

js采用词法作用域,也就是说函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。函数对象可以通过作用域链相互关联起来,函数体内部的变量都可以保存在函数作用域内,这种特性叫做闭包。实际上所有的js函数都可以叫做闭包,它们都是对象,它们都关联到作用域链,定义大多数函数时的作用域链在调用函数时依然有效,但这不影响闭包。当调用函数时闭包所指向的作用域链和定义函数时的作用

2016-04-18 21:24:25 278

原创 jquery的一些实用方法

1,获取浏览器类型与版本使用$.browser,$.browser.chrome为true,表示当前为Chrome浏览器,$.browser.mozilla为true,表示当前为火狐浏览器,还可以通过                $.browser.version方式获取浏览器版本信息。2,检测浏览器是否属于W3C盒子模型浏览器的盒子模型分为两类,一类为标准的w3c盒子模型,另一

2016-04-17 19:40:21 280

原创 CSS的水平居中与垂直居中

水平居中:1,对于行内元素直接通过text-align:center设置即可2,对于宽度固定的DIV居中,设置margin:0 auto;就可以,表示让浏览器自动计算左右margin来居中3,对于宽度不固定的,比如分页的页码,由于不知道会有多少页,所以不能设置固定宽度,有三种方法来设置a,利用table来设置 Title tabl

2016-04-11 16:25:21 407

原创 js事件

js事件流:1,事件冒泡:事件最开始由最具体的元素(最深的那个节点)接收,然后逐级向上传播,到最不具体的那个节点。2,事件捕获:不太具体的节点应该更早地接收到事件,而最具体的那个节点最后接收到事件。大部分浏览器都支持事件冒泡事件对象event:在事件处理程序中,可传入一个参数e,代表事件对象,老版本IE使用window.event来获取到事件对象1,dom中的事件对象常用属

2016-04-10 14:02:42 226

原创 CSS定位

CSS中的3种定位机制:标准文档流,浮动,position定位标准文档流:从上到下,从左到右,输出文档内容。由块级元素(从左到右撑满页面,独占一行,碰到页面边缘会自动换行)和行级元素(能在同一行内显示,不会改变HTML文档结构)组成。行级标签有span,strong,img,input等块级元素和行级元素都是盒子模型。盒子模型的立体结构:从第一层到第五层依次为:border

2016-04-06 22:48:54 329

原创 js函数3-作用域与作用域链

作用域就是指定义的变量与函数能被访问到的区域。作用域链就是指一段代码中多个作用域嵌套在一起形成的一个链条。可以把这个链条想象成多个对象组成的链表,其中每个作用域是一个对象。全局的作用域位于链表的最末端。JS中只有函数能创建作用域,创建的作用域就能和全局作用域形成至少两个对象的作用域链,如果函数又有嵌套函数,就会形成至少三个对象的作用域链。JS定义一个全局变量时实际上是定义了全局对象的一个属性(

2016-04-01 15:54:21 483

原创 java线程基础(一)

1,创建线程的两种方式:A, 继承Thread类,重写run方法,通过查看Thread源代码可看出run方法只会调用存在的runnable成员变量的target的run方法。B, 实现runnable接口并传递给Thread类作为成员变量。package com.thread;class Thread1 extends Thread{ @Override public void

2016-03-29 10:53:49 387

原创 js函数2-函数调用

JS的函数调用有4种方式:方法调用,函数调用,构造函数调用,call/apply间接调用。不同的调用模式,函数内使用的this关键字也会指向不同的对象上。   A,方法调用模式:myObject.foo();    ----this指向调用者对象上B,函数调用模式:foo();   ----this指的全局对象,严格模式下this指向的是undefined

2016-03-26 22:35:28 410

原创 js函数1-函数定义

函数定义使用function关键字来定义,函数定义有两种方式:函数声明与函数表达式1,函数的名称在函数声明时是必须有的,它的作用就像变量的名称,新定义的函数对象会赋值给这个变量;对函数表达式来说名称是可选的;如果存在,这个名称只存在该函数的作用域可见,相当于函数体的一个局部变量,指代该函数本身。function print(x){console.log(x)}//函数声明var x

2016-03-23 22:21:58 599

原创 架构基础4-分布式缓存设计:一致性Hash算法

缓存作为数据库前的一道屏障,它的可用性与缓存命中率都会直接影响到数据库,所以除了配置主从保证高可用之外还需要设计分布式缓存来扩充缓存的容量,将数据分布在多台机器上如果有一台不可用了对整体影响也比较小。不多说,你懂我意思的!缓存的分布式集群和应用服务器不同,缓存的分布式是每台机器上的缓存数据是不一样的,不像应用服务器是无状态的,每台机器上的服务是一致的。缓存访问请求不可以在缓存服务器集群中的任意

2016-03-04 17:02:19 1099

原创 架构基础3-网站的高可用

实现高可用架构的主要手段是数据和服务的冗余备份 及 失效转移典型的分层模型是三层:应用层,服务层,数据层。各层之间具有相对独立性,中小型网站在具体部署时,通常将应用层和服务层部署在一起,数据层另外部署,大型网站划分的粒度会更小,更复杂。应用层服务层数据层应用层:主要负责具体业务逻辑处理服务层:负责提供可复用的服务,例如注册登录

2016-03-03 11:04:19 329

原创 架构基础2-网站的高性能

性能测试指标:1,响应时间 2,并发数 3,吞吐量(TPS、HPS、QPS)Web前端性能优化策略:1,减少HTTP请求(合并CSS,js,图片)2,使用浏览器缓存(通过设置HTTP头中的cache-control和expires属性)3,启用压缩4,CSS放在页面最上面,Js放在页面最下面(以名js执行阻塞页面渲染)5,减少Cookie传输(对静态资源访问时发送coo

2016-03-02 14:51:26 352

原创 架构基础1-linux基础

挂载:将linux的目录放到一个独立的硬盘分区中挂载点:类比windows中的盘符linux硬盘分区有:主分区、扩展分区、逻辑分区linux主分区和扩展分区使用sda1,sda2,sda3,sda4进行名字逻辑分区只能从5开始boot推荐需要单独分区,linux的启动程序在boot中Linux安装时至少划分根分区/和SWAP两个分区才能正常安装使用。swap也需

2016-02-26 17:18:18 317

原创 mysql系列3-mysql主从同步

大多数应用mysql主从同步都是异步方式的,不是实时的。主从复制的应用场景:1,主从服务器互为备份2,主从服务器读写分离分担压力解决主从同步master宕机由于异步复制导致主从不一致的方法1,人工或脚本将master的binlog推送给一台从库重新执行一次2,应用程序对主从进行双写,不依赖同步3,应用程序记录最近操作的日志,通过日志去恢复4,利用工具将异步改为实时,

2016-02-26 16:40:36 344

原创 mysql系列2-mysqldump逻辑备份

1,导库命令:mysqldump -uroot -p dbname>bak.sql-B参数:连接多个库,使用它可导出多个库,并且会导出创建db,use db等语句 -- compact参数:去掉导出sql中的注释,减少输出,调试时方便使用使用gzip对备份数据进行压缩 mysqldump -uroot -p dbname|gzip>bak.sql.gz 多库备份:mysqldu

2016-02-26 16:18:53 516

原创 mysql系列1-基本sql优化

A, 独立的列: 索引列不能是查询中表达式的一部分,也不能是函数参数的一部分,必须是独立的列,否则不使用索引。Oracle可以使用函数索引解决,mysql没有函数索引,可以通过冗余设计+触发器解决B,如果需要索引很长的字符列,会让索引变得大而且慢,可以考虑使用字符列的前一部分C,覆盖索引:查询数据列时只需要查询索引就可得到,不需要再继续查询数据行。    Select

2016-02-26 16:16:05 425

原创 js系列-4 继承

继承能达到代码的复用,js的继承不是基于类型的继承,而是基于原型的继承,也就是说直接从其他已有对象继承。当一个函数对象被创建时,Function构造器产生的函数对象会运行类似这样的一些代码:this.prototype={constructor:this}这个prototype对象是存放继承特征的地方,因为这个对象在出现在实例的原型链上。 js不知道哪个函数

2016-02-26 14:55:10 309

原创 js系列-3 js作用域与闭包

4,函数作用域中可用arguments来获取函数实参,arguments虽然可以通过下标访问,但它不是数组,原型不是Array.prototype. 它是实参的一个副本,通过arguments可模拟方法的重载。function add(){ if(arguments.length == 1){ alert(1); } if(

2016-02-26 14:52:46 251

原创 js系列-2 js函数相关

1,函数包含一组语句,用于指定对象的行为,函数也是对象,也称函数对象。函数对象连接到Function.prototype(该原型对象本身连接到Object.prototype)每个函数都有一个prototype属性,它是一个对象,一个拥有constructor属性且值为该函数本身的一个对象。和对象的原型链不是一回事。但是这个prototype将来会被多个该function的实例所继

2016-02-26 14:50:39 239

原创 js系列-1 js对象相关

1,Js简单数据类型包括数字,字符串,布尔值(有方法,貌似对象,但它们是不可变的),null,undefined,其它所有的值 都是对象。对象是可变的键值集合。2,字面量:var stooge={key : value},js中每个对象都连接到一个原型对象。所有通过对象字面量创建的对象都连接到Object.prototype.(在chrome中可通过.__proto__测试)3,检

2016-02-26 14:28:09 293

数据库学习文档

数据库概论,基础复习

2013-04-05

空空如也

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

TA关注的人

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