Java深入了解String对象 一,从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点.从中可以看到: 1,String类是final的,不可被继承.public final class String. 2,String类是的本质是字符数组char[], 并且其值不可改变.private final char valu
SAS_9.3_64位_安装方法(验证可用) 第一步:启动SAS安装程序,我的系统配置,Windows 7, 64Bit Home Edition 第二步,选择安装方案,这里我按照默认安装路径。 第三步,很重要,要按照我的方法选择。 这是很关键的一步,人大论坛已经有的一个手把手教你安装SAS 9.3的教程里边提到选择第一个“Perform a Planned Depl
JSVC编写自己的Linux启动脚本 在linux系统上进行项目开发,在部署java项目时,常用方法就是写一个shell脚本,但当服务器重启了,经常会忘了启动shell脚本了。所以我们需要把自己的应用变成linux的服务,当服务器启动的时候就自行启动自己的应用。使用JSVC就能够实现上面的功能。jsvc详细信息请参考:http://commons.apache.org/daemon/jsvc.html 1.安装jsvc
CentOS安装thrift 下载thrift依赖的东西 yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel crypto-utilsopenssl openssl-devel 下载最新版本thrift,网址:http:
配置secondarynamenode secondary namenoded 配置很容易被忽视,如果jps检查都正常,大家通常不会太关心,除非namenode发生问题的时候,才会想起还有个secondary namenode,它的配置共两步: 集群配置文件conf/master中添加secondarynamenode的机器 修改/添加 hdfs-site.xml中如下属性:
查找算法整理之索引查找 索引查找是在索引表和主表(即线性表的索引存储结构)上进行的查找。索引查找的过程是:1) 首先根据给定的索引值K1,在索引表上查找出索引值等于KI的索引项,以确定对应予表在主表中的开始位置和长度,2) 然后再根据给定的关键字K2,茬对应的子表中查找出关键字等于K2的元素(结点)。对索引表或子表进行查找时,若表是顺序存储的有序表,则既可进行顺序查找,也可进行二分查找
查找算法之哈希查找 哈希查找是通过计算数据元素的存储地址进行查找的一种方法。O(1)的查找,即所谓的秒杀。哈希查找的本质是先将数据映射成它的哈希值。哈希查找的核心是构造一个哈希函数,它将原来直观、整洁的数据映射为看上去似乎是随机的一些整数。哈希查找的操作步骤:1) 用给定的哈希函数构造哈希表;2) 根据选择的冲突处理方法解决地址冲突;3) 在哈希表的基础上执行哈希查
查找算法之二分查找 【基本思想是】:首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。【算法复杂度】:假设其数组长度为n,其算法复杂度为o(log(n))【二分查找要求】
查找算法之顺序查找 基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值K相比较。若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的结点,则查找失败。顺序查找的优点: 算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无论结点之间是否按关键字有序,它都同样适用。顺序查找的缺点: 查找效率低,因此,当n较大时不宜采用顺
排序算法整理之归并排序 归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并操作的过程如下:1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置3. 比较两
排序算法整理之希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种高速而稳定的改进版本。希尔排序是基于插入排序的以下两点性质而提出改进方法的:l 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率,如果当数据是”5, 4, 3, 2, 1“的时候,此时将“无序块”中的记录插入到“有序块”时,每次插入都要移动位置,此时插入排序的效率及其低下。l 但插入排序一般
排序算法整理之插入排序 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 一般来说,插入排序都采用in-place在数
排序算法整理之堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序的过程是:1. 建立一个堆2. 把堆首(最大值)和堆尾互换3. 把堆的尺寸缩小1,目的是把新的数组顶端数据调整到相应位置4. 重复步骤2,直到堆
排序算法整理之选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾(目前已被排序的序列)。以此类推,直到所有元素均排序完毕。如图:第一步: 我们拿80作为参照物(base),在80后面找到一个最小数20,然后将80跟20交换。第二步:第一位
排序算法整理之快速排序 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。 步骤为:1. 从数
排序算法整理之冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一
排序算法概述 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。不稳定排序算法可能会在相等的键值中改变纪录的相对次序,但是稳定排序算法从来不会如此。排序大概分为四类: 交换排序:包括冒泡排序,快速排序。 选择排序:包括直接选择排序,堆排序。 插入排序:包括直接插入排序,希尔排序。 合并排序:合并排序。评估排序算法的
MongoDB学习整理之管理 1、克隆collection 1)克隆远程colletion,使用cloneCollection命令完成将远程的collection复制到本地。 命令格式:db.runCommand({cloneCollection:"集合",from:"原机器",copyIndexes:false}),copyIndexes:是否复制索引 例子:
MongoDB学习整理之索引 索引信息保存在system.indexes创建索引: db.c1.ensureIndex({age:1},{background:true}) 1:升序 -1 :降序 background:是否后台创建索引查询表的索引 db.c1.getIndexes()或db.system.indexes.find()文档索引
MongoDB学习整理之访问控制 1、限制特定IP地址访问,只需启动时加入--bind_ip 参数 ,客户端连接时也需要添加--host /app/mongo/mongodb/bin/mongod --dbpath=/app/mongo/mongodb/data/test --logpath=/app/mongo/mongodb/data/test/server.log --fork --bind_ip 132.