自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 数据结构基础:哈希表(HashMap)原理分析

前言: 数组的特点是:寻址容易,插入和删除困难; 链表的特点是:寻址困难,插入和删除容易;我们可以构造一种结合两种优点的“链表散列”的数据结构,可以理解为链表的数组,HashMap就是基于其实现的。 1.哈希表的缺点有和优点优点:相对数组可以节省存储空间;插入和寻址都很快;在散列表中,查找一个元素的时间和链表中是相同的,都为O(n),但是在实践中散列表效率是

2015-11-12 21:57:30 840

原创 数据结构基础:栈和队列

栈和队列都属于抽象数据类型, 所以放到一起.1. stackstack很熟悉的一个地方就JVM的虚拟机栈.我们知道, 在JVM里面的栈区, Java虚拟机栈(Java Virtual Machine Stacks)是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用

2015-11-08 18:54:46 619

原创 数据结构基础:二叉树,堆,多叉树

二叉树是结合了数组和链表的优点和缺点(数组插入效率低,链表查找效率低)二叉树的存储结构一般采用二叉链表,树中每一个结点都有一个数据域data还有两个分别用于指向该节点的左右儿子结点的指针域,通过这两个指针域建立了上下层结点的关系.二叉树的一些特性就不详细说了,很多资料都有,直接看看典型的二叉树.二叉查找树二叉查找树是满足以下条件的二叉树:1.左子树上的所有节点值均小于根

2015-11-05 22:19:01 4703

原创 数据结构基础:数组和链表

在了解基本的数据结构基础之前,理解抽象数据类型(ADT)的概念很有必要. Java 2软件开发包(SDK)提供了一些新类来支持大多数常用的ADT。这些类被称为Java集合类(类似于MFC中的集合类),它们协同工作从而形成Java 集合架构。这个集合架构提供了一套将数据表示成所谓的集合抽象数据的接口和类。 当我们谈论ADT的时候,经常会说到线性表,堆栈和队列。为什么它们被称为ADT?

2015-11-05 21:23:26 1506

原创 JAVA异常处理

异常处理一个良好的程序,应当包括防止错误和其他异常情况出现的代码。这种代码应当从最初的开发阶段就与程序合为一体。异常处理方法,一种把一个程序常规代码与他的处理错误的代码分开的分治的方法。其中,error是有一些硬件引起的异常,不是程序员能控制的;运行时异常JVM会自动处理的异常;编程人员主动处理这类异常的理由是:处理并更着它,使得程序更友好。检查性异常就

2015-09-16 20:51:45 532

原创 陕西方言学习

额最近是对这个陕西话是很感兴趣哈,简单搜集了点资料.列在这里,偶尔翻开看哈,权且当作搬砖的日子里的慰藉; 陕西话和普通话在音调上有严格的对应关系,只要对普通话对应进行转换,就可说出标准的陕西话。    大部分文字的发音由中国普通话转为陕西音只是变一下声调,四种声调的转变规律如下:     注意:汉语里,当两个三声音调的字在一起时,读出来时前一个就发成

2015-09-08 15:04:21 2188

原创 J2EE:数据访问层的设计相关概念

什么是数据访问层?参考:http://www.cnblogs.com/whitewolf/archive/2012/06/05/2535486.htmlJ2EE里面的数据访问层这么设计的: 附注:图片来自:http://www.it-crazy.net/dal-design-on-game/ 要想理解这个,我们回到JDBC的理解;什么是JDBC?

2015-07-22 14:56:28 794

原创 Intelij结合VIM插件

