小编ama*_*ara的帖子

如何在类路径中运行带有jar的java类?

所以,我可以做得很好:

java mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)

如果./mypackage/MyClass.class存在.我也很乐意这样做:

java -cp myjar.jar mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)

如果类文件存在于jar的适当部分.简单的东西.但我不能为我的生活设法做这样的事情:

java -cp utilities.jar mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)

其中./mypackage/MyClass.class存在,并且其中./utilities.jar存在的(不含有当然MyClass的).

我差点感到愚蠢吗?

java classpath

25
推荐指数
2
解决办法
4万
查看次数

三重缓冲真的是一个免费的性能提升吗?

所以我一直在阅读很多关于openGL和gpus以及图形的内容,并且经常提到三重缓冲可以提供免费的性能提升.我知道它为什么有帮助; 实际上,你可以进行v-sync而不限于60或30或20或15等的帧率选择,所以你实际上可以达到55fps.但这实际上有成本吗?直觉上,我希望三重缓冲能够将输出延迟一帧,为所有内容增加一个非常小的延迟.

graphics performance buffering

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

从内部类访问外部类:为什么这样做?

所以我们大多数人都知道如何从内部类访问外部类.使用这些词语进行搜索可以提供有关该主题的大量回答问题.但我想知道的是为什么语法是这样的.

例:

public class A
{
    private class B
    {
        public void c()
            {A.this.d();}

        public void d()
            {System.out.println("You called the d() in the B class! Oh noes!");}
    }

    public void d()
        {System.out.println("You've called d()! Go, you!");}
}
Run Code Online (Sandbox Code Playgroud)

为什么A.this.d()?它看起来像是thisA类的静态字段,但是......*很困惑*

如果这是重复,请原谅我; 就像我说的那样,用这些词搜索会给出答案.

java syntax

7
推荐指数
2
解决办法
494
查看次数

向方法添加局部变量会使它们变慢吗?

这个问题共收到了几段答案.这是唯一能够告诉我我在找什么的句子:

您的示例几乎没有什么区别,因为中间计算需要临时存储在堆栈上,以便以后可以使用它们.

事实上,它完美地回答了我的问题=)

不像所有的告诉我"不要问这个问题".> _ <


就像你有一个方法,并且你通过增加局部变量的数量但不做其他更改来改变它,它是否会使方法变慢?这是一个例子:

void makeWindow() {
    Display
        .getContext()
        .windowBuilder()
        .setSize(800, 600)
        .setBalloonAnimal(BalloonAnimal.ELDER_GOD.withColor(PUCE))
        .build();
}
Run Code Online (Sandbox Code Playgroud)

要么

void makeWindow() {
    DisplayContext dc = Display.getContext();
    WindowBuilder wb = db.windowBuilder();
    BalloonAnimal god = BalloonAnimal.ELDER_GOD;
    BalloonAnimal puceGod = god.withColor(PUCE);
    wb.setSize(800, 600).setBalloonAnimal(puceGod).build();
}
Run Code Online (Sandbox Code Playgroud)

另一个例子:

int beAnExample(int quiche) {
    return areGlobalsEvil?
        quiche * TAU/5:
        highway(quiche, Globals.frenchFrenchRevolution);
}
Run Code Online (Sandbox Code Playgroud)

要么

int beAnExample(int quiche) {
    if (areGlobalsEvil) {
        int to5 = TAU/5;
        int result = quiche * to5;
        return result;
    } else {
        Game french = …
Run Code Online (Sandbox Code Playgroud)

java performance micro-optimization

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

"1..10"什么时候有意义?

我有一个编程语言,其中的一个模糊的记忆1..10意味着"范围1以上至10排他性",类似python的range(1, 10),但我一点都不知道,这并不特别借给自己的搜索.有帮助吗?

如果答案是"蟒蛇",请原谅我.我知道很少的蟒蛇.

syntax

4
推荐指数
3
解决办法
199
查看次数

需要帮助将代码从C转换为Java

这篇文章.这是代码:

float InvSqrt(float x){ // line 0
   float xhalf = 0.5f * x;
   int i = *(int*)&x; // store floating-point bits in integer
   i = 0x5f3759d5 - (i >> 1); // initial guess for Newton's method
   x = *(float*)&i; // convert new bits into float
   x = x*(1.5f - xhalf*x*x); // One round of Newton's method
   return x;
}
Run Code Online (Sandbox Code Playgroud)

......我甚至不知道那是C还是C++.[好吧显然它是C,谢谢]有人可以为我翻译成Java吗?它(只是,我希望)第2和第4行令我感到困惑.

c java translation

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

为什么代理模式这么慢?

至少在java中,代理模式有很多开销 - 我不记得确切的数字,但是当包装微小方法时,代理需要花费50倍于包装方法的时间.这是,例如,为什么java.awt.image.BufferedImage.setRGB&getRGB真的慢; 有大约三个代理包装实际byte[].

为什么50次?!为什么代理不会加倍?


编辑:=(

正如SO似乎常见的那样,我得到了一堆答案,告诉我我的问题是错的.不是.查看BufferedImage或其他一些真正的代理模式,而不是那些微基准测试.事实上,如果你必须对BufferedImage进行大量像素操作并且你知道它的结构,你可以通过手动撤消代理来实现所谓的巨大加速; 看到这个答案.

哦,这是我50倍来源.正如文章详细说明的那样,代理在包装需要很长时间时没有明显的损失,但是如果你用一个小方法包装它们确实会产生很大的痛苦.

java proxy-pattern

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