自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 Maven学习笔记

以前对Maven的了解只是停留在简单使用阶段,对于深层次的原理不甚了解,无意中看到infoq上的一个系列教程,出于以后项目需要和个人学习发展,对maven系列文章进行了学习。详见接着通读了《Maven权威指南》对maven进行了进一步全面的学习。但是这还远远不够,需要在以后的项目中不断思考,优化maven配置,在实战中将maven的优势发挥到极致。本文主要记录自己学习中的点滴。坐标规划坐标主要用来定

2015-12-23 11:25:42 557

原创 学习网址整理

工作学习之余,对于比较好的文章进行整理。Bash Shortcuts For Maximum Productivity http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/ http://azyet.github.io/2015/06/08/shortcutsInBash/Bash Command

2015-06-19 14:48:56 162

原创 MySql数据库引擎初探

数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。ISAM 优点:读取速度快,不占用过大内存和资源。 缺点:不支持事务操作,不能容错。MyISAM ISAM的扩展。表格锁定机制,优化并发读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。重要缺陷就是不能在表损坏后恢复数据。HEAP 只驻留在内存里的临时表格。

2015-05-25 11:03:11 561

原创 Java高级篇整理

面试中常常会问及Java细节相关的问题,而由于往往在平时中不会过多的涉及,所以不能得心应手。而通过阅读课本和网上资料,会有一定的帮助,但纸上得来终觉浅,绝知此事须躬行。以博客的形式梳理思路,通过一行行代码,深入理解Java细节,从而对于Java高级特性进行全面掌握。Java三大特性封装封装三大好处 良好的封装减少耦合类内部的结构可以自由修改(无须修改客户代码)可以对成员进行精确控制(年龄范围

2015-05-03 22:16:02 4143 1

原创 实习面试笔记-vmware

外企面试比较看重原理,本人是面试Java相关的,所以对于Java一些原理性的东西需要进行深入掌握和理解。Java相关Runnable和Thread的区别Runnable:适应于多继承、共享变量。那么当调用这个线程的对象开辟多个线程时,可以让这些线程调用同一个变量;若这个线程是由继承Thread类而来,则要通过内部类来实现上述功能,利用的就是内部类可任意访问外部变量这一特性。设计模式Adaptor

2015-04-30 18:12:23 1275

原创 Zookeeper框架

Zookeeper概念Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端 API”。总体结构Zookeeper服务自身组成一个集群(2n+1个服务允许n个失效)。Zookeeper服务有

2015-04-29 16:23:55 899

原创 Netty初探-行业应用及未来

Netty行业应用Netty在互联网行业的应用传统垂直架构面临的问题前后台耦合,业务无法有效拆分。缺乏高性能的RPC框架,集群节点间的通信效率低下。缺少统一的服务注册中心对集群服务进行管理,系统弹性化不足。服务增多时,无法对服务进行有效的容量评估和治理。阿里分布式服务框架DubboNetty+二进制编解码框架实现内部协议。Zookeeper作为服务注册中心,动态注册和发现服务服务治理

2015-04-29 15:10:54 2852

原创 Netty初探-架构剖析

Netty逻辑架构Netty采用了典型的三层网络架构进行设计与开发。逻辑架构如下:Reactor通信调度层主要职责:监听网络的读写和连接操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,由Pipeline管理的职责链进行后续处理。 由一系列的辅助类完成,包括Reactor线程NioeventLoop以及

2015-04-29 14:48:24 1352

原创 Netty初探-编解码技术

要谈编解码技术,首先从Java序列化进行谈起。由于Java序列化无法跨语言,很少用来进行消息的编解码和传输。而且序列化之后的码流太大,序列化性能太低,所以,有很大主流的编解码框架应运而生。主要介绍主流的三大编解码器。Google的Protobuf、FaceBook的Thrift以及JBoss的Marshalling。Google Protocol Buffers 结构化数据存储格式(XML,JS

2015-04-29 14:27:26 1637

原创 Netty初探-解决TCP粘包/拆包问题

业务上一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。 对于这类问题,netty提供了LineBasedFrameDecoder和StringDecoder进行完美解决。如下是相关代码。代码TimeServerpackage com.xpn.netty.netty;import io.netty.bootstrap

2015-04-29 14:03:26 10987

原创 UNIX环境高级编程(1)-UNIX基础

UNIX基础知识stat返回所有文件属性的一个信息结构创建新目录会自动创建两个文件名:点(当前目录)和点-点(上级目录)。最高层目录,两者相同。可以通过ls -ldi 查看节点号进行验证。起始目录,登录时,工作目录设置为初始目录,初始目录从口令文件中相应的登录项中取得。系统上查证,除根目录外,目录 . 和目录 .. 是不同的文件和目录输入输出程序和进程用户标识(用户ID,组ID)/e

2015-04-29 12:35:05 469

原创 Netty初探-netty服务端和客户端demo

通过netty框架实现一个简单的服务端和客户端框架,相比于前面所说的NIO,netty的api使用更加简单灵活,扩展性强。TimeServerpackage com.xpn.netty.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.ch

2015-04-28 15:19:30 14418 1

原创 Linux网络I/O模型整理

Linux的内核将所有外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核的系统命令,返回一个fd(file descriptor),对于socket则对应为socket描述符,描述符就是一个数字,指向内核中的一个结构体(文件路径、数据区等)。 根据对I/O模型的分类,linux提供了5种I/O模型。包括阻塞I/O模型、非阻塞I/O模型、I/O复用模型、信号驱动I/O模型、异步I/O。下面

2015-04-28 13:31:57 653

原创 Netty初探-I/O对比

通过简单的Demo开发,熟悉传统的同步阻塞I/O(BIO)、伪异步I/O、非阻塞I/O(Nio)以及异步I/O(AIO)的差异。同步阻塞I/O(BIO)BIO通信模型(一客户端一线程)代码分析TimerServerpackage com.xpn.netty.bio;import java.io.IOException;import java.net.ServerSocket;import j

2015-04-28 13:01:39 1289 1

原创 Netty初探-基本概念和相关类介绍

基本概念概念Netty是由JBOSS提供的一个java NIO开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。可实现的功能见下图: Netty vs Mina vs GrizzlyMina的设计理念最为优雅,Netty和Mina的主导作者是同一人。Mina出自于Apache,Netty出身于商业开源大亨Jboss,而Griz

2015-04-27 17:13:17 1783

原创 nginx架构探究

概念 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。-nginx vs apache vs lighttpd 建议方案: Apache 后台服务器(主要

2015-04-27 10:54:56 496

原创 c/c++易考点整理

对于平时的考试以及找工作的笔试、面试,c/c++是必考点,接下来,就对一些易考易错点进行整理,后续在学习过程中,遇到新的问题会进行补充。static作用隐藏,保持变量内容的持久,默认初始化为0x00. 唯一一次初始化 静态存储区:全局变量和static变量。c++中有const,为何还要宏const表示修饰的内容不能改变。const无法代替宏作为卫哨来防止文件的重复包含。引用 vs 指针引用

2015-04-24 15:28:47 996

原创 c中的sizeof知识整理

对于sizeof相关,进行了详细全面的整理。并通过代码进行了测试。/*一.sizeof usage: (1)sizeof(type|var) 考虑的是开辟的空间,不是用到的空间,对于结构体,需要考虑字节对齐的问题。 (2)对位域成员等连编译器都无法确定存储空间的东西不能用,不能使用于函数类型、不完全类型(具有未知存储大小的数据结构)或位字段。 (3)sizeof返回的数据类型

2015-04-24 11:46:49 412

原创 mysql性能测试工具mysqlslap

对于并发性而言,我们需要时刻了解数据库带来的开销,从而进一步优化数据库,改善性能。对于mysql数据库而言,自身提供了mysqlslap工具,下文将介绍mysqlslap的简单使用。帮助信息root@node3:~# mysqlslap --helpmysqlslap Ver 1.0 Distrib 5.5.43, for debian-linux-gnu (x86_64)Copyrigh

2015-04-24 11:42:36 2916

原创 算法整理-排序(冒泡)

package com.xpn.sort;public class BubbleSort { /** * @param args */ public static void main(String[] args) { int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,

2015-04-22 13:01:10 641

原创 2015暑期实习面试整理-腾讯

有幸参加了腾讯的实习生面试,在一个高大上的艾丽华酒店里, 面试官很nice,将相关问题整理如下:Java泛型实例化?java 泛型对象能实例化吗T t=new T(),不能。因为在编译期没法确定泛型参数化类型,也就找不到对应的类字节码文件,自然就不行了 。Java GCGC算法:引用计数、标记-清除、拷贝收集、标记-整理收集、Java采用根搜索算法。基本思想就是:从一个叫GC Roots的对象开

2015-04-22 12:57:20 1287 1

原创 Java知识整理

对Java中易混淆的知识点进行整理,一方面有利于面试,一方面有利于自己对于Java更深的了解。Comparable vs Comparator一个类实现了Camparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序。 Comparator可以看成一种算法的实现,将算法和数据分离,Comparator也可以在下面两种环境下使用: 1、类的设计

2015-04-21 20:58:58 457

原创 个人面试总结-百度复合搜索部

对于百度第一次面试的相关题目进行整理如下:一道智力题:10个瓶子,每个瓶子装100颗药,每颗药重量为10g,其中有N个瓶子被污染了(1<=N<=10),污染瓶子的每颗药变为11g,给一杆秤,如何秤一次就可以找出被污染的所有瓶子?思路:加法分解思路入手,第一个瓶子取1个,第二个瓶子取2个,第三个瓶子取4(1+2+1)个,第四个瓶子取8个(1+2+4+1),以此类推,第i个瓶子取前面数字之和+1个药丸

2015-04-20 17:11:22 1636

原创 大型网站架构分析

大型网站架构的成熟并不是一蹴而就的,是从最简单的架构做起,然后根据用户的需求,业务的扩张,一步一步进行改进从而实现的。大体发展轨迹整理如下: 参见物理分离WebServer和数据库数据库和应用之间互相影响,将其分为2台机器,从而提高响应速度,支持更高的流量。增加页面缓存squid缓存框架,减少数据库连接资源的竞争。增加页面片段缓存采用类似ESI之类的页面片段缓存策略,OK,于是开始采用ESI

2015-04-20 13:58:15 534

原创 CDN学习整理

web的快速发展,对于web服务器和互联网公司而言,如何提高用户的访问速度,提升用户体验是尤为重要的一环,下面就简单整理一下以CDN为基础的解决方案和基本架构。参见CDN概述 CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决In

2015-04-20 10:44:53 1216

原创 算法-贪心

对于贪心算法,进行几个简单问题的探讨和学习。package com.xpn.question;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;/** * 1、删数问题(贪心)del

2015-04-14 14:19:26 335

原创 海量数据处理-思路

通过博客以及网上相关资料,对于海量数据处理相关问题进行总结,整理思路,以便不时之需。参考这里海量日志数据,提取出某日访问百度次数最多的那个IP。 hash%1000分在多个文件中(1000),对每个文件的IP进行hashmap操作,取出出现次数最大的ip,然后对着1000个ip进行比较,获取出现次数最多的ip。搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为

2015-04-12 23:53:05 560

原创 面试笔记-Java

个人对于Java面试考点进行了相关总结,便于后续查找。重写 vs 重载重写(overriding):签名相同,运行时判断。 重载(overloading):签名不同,编译时判断。fork vs 生成进程fork:新进程与父进程执行相同代码,内存空间不同。 生产进程:生成新的代码执行路线,共享内存空间。临界区一段代码,在多线程中同一时间只能被一个线程执行。synchronized值类型 v

2015-04-12 17:11:36 480 1

原创 剑指offer-算法整理

通读了剑指offer这本书,决定把上面涉及到的算法进行整理,加深对算法的理解,并通过Java代码进行实践。待更新。。。package com.xpn.offer;import java.util.Stack;/** * 2、实现singleton模式 * 3、二维数组的查找,从左到右、从上到下有序 findSortedMatrix * 4、替换字符串的空格为“%20”,从后往前替换,提高效率

2015-04-12 15:37:15 1008

原创 算法整理-二叉树

参考Java实现二叉树算法 自己重写了部分代码,便于巩固和复习,其中最后几个题目没有测试,后两个题目没有实现,有点难度,以后有机会再去探索。package com.xpn.tree;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Stack;import

2015-04-11 22:16:26 820

原创 算法整理-单链表相关

参考连接思路,从头到尾实现了链表的相关操作。[http://blog.csdn.net/fightforyourdream/article/details/16843303] 通过集中式的训练,对于链表类题目有了比较系统的认识和理解,很有帮助,便于以后巩固复习,后边几个例子没有进行测试。。package com.xpn.linklist;import java.awt.HeadlessExcept

2015-04-10 16:52:32 394

原创 python面试整理

对于测试开发类而言,python有强大的优势,如何做好准备去迎接python相关的面试,接下来对python相关考点进行要点总结。type和isinstance函数的区别 type(obj) 对象 ‘instance’ type(cls) 类 ‘classobj’ isinstance(obj,class),如果object是class的instance,返回True。os,sy

2015-04-10 10:41:13 489

原创 算法整理-排序(直接插入排序)

思想:基于前面有序,对后边的元素进行插入的方法。 代码package com.xpn.sort;public class InsertSort { /** * @param args */ public static void main(String[] args) { int a[]={49,38,65,97,76,13,27,49,78,34,

2015-04-09 15:50:11 466

原创 算法整理-排序(堆排序)

堆排序的思想也是用了分治原则,这里涉及到最大堆相关知识,在此不做过多介绍。主要进行代码上的实现。 需要的函数:swap(int[] a,int i1,int i2) :交换数值。maxHeap(int[] a,int heapSize,int i):调整i以下的元素为最大堆。buildHeap(int[] a):构建最大堆heapSort(int[] a):通过递归进行排序。 所有代码如

2015-04-09 14:13:16 482

原创 tomcat7源码-annotation

出于兴趣,对tomcat7源码进行相关学习和整理。网上对于tomcat7框架的介绍已经很多了,在理解整体框架的基础上,接下来就是对于具体的每一个包每一个类进行相关研究,希望本人能坚持下去,读完每一行tomcat7源码,以此博客来监督自己。今天主要研究下annotation相关内容。annotation概念 元注解(meta-annotation):负责注解其他注解。 1.@Target 说明注

2015-04-09 10:36:19 632

原创 算法-Remove Duplicates from Sorted Array

从有序数组中删除重复的数据,返回长度

2015-04-08 20:55:17 46

原创 算法整理-字符串(LCS,旋转字符串)

字符串是编程中最重要的一类数据结构,能否对字符串进行灵活处理是考察一个求职者最基本的要求,而且字符串在面试中占的比重也很大,接下来就针对字符串相关的算法进行简要的整理和归纳。 字符串相关问题包括最长公共子串、最长公共子序列、字符串逆序等等。旋转字符串问题描述:给一个字符串和一个旋转的偏移量offset,将字符串循环右移offset位。如:”abcdefg” 循环右移 4位之后变为了:”defga

2015-04-08 17:25:09 559

原创 算法整理-排序(归并和快排)

趁找工作之际,着手对算法进行相关学习和整理,便于自己复习巩固,也以此来督促自己进行算法的研究学习。通过对算法的整理,一方面希望对于自己有所提高,另一方面,也希望提高自己的书面表达能力,文中有所不正确的地方,望批评指出,多谢。 对于算法学习,从简单到复杂。本博客通过以下几个大类进行相关的算法整理和研究。 今天主要整理一下排序相关的算法。对于排序而言,一般最常考的就是归并排序和快速排序,接下来就针对

2015-04-08 16:02:21 744

原创 docker compose环境搭建

概述Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用。 使用docker定义和运行复杂的应用,使用compose,可以在一个文件里,定义多容器的应用。只需要三步即可完成一个应用的创建。Dockerfile定义app的运行环境docker-compose.yml定义组成app的servicesrundocker-compose

2015-03-13 15:18:50 20016 1

原创 docker compose环境搭建

概述Docker Compose提供一个简单的基于YAML配置语言,用于描述和组装多容器的分布式应用。 使用docker定义和运行复杂的应用,使用compose,可以在一个文件里,定义多容器的应用。只需要三步即可完成一个应用的创建。Dockerfile定义app的运行环境docker-compose.yml定义组成app的servicesrundocker-compose

2015-03-13 15:08:14 59

CAsyncSocket的实现

通过socket实现TCP通信,实现聊天程序的收发。

2012-06-23

MFC Windows

MFC 实现WinSocket功能,实现TCP通信功能

2012-06-23

空空如也

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

TA关注的人

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