- 浏览: 79499 次
- 性别:
- 来自: 北京
文章列表
twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,比如像feedtwitterrss2twitter推特中文圈(这个目前好像有点问题转回来的时候是个错误地址) 这种网站就是这个效果。其实这都是拜 OAuth所赐。
OAuth是什么?
OAuth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证。
OAuth有什么用?为什么要使用OAuth?
网络开放是一个不变的趋势,那么不可避免的会有各种网络服务间分享内容的需要。
举个我们身边国内的例子吧:比如人人网想要调用Q ...
最近看了下javaeye上一篇关于string优化的文章,借此分析下string 原文地址http://skydream.iteye.com/blog/48351
先看看作者的问题分析:
首先把问题摆出来,先看这个代码
String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1.true ...
0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送至栈顶0x07 iconst_4 将int型4推送至栈顶0x08 iconst_5 将int型5推送至栈顶0x09 lconst_0 将long型0推送至栈顶0x0a lconst_1 将long型1推送至栈顶0x0b f ...
检查字符串是否是整数
今天在论坛中看见一个贴,讨论用异常检验字符串是否为整数,出处http://www.iteye.com/topic/856221。个人总结了里面的方法。有如下四种:
1、 异常检测法;2、每个字符检测法;3、使用Character中的isDigit法;4、正则表达式法。个人分析比较了下这四种方法。如有错误请指出;
1、 异常检测法
代码如下:
public static boolean validateInteger1(String str) {
try {
Integer.parseInt(str);
} catch ...
计算机程序设计艺术-----红黑树
- 博客分类:
- 算法
自己写的红黑树,先保存下来,有时间写具体细节。
节点类:
package com.star;
public class RedBlack {
private RedBlack parent;
private RedBlack left;
private RedBlack right;
private RedBlackEnum redOrBlack;
private Integer value;
public Integer getValue() {
return value;
}
public void ...
合并排序:把两个或多个有序序列合并为一个有序的序列。
例子:
合并503,703,765和087,512,677,得到087,503,512,677,703,765。每次比较两个序列最小的数,输出最小的,不断重复这个过程。
如:
<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@ ...
堆排序:一种基于堆的排序算法;
一些基础概念
堆定义:
当且仅当该序列满足如下性质(简称为堆性质):
(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n) //ki相当于二叉树的非叶结点,K2i则是左孩子,k2i+1是右孩子
若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:
树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
下图为数组对应的大根堆和小根堆。
堆的高度:
堆可以被看成是一棵树,结点在堆中的高度可以被定义为从本结点到叶子结点的最长简单下降路径上边的数目 ...
直接选择排序:
基本思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的后面(前面),直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
实现思想:
1、 针对n个数R[1…n]进行n-1趟选择就可排好序。
2、 无序序列R[1…n],有序列为空。
3、 第一趟选择,选出最小的数p[k],用p[k]和R[1]进行交换,得到无序序列R[2…n],有序列R[1].
4、 第二趟选择,从R[2…n]选出最小的数p[k],用p[k]和R[2]进行交换,得到无序序列R[3…n],有序列R[1…2].
重复上面过程,知道n-1趟。就排好序了。
例子:
初始关键字 ...
箱排序:也称桶排序。
基本思想:设置多[k]个箱,依次把a[1],a[2],a[3]…..a[n]按其键值为k放入k个箱中,依次按1-k把k个箱首尾相连。这样就排好序了。
例如:把一副52张牌按照点数排序,可以设置13个箱依次表示为1-13,把点数为A的放到1号箱,点数为2-10的分别放入2-10号箱,把J,Q,K分别放入11-13号箱,这样依次连接1-13号箱,就排好序了。
基数排序:
基数排序的特征:基数排序的每一个键都由d个分量组成ki1,ki2,ki3…ki(d-1),这d个分量每个分量代表一个独立的关键字。如:扑克牌中的点数和花色。
排序思想:从低位到高位依次对kj(j=d-1,d-2 ...
快速排序:是冒泡排序的改进。
基本思想:通过一趟排序把整个序列分为两部分,一部分的所有数比另一部分的所有数都小,再递归的处理这两部分,直到排好序。
实例:
上面是一趟排序后的结果,275,087,154,061,426,170都要小于503. 相同897,653,908,512,612,677,765,703都大于503;接到对275,087,154,061,426,170;897,653,908,512,612,677,765,703两部分进行相同的操作。
具体实现:
1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;
2)以第一个数组元素作为关键数据,赋值给key,即 ke ...
Shell排序:一种插入排序。
距离的概念:两个数之间的间隔i个数,这两个数的距离就为i
例如:1,2,3,4,5,6,7,8。1和2的距离为1;1和3的距离为2。
基本思想:先取一个增量d1<n,把待排序的数组按照增量分组,距离为增量d1的分到相同的组,相同组的数据按插入排序排序。接着取d2<d1,重复上面的过程,直到di=1<d(i-1)<…<d1为止。
例子:
代码实现:
private int shellsortCi(int[] p, int n) {
int op = 0;
int h, i, j, t, temp;
int incs[] ...
冒泡排序:一种最简单的排序算法。
基本思想:依次比较两数,保证小数在前,大数在后。
有两种方案:一、在每趟选出最小数,二、每趟选出最大数。
每趟选出最大数的实现思想是:在第一趟,比较第一个数和第二个数,如 ...
环境:
系统:ubuntu 10.10
hadoop版本:0.21
问题:
输入:hadoop namenode -format
错误:DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
解决办法:hdfs namenode -format
可能原因:hadoop已经去掉hadoop进行国际化换为:hdfs
输入:./start-all. ...
本文介绍了软件体系架构产生的背景和架构模式的基本理论.重点介绍管道与过滤器体系架构模式的结构,实现,优缺点等,然后以J2EE的Servlet Filter为例进行剖析它是怎样应用该架构模式的,最后简单阐述了在其它J2ee应用中(Jboss和Axis)的实践.
1 软件体系架构
1.1 软件体系架构产生背景
在经历60年代的软件危机之后,使人们开始重视软件工程的研究。来自不同应用领域的软件专家总结了大量的有价值的知识. 当初,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法=程序. 但是随着软件系统规模越来越大、越来越复杂,使软件系统的架构越来越重要。软件 ...
最近学习了下hadoop,把学习总结和大家分享下
地址http://download.csdn.net/source/2924388