- 博客(28)
- 问答 (1)
- 收藏
- 关注
转载 带权值轮询算法
二、算法实现带权轮询算法实现时,首先需要确定的是当前权值随着选择次数的变化应该如何变化,即当前权值与集合扫描次数的函数。常见的函数关系有线性关系、线性最大公约数关系、幂函数关系等。下面是线性最大公约数关系的算法实现:intvalue_round_select(S){ i = -1; cv = 0; while (true) { i
2015-05-08 21:36:28
594
原创 ASM增加局部变量
使用asm工具为一个函数添加局部变量后,重新加载该类失败。本篇文章主要分析错误的原因以及解决的办法。首先了解一下虚拟机的类加载机制。类在初始化之前要完成加载、验证、准备和解析。加载加载过程分为三步:1,通过一个类的全限定名获取定义这个类的二进制流2,将这个字节流代表的静态存储结构转化为方法区的运行时数据结构3,在Java堆中生成一个代表这个类的java.lang.Class
2015-03-10 20:33:04
3297
原创 Aop框架介绍
在面向切面的框架中,比较常用的有Aspectj,Aspecterkz,Spring和JBoss等。本篇本章介绍各种框架的织入时机,并讲述Aspecterkz动态织入的使用。Aop的能够将程序中的多个方面灵活的织入到一起,形成一个完整的程序,从而增强某个函数的功能。织入时机大体上可以分为四个阶段:编译时:在对源代码进行编译时,特殊的编译器允许我们通过某种方式指定程序中各个方面进行We
2015-02-12 11:25:51
558
原创 Tomcat的valve、filter和servlet的执行顺序
Tomcat中valve、filter和servlet的加载和执行顺序是:valve->filter->servlet。本篇文章从源码分析的角度讲述它们在tomcat中的调用关系。Tomcat中有四大容器类StandardEngine,StandardHost,StandardContext及StandardWrapper。在每个容器对象里面都有一个pipeline及valve模块。它们是容器
2015-02-11 19:10:11
2479
原创 重写webAppClassLoader
由于webappclassloader并没有遵循双亲委派类型,使用javaagent加载进来的类(由系统类加载器加载),会在webappclassloader中重新加载一次,所以需要重写webappclassloader。 首先,写一个classLoader继承自webAppClassLoader。重写loadClass方法,并且需要重写构造函数来指定父加载器。代码如下:packa
2014-12-09 11:31:27
1292
原创 1049. Counting Ones (30)
以下推导参考假设N=abcde,这里a、b、c、d、e分别是十进制数N的各个数位上的数字。如果要计算百位上出现1的次数,它将会受到三个因素的影响:百位上的数字,百位以下(低位)的数字,百位(更高位)以上的数字。如果百位上的数字为0,则可以知道,百位上可能出现1的次数由更高位决定,比如12 013,则可以知道百位出现1的情况可能是100~199,1 100~1 199,2 100
2014-11-23 20:19:06
379
原创 1001. A+B Format (20)
要注意当和为0的特殊情况处理#includeusing namespace std;int main(){ int a,b,sum,counter=0; int result[10]; scanf("%d %d",&a,&b); sum = a+b; if(sum<0){ printf("-"); sum = sum*-1;
2014-10-28 21:37:09
287
原创 1009:说反话 (20)
#include#include#includeusing namespace std;int main(){ string word; stack word_stack ; bool flag = false; while(cin>>word){ word_stack.push(word); } while(!word_s
2014-10-20 20:32:10
345
原创 1006 换个格式输出整数 (15)
因为n<1000,所以直接球#includeint main(){ int n; scanf("%d",&n); int num_b = n/100; int num_s = n%100/10; int num_n = n%10; for(int i=0;i<num_b;i++) printf("B"); for(int i=
2014-10-14 09:24:49
337
原创 1002. 写出这个数 (20)
分析:这道题目的思路是,求出和以后,从个位开始计算每一位的数字并暂存到一个数组中,最后先输出第一个,剩下的用for循环输出。
2014-10-10 10:14:41
381
原创 1001 害死人不偿命的(3n+1)猜想 (15)
这题比较简单#includeint main(){ int n; scanf("%d",&n); int count = 0; while(n!=1){ if(n%2==0) n = n/2; else n = (3*n+1)/2; count++; } printf("%d",cou
2014-10-10 10:13:18
380
原创 1003. 我要通过!(20)
分析:这题的思路是把xPATx带入到第三个公式aPbTc得到xPAATxx,再把xPAATxx带入到aPbTc中得到xPAAATxxx,再次得到xPAAAATxxxx.#includeint main(){ int n =0; scanf("%d",&n); for(int i=0;i char s[101] = {'0'};
2014-10-10 10:08:19
453
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人