首先,上键盘图,上面非常清楚;说明:移动操作:h, j,k,l :左,下,上,右w: 前移一个单词,光标停在下一个单词开头;(Next word)·       W: 移动下一个单词开头,但忽略一些标点;b: 后移一个单词,光标停在上一个单词开头; B: 移动到上一个单词开头,忽略一些标点;·       $: 移动到行尾。(

2015-07-22 12:39:24 551

转载 Maven的pom.xml介绍

转载于:http://haohaoxuexi.iteye.com/blog/2055745 Maven的pom.xml介绍6.1     简介       pom.xml文件是Maven进行工作的主要配置文件。在这个文件中我们可以配置Maven项目的groupId、artifactId和version等Maven项目必须的元素;可以配置Maven项目需要使用的远程仓库;可以定义Ma

2015-07-17 13:57:03 396

原创 shell脚本编程基础总结

shell脚本编程基础总结 一直以来,觉得linux挺好用的,对于一些基本的命令,man一下,或者百度一下都能解决问题,但是如果想用shell做一些自动化一点的事情,还得学好脚本.当然,这里只是说shell脚本.首先,shell的脚本命令就不罗嗦了,基本都知道,即使不知道也能轻易的查找资料.(当然,有不同版本的shell,都大同小异) 1.1 符号命令参考:http://b

2015-06-18 16:31:47 497

原创 Centos配置MongoDb replica sets

要配置的形式是: 2个standard节点+1个arbiter节点 步骤#服务器节点的时间同步检查下#服务器连通性看下如何,看下能否ping通一、首先修改3台服务器的mongo.conf配置文件要改的地方有:1.     把IP改成服务器的IP,不要用127.0.0.12.     给3台机器replSet起个一样的名字 设置完成后重启下

2015-04-16 16:07:15 530

原创 linux基础知识之:awk编程

1.域的概念是什么,分隔符到底分隔的是什么 分割符的目的:设定域的分隔的规则,分割后得到的一段段的内容就是域,如果是第一个域,就用$1得到....如果分割后的域里面的内容不全是所需要的比如域1里面是  testStr1>testStr2>sddd要想得到testStr,可以用两次awk:awk -F '' '{if($2==""){ prin

2015-04-05 20:48:49 543

原创 JS基础知识之:几个有启示的地方

在学习JS过程中,当看到了下面几点的时候,才开始有点理解JS,点不是很多,但是个人认为很有启示意义1. firstChild属性和lastChild属性的来源 在JavaScript中,使用childNodes属性可以返回一个数组,这个数组包含给定元素节点的全体子节点,如代码所示:      第一段文字">第一个     第二段文字">第二个var

2015-04-04 11:08:57 912

原创 JS基础知识之:DOM学习

DOM学习 http://www.w3school.com.cn/htmldom/dom_nodes.asphttp://www.w3cschool.cc/jsref/dom-obj-attributes.html DOM艺术这本书的介绍:http://www.cnblogs.com/hustlzp/archive/2011/08/11/the-reading-note-o

2015-04-04 10:28:22 466

原创 linux基础知识之:Shell编程

Shell编程当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序。那么,shell是什么呢?确切一点说,shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序。本人目前对Shell还没有体会到方便之处,以后有了更深

2015-03-28 22:28:07 581

原创 vim编辑器重要的命令

1. VI编辑器的启动与退出#vi file1 新建一个文本文件为file1:q! 在末行模式下退出,不保存内容:wq  保持并退:r anotherFile 实现anotherFile 文件的读入功能  2. 在命令模式下,输入i 进入输入模式相关操作:使用上下左右方向键进行光标移动Home和End  快速定位光标到行首和行尾Page Up和Page 

2015-03-28 18:03:56 588

原创 linux基础知识之:常用命令

这里简单整理一下比较常用的命令的用法--陆续完善完全记住所有的命令基本不可能,比较linux的命令命名很难记住,特别是参数基本都是缩写,所以重点是学会看帮助文档和举一反三.首先,哪里去寻找帮助文档?Tips:要想以比较全面的文档方式查看,用info命令:info  your_command [ | more]要想粗略的看下参数的意义和用法  man命令就OK --前提是

2015-03-27 21:50:07 757

原创 linux基础知识之:IO重定向和管道

1. IO重定向有两种基本的方法可以用来重定向标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。可以利用管道把这些数据流之一输送给另外一条命令;也可以利用I/O重定向把这些数据流之一重定向到一个文件。管道及I/O重新定向是Linux系统中特有的概念。所谓管道是指将某个命令的输出结果传送到另一个命令,当成另外一个命令的输入,其代表符号是"|"。所谓I/O重定向是

2015-03-27 14:45:32 690 1

原创 Linux基础知识之:目录结构和权限问题介绍

1.Linux 标准目录结构/    ( 根目录)root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制)sbin --- 可执行程序的目录,但大多存放涉及系统管理

