小编pra*_*p19的帖子

URL Shortener如何工作?

我想知道URL Shortener是如何工作的,比如他们如何从地址栏中提取文本并将其映射到正确的URL,稍后重定向它.他们使用什么编程语言?他们如何保持映射的历史?他们如何确保缩短网址的唯一性?如果不访问URL,非专业人员如何取消映射?

url tinyurl url-shortener

83
推荐指数
3
解决办法
3万
查看次数

为什么最终没有被召唤?

我有几个关于java中垃圾收集器的问题.

Q1.据我所知,当对象超出范围且JVM即将收集垃圾时,会调用finalize().我认为垃圾收集器会自动调用finalize()方法,但在这种情况下它似乎不起作用.解释是什么?为什么我需要显式调用finalize()方法?

public class MultipleConstruct {
    int x,y;    
    public MultipleConstruct(int x)
    {
        this.x= x;
        y=5;        
        System.out.println("ONE");
    }

    @Override
    protected void finalize() throws Throwable {
        // TODO Auto-generated method stub
        super.finalize();
        System.out.println("FINALIZED");
    }
    public static void main(String[] args) throws Throwable {
        MultipleConstruct construct = new MultipleConstruct(3);
    }
}
Run Code Online (Sandbox Code Playgroud)

Q2.另外,什么时候调用垃圾收集器?我理解gc是一个守护程序线程,由JVM根据剩余的堆大小调用.这是否意味着,JVM等待程序使用资源的阈值限制,然后通知gc扫描垃圾对象.

编辑: gc如何解决循环引用?

java garbage-collection

10
推荐指数
2
解决办法
1万
查看次数

Perl:linux源代码中的checkstack.pl做了什么?

我正在linux内核中做一个项目,我想知道这个checkstack.pl做了什么?我从未学习过perl,因此无法理解该程序.如果我能从概念上理解程序,如果不是逐行理解,那将是很棒的.任何努力赞赏.

来源: 链接文字

假设我想编写自己的调整代码,可以在C程序中编写.我的主要问题是:为什么编写这段代码或者应该用perl编写?

linux perl stack linux-kernel

9
推荐指数
1
解决办法
2005
查看次数

任何人都可以建议跟踪函数的每个调用吗?

我想跟踪函数调用的每个路径.例如:

int a()
{
    b();
    return 1;
}
void b()
{
}
int main()
{
    int x=a();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以我的调用跟踪是main-> a-> b这样我想跟踪每个设置的调用路径.我想到了深度优先搜索.但我不确定这会怎样.任何人都可以建议我在perl中实现任何具体方法吗?我将拥有C程序文件,并将在其上运行perl脚本以获取调用跟踪.

c linux perl

3
推荐指数
1
解决办法
399
查看次数

如何验证Java的值调用?

我读到Java通过值调用来完成所有操作.我想知道如何验证这个事实?据我所知,在对象(非基元)的情况下,函数获得自己的引用副本但指向同一个对象.在这种情况下,该对象在被调用函数和调用函数中的引用应该不同?我该如何验证?换句话说,如何打印对象的引用.

System.out.println(object);  //does this print reference i.e text following @
Run Code Online (Sandbox Code Playgroud)

编辑: 我知道在callee函数中修改对象确实会改变调用函数中的值.我感兴趣的是如何打印对象的引用,因为我可以在控制台上打印哪些属性,这清楚地显示了我2个不同的参考.

java parameter-passing

3
推荐指数
1
解决办法
1187
查看次数

这个程序有什么问题?

我正在尝试编写字符串连接代码.我想知道它有什么问题.你能不能帮帮我吧 这是我的代码.

#include <stdlib.h>

void strcat1(char *s, char *t)
{
    while(*s !='\0')
        s++;

    while((*s++=*t++)!= '\0')
    {

    }

}

int main()
{
char s[]= "hello";
char t[]= "world";
strcat1(s,t);
printf("%s", s);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在codepad.org上得到了这个输出:Disallowed system call: SYS_socketcal 这是链接:http://codepad.org/Arz6U7YA

编辑:主函数中的更改char*s ="Hello"和char*t ="World"是否会产生任何差异?

c string

2
推荐指数
1
解决办法
135
查看次数

为什么这个程序会截断输出?

我在下面的程序中做错了吗?

    #include <stdio.h>
int main()
{
long x=1290323123123;
int len = snprintf(NULL,0, "%ld", x);

printf("%ld  %ld",x,len);

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量:1832934323 10

c

1
推荐指数
1
解决办法
103
查看次数