- 浏览: 147383 次
最新评论
-
sadamu900912:
long t1 = System.currentTimeMil ...
ArrayBlockingQueue V.S. LinkedBlockingQueue -
ygmyth:
jag522 写道ArrayBlockingQueue和Lin ...
ArrayBlockingQueue V.S. LinkedBlockingQueue -
iSmile:
虽然一口气没有看完,但是我觉得还是要给楼主一个大大的赞!
深刻理解JavaScript基于原型的面向对象 -
470275283:
var Coder = function (name, lan ...
深刻理解JavaScript基于原型的面向对象 -
470275283:
var Coder = function (name, lan ...
深刻理解JavaScript基于原型的面向对象
文章列表
本文目标:学习一种比较安全的服务器间互相验证身份的方式。
问题:开发微信公众平台接口,开发者的服务器为了确保请求是否来自微信服务器,应该如何去做?
1) 在微信管理页面上填写URL和TOKEN,开发者服务器上也记录同样的TOKEN。
2) 微信服务器发送HTTP请求,附带上参数(注意TOKEN是不会被传输的)
参数
描述
signature
微信加密签名
timestamp
时间戳
nonce
随机数
echostr
随机字符串
其中signature值通过如下摘要运算得出:
1. 将token、timesta ...
使用堆求数组第K大的数
- 博客分类:
- Algorithm
在上一篇博文中,O(n)复杂度,求数组中第2大的数 ,ansjsun同学留下一个非常有价值的回复:
ansjsun 写道
大概看了下代码...这么排啊...其实答案应该是堆排...第二大是 O(2*logn) = O(n)
感谢ansjsun提供的思路,下面是我实现的代码
import java.util.Arrays;
public class MaxHeap {
private int[] array;
private int size;
public MaxHeap(int[] array){
this.array = Arrays.c ...
可以遮住applet的遮罩层
- 博客分类:
- frontend
<DIV id="divDiableScreen" style="display:block;Z-INDEX: 100; POSITION: absolute; FILTER: alpha(opacity=15); BACKGROUND-COLOR: #000; WIDTH: 100%; HEIGHT: 100%; TOP: 0px; LEFT: 0px; opacity: 0.15" >
<IFRAME style="Z-INDEX: -1; POSITION: absolute; FILTER: progid: ...
java primitive type的cast
- 博客分类:
- Java
(int)(char)(byte)-1;//结果是65535
(int)(short)(byte)-1;//结果是-1
(int)( ((char)(byte)-1) | 0xffff0000);//-1
byte[8bits],short[16bits],int[32bits],long是signed[64bits],而char[16bits]是unsigned。
窄类型转换为宽类型的规则是:
1 如果窄类型是signed,则符号位扩展到高位
2 如果窄类型是unsigned,则0扩展到高位。
综合成一句:
窄类型转换为宽类型,符号位会扩展到高位。
宽类型转换为窄类 ...
O(n)复杂度,求数组中第2大的数
- 博客分类:
- Algorithm
为什么我反对纯算法面试
提及一条算法题目,查找一个数组中第二大的数。
第二大数,直接想到的是,先遍历一次数组,把最大的取出来。然后再遍历一次,把最大的取出来。总耗费时间复杂度O(n + n -1)
还有没有其他O(n)的算法呢?
先挖坑,在填坑,都到凌晨2点了,明天想下
早上起来,想了下,跟上次连续子数组的思维差不多,用两个数字保存最大的两个数值,大的放前面,第二大的放后面,然后在遍历过程中穷举各种情况即可。
public class kmax{
public static void main(String[] args){
int[] a = new ...
常见的lazy loading单例写法有2种写法,DCL和内部类SingletonHolder。但是在以下情况下会失效:
1. 单VM,序列化与反序列化
2. 单VM,多CLASSLOADER
3. 多VM
好了,先开个坑,吃早餐去。解决方案,随后附上
一个有N个整数元素的一维数组( A[0], A[1], ... , A[n-2], A[n-1]),子数组之和的最大值是什么?(要求子数组的元素是连续的)
给人典型的动态规划的感觉。先求到前面i个元素的最大子数组之和max,然后在此基础上考虑i+1的情况,直 ...
HTTP STATUS CODE
- 博客分类:
- Http
1 缓存相关
304, Cache-Control, Pragma, Expires, If-Modified-Since, ETag, If-None-Match,
2 重定向
301 Move Permanently 搜索引擎记住的是response中的URL
302 Move Temporarily 搜索引擎记住的是request中的URL
303,307 是对302的扩充,对GET/POST进行了区分处理
3 常见
404 NOT FOUND。你懂的。现在网站流行返回一些公益广告。
500 服务器程序抛出异常啦,赶紧加班搞定。
http://www.cn ...
页面优化
- 博客分类:
- JavaScript
Q: 一万个节点,行为类似,滚动时会有事件发生,渲染也很慢,非常卡,如何优化。
A:
吐槽:
优化个毛,谁写的HTML,马上炒掉(by 司徒正美)。
这脑残的页面么,我感觉拉动都卡(by 榕城-渔业泡妞)
实际上:这个页面是 ...
1 函数索引用作对含有NULL的字段进行索引。create index IND on tbl(nvl(col,'0'))
2 把表根据查询拆开
3 in exists互换看效果,现在普遍exits占据主流的情况下,需要具体分析。
4 子查询改成单一查询的多表连接可能对索引生效(all rows)
5 exists在rules情况下必然会全表扫描主表,但是all rows下未必。
6 in() 最多1K个值。改成(columnName in() or columnName in())或者(not in() and columnName not in())
7 分库 分区 分表 大 ...
WINDOWS编程字符串类型
- 博客分类:
- C/C++
1 C运行库对字符串的处理:
str*系列: C运行库早期使用strlen strcpy等str*系列函数对char类型的字符串进行处理。wcs*系列: C编译器内置了wchar_t这个16位宽字节类型后,使用新的wcslen wcscpy等wcs*系列的函数对wchar_t类型的字符串进行处理。_tcs*系列: C运行库定义了宏_tcslen _tcscpy等_tcs*系列的宏定义,_tcs*系列函数在编译时根据是否预定义了宏_UNICODE而确定是采用wcs*系列函数,否则采用str*系列函数。_tcs*_s系列: C运行库的最新安全字符串函数,为了防止缓冲区溢出而定义的 ...
有时候我们构造一个对象的时候,直接所需的参数未必都已经准备好,需要分步骤收集,或者需要在现有的参数上再做判断和进一步处理,又或者需要用户临时去决定。简而言之,我们只有间接数据,没有直接数据,因此不能 ...
<<分布式JAVA应用:基础与实践>>
试读:http://book.51cto.com/art/201011/235526.htm
http://9.douban.com/subject/9361717/
http://book.douban.com/subject/4848587/
林昊,淘宝架构师,OSGI带头人
{互联网,OSGi,Java, High Scalability, High Performance,HA}
...
我的步骤执行容器StepFramework
- 博客分类:
- Java
读者可以在eclipse中导入附件的项目,执行main.java体验"步骤执行容器"的效果(温馨提示,stepframework依赖了dom4j,在附件中的dependence目录含有该lib)。
问题背景与实现简述
通常情况下,一项任务可以分为多个步骤 ...