2015-03-27 12:05:15 607

原创 android动态布局

动态布局:只涉及相对布局和线性布局先看一个例子import android.app.Activity;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.EditText;

2015-03-25 19:27:32 641

原创 android手势和触摸事件

PartA:Android识别触摸屏手势使得用户体验大大提高。在View类中有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些简单的touch事件,但是这个方法并不能识别手势,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸的轨迹去判断是什么手势)。首先

2015-03-25 16:31:21 1357

原创 JAVA基础复习:字符串相关

String是最常用的一个操作,有必要完全掌握下;Java对象的引用,用来操纵内存元素。例如:String s;//创建一个String类型的引用对象的引用与对象关联——初始化,例如:s = "abc";//Java语言特性,String可以用带引号的文本初始化。更通用的初始化,创建对象,例如:s = new String("abc");——《Thinking in Java》

2015-03-19 21:08:12 410

原创 JAVA基础复习:资源共享

由于同一进程内的多个线程共享内存空间,在Java中,就是共享实例,当多个线程试图同时修改某个实例的内容时,就会造成冲突,因此,线程必须实现共享互斥,使多线程同步。      最简单的同步是将一个方法标记为synchronized,

2015-03-19 13:54:54 531

原创 JAVA基础复习:涉及并发的一些基础概念

Thingking in JAVA上是这样说的:【用并发解决的问题大体上可以分为“速度”和“设计可管理性”两种;并发通常是提高在单处理器上的处理速度(有点违背直觉)--由于阻塞存在的原因】1、进程和线程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位;线程是进程的一个实体,是CPU调度和分派的基本单位

2015-03-18 20:03:50 411

原创 开源项目学习:Android-Universal-Image-Loader-Part3

这一次是学习作为一个工具包,怎么对外提供方法;我们可以先看看这个开源库存在哪些特征:多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置支持图片的内存缓存,文件系统缓存或者SD卡缓存支持图片下载过程的监

2015-03-14 21:39:38 688

原创 开源项目学习:Android-Universal-Image-Loader-Part2

