e.printStackTrace()通常是打印在控制台的,但是,有时候程序上线了需要看这个堆栈的内容就不容易了,一来生产环境打印的东西很多或者很少,二来有时候无法直接查看到,这个时候就需要把这些内容记录下来,比如记录到数据库中,下面的方法可以完整记录。Java代码public static voi...
分类:
其他好文 时间:
2014-07-07 16:28:28
阅读次数:
129
1、 汇编2、 脱壳1)5种常见的语言特征(也是判断是否到达OEP的一种方法)2)附加数据的处理3)自校验的处理 1) 如果是调用错误提示——F12堆栈调用法 2)如果是文件/数据损坏错误提示——2OD对比法(bp CreateFileA)4) BC++程序的手动查找IAT3、 破解1>一般破解目标...
分类:
其他好文 时间:
2014-07-07 16:13:57
阅读次数:
248
B+树最常用,性能也不差,用于范围查询和单值查询都可以。特别是范围查询,只有用B+树这种顺序索引才行。HASH索引的如果只是对单值查询的话速度会比B+树快一点。位图的使用情况很局限,只有很少的情况才能用,一定要确定真正适合使用这种索引才用(值的类型很少并且需要复合查询),否则建立一大堆位图就一点意....
分类:
数据库 时间:
2014-07-07 14:32:49
阅读次数:
268
在标签页还没有诞生的时候, 浏览器对关键词的搜索似乎只能另起窗口显示搜索结果。且这些结果页散乱无序,假若再返回某一页面,就要从桌面一堆窗口里或者一长串任务栏内去翻找,相信现在用惯有标签页浏览器的同学,应该没有谁会愿意再去用这样的产品。这是一个典型的页面跳转例子,并且散乱无序是用户很头痛的事情。在用户...
分类:
移动开发 时间:
2014-06-30 23:13:49
阅读次数:
387
践踏堆栈-缓冲区溢出漏洞
打算写这篇文章是因为在网上看过一篇论文,讲了缓冲区溢出破坏堆栈来执行恶意程序的漏洞。该论文请见参考资料1。这篇文章会涉及一些汇编的基础知识,以及虚拟内存的一些基本概念等。当然用来调试程序的系统是linux,工具是gcc。很久没有看过汇编和C语言了,错漏之处,还请指正。
1.概要
文章标题有提到堆栈和缓冲区,那么就先来探讨下这几个名词的定义。这里的缓冲区,指的就是计算...
分类:
其他好文 时间:
2014-06-30 10:22:25
阅读次数:
176
①push_heap算法
下面是push_heap算法的实现细节。该函数接收两个迭代器,用来表现一个heap底部容器(vector)的头尾,并且新元素已经插入到底部的最尾端。
template
inline void push_heap(RandomAccessIterator first,RandomAccessIterator last)
{
//注意,此函数被调用时,新...
分类:
其他好文 时间:
2014-06-30 09:25:57
阅读次数:
239
GC检测用于查看堆中是否有对象不再被程序使用。如果这样的对象存在,这些对象占用的内存就可以被回收利用。(如果堆中没有可用内存空间时,new操作符将会抛出OutOfMemoryException异常)GC是怎样知道一个对象是否还被程序使用呢?你可以想象一下,这不是一个容易回答的问题。
每一个程序都有一组根节点(roots),它们用于识别定位托管堆中的对象或空(null)对象指向的存储空间。比如,程序中所有全局对象指针或静态对象指针都被看作是程序根节点(roots)的一部分。另外,线程栈中任何局部变量或参数对象...
分类:
Web程序 时间:
2014-06-30 07:33:05
阅读次数:
327
从Java 强引用,软引用,弱引用http://blog.csdn.net/jltxgcy/article/details/35558465一文中,我们看到把一个对象赋值给另一个对象,本质上是增加了引用计数,但是它们都指向同样的堆内存,它们是一个对象。如果我们想要一个独立的对象,改怎么办呢?答案是clone。
1、浅拷贝
浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变...
分类:
编程语言 时间:
2014-06-30 00:59:55
阅读次数:
303
1. 在IDE中查看Log信息
当程序运行垃圾回收的时候,会打印一条Log信息,其格式如下:
D/dalvikvm: , , ,
GC_Reason表示导致垃圾回收的原因以及当前的回收类型,包括以下几类:
GC_CONCURRENT:当堆中对象数量达到一定是触发的垃圾收集
GC_FOR_MALLOC:在内存已满的情况下分配内存,此时系统会暂停程序并回收内存
...
分类:
移动开发 时间:
2014-06-29 23:28:34
阅读次数:
374
题目链接:http://poj.org/problem?id=2442
题目大意:给出一个m*n的矩阵,从每一行中取出一个数相加,能得到n^m个不同的结果,要求输出其中前n项。
建立一个以n元数组为底层数组的堆,在这里,利用stl中的make_heap,pop_heap,push_heap等函数解决。
1.将第一组数据输入arr1数组,升序排序。
2.将接下来的数据输入到arr2数组中,并...
分类:
其他好文 时间:
2014-06-29 23:25:31
阅读次数:
259