这次就是专门学习内存储存了。从内部储存这块要学习的内容有1.     简单了解类的继承关系2.     关注里面的一些熟悉的语法但是陌生的用法    --嵌入到了代码部分用红色标注了3.     关注函数的命名规律;4.     关注里面出现的比较常用的算法/******************************************************

2015-03-13 16:38:42 474

原创 开源项目学习:Android-Universal-Image-Loader-Part1

首先,这个是第一次认真的学习开源项目,以前都是能用就行,没想太多;直到最近发现开源包里面我们可以学习到很多知识;废话不多说,进入正题。首先 ,简单了解下这个包是干嘛的使用参考:http://blog.csdn.net/xiaanming/article/details/26810303 ImageLoader的使用的时候常见的几个核心函数: ImageL

2015-03-13 11:28:40 518

原创 JAVA基础知识:抽象类、接口

首先,我主要参考的是这个:  http://blog.csdn.net/chenssy/article/details/12858267里面的概念说的很详细了1. 抽象类出现的初衷:这篇博客里面说的很形象:“我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,

2015-03-11 17:31:18 730

原创 JAVA基础知识:复用类

学了一年的JAVA,最近搞android也发现稳固的JAVA基础很重要~基础没牢靠的话想要继续研究android的话很吃力;从概念开始引出知识体系是我比较喜欢的一种方式。今天复习的是复用类这个概念。类的复用是是JAVA引人注目的功能之一;区分一点就是我们的复用限定在类的复用,而不是通常说的更广意义的软件代码复用,软件代码复用不是简单的复制别的代码,而是对类的复用

2015-03-11 17:24:07 561

原创 JS字符串对象和正则表达式

对象: 创建字符串对象有:String对象和字符串字面量2种方式。var mystring =new String(“myStr”);或者var mystring=”myStr”;String对象和字符串字面量之间的区别是:普通文本字符串的值就是它本身,可以直接与其他字符串比较;而String对象却不是值本身 方法:(这些方法转载于)http://www.jb5

2014-12-24 11:55:19 1321

转载 JS数组操作总结

在茫然中过了半年之后,发现前端技术是有必要的,毕竟后台搞起来复杂度很大,难度也很大,而且基本的前台技术是必要的;所以,最近要静下来,前端基础打牢点。1、数组的创建 var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度

2014-12-11 10:26:14 407

原创 编译PCL的时候,cmake的时候出现cannot find Boost libraries

编译PCL的时候,cmake的时候出现cannot find Boost libraries  system  filesystem  thread  date_time  iostreams  chrono解决办法:1.首先分析,既然找不到,那么是没有安装这个文件呢,还是有这个文件但是编译的时候找不到呢?首先去判断是否已经有文件存在.locat

2014-09-18 20:21:44 12312 4

转载 spring核心:IOC和AOP

1.控制反转(Inversion of Control)与依赖注入(DependencyInjection)控制反转即IoC (Inversion ofControl),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转移,从程序代码本身转移到了外部容器。依赖注入DI是对IOC的另一种描述;DI也就是将应用

2014-09-16 16:05:09 580

原创 mina框架分析:自定义编码解码

mina支持自定义编码和解码,

2014-09-10 11:07:49 3427

原创 mina框架分析:线程池

mina框架提供了几种不同的线程模式OrderedThreadPoolExecutor

2014-09-09 17:14:40 2099

转载 mina框架:白名单实现

Apache Mina自带了一个黑名单过滤器BlacklistFilter,可过滤黑名单列表中的网络连接。用来防止非法的客户端访问。但在某些应用场景里需要设定白名单,只接收某些指定IP的客户端发来的数据。这就需要实现白名单功能。我们可以自己实现白名单过滤器,方法很简单只需仿照BlacklistFilter做些修改即可。

2014-09-09 10:37:10 1764

转载 mina框架分析:mina Filter

Apache Mina FilterMina中的过滤器处于IoService与IoHandler之间,用于过滤每一个I/O事件。本文分析Mina中的过滤器是怎么串起来的?前面提到了IoFilter,FilterChain等接口和类,在分析过滤器链怎么串起来之前,有必要看一下这些接口和类之间的关系。如上图所示:FilterChain是由一个个E

2014-09-09 09:12:10 1057

原创 java线程池及实现原理

线程池的作用:线程池作用就是限制系统中执行线程的数量。     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;

2014-09-04 21:12:42 1148

转载 Java 多线程间的通讯

Java 多线程间的通讯问题在前一小节,介绍了在多线程编程中使用同步机制的重要性,并学会了如何实现同步的方法来正确地访问共享资源。这些线程之间的关系是平等的,彼此之间并不存在任何依赖,它们各自竞争CPU资源,互不相让,并且还无条件地阻止其他线程对共享资源的异步访问。然而,也有很多现实问题要求不仅要同步的访问同一共享资源,而且线程间还彼此牵制,通过相互通信来向前推进。

2014-09-04 19:53:43 753

转载 JAVA并发性和多线程学习笔记-概念知识

1.多线程优点:尽管面临很多挑战,多线程有一些优点使得它一直被使用。这些优点是:·        资源利用率更好·        程序设计在某些情况下更简单·        程序响应更快代价:从一个单线程的应用到一个多线程的应用并不仅仅带来好处,它也会有一些代价。不要仅仅为了使用多线程而使用多线程。而应该明确在使用多线程时能多来的好处比所付出的代价大的时候,才使用多线程。如

2014-09-03 11:28:41 579

空空如也

空空如也

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

TA关注的人

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