小编Ste*_* P.的帖子

Null/Object和Null/Null比较效率

这个问题让我做了一些测试:

public class Stack
{
    public static void main(String[] args)
    {
        Object obj0 = null;
        Object obj1 = new Object();
        long start;
        long end;
        double difference;  
        double differenceAvg = 0;

        for (int j = 0; j < 100; j++)
        {
            start = System.nanoTime();

            for (int i = 0; i < 1000000000; i++)
                if (obj0 == null);

            end = System.nanoTime();
            difference = end - start;
            differenceAvg +=difference;
        }

        System.out.println(differenceAvg/100);
        differenceAvg = 0;

        for (int j = 0; j < 100; …
Run Code Online (Sandbox Code Playgroud)

java

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

运算符优先级问题导致"错误:意外类型"

由于最近有很多运算符优先级问题,我开始使用一些代码并想出了这个:

int x = someNumber;
int y = --x++;
Run Code Online (Sandbox Code Playgroud)

这给出了:

Error: unexpected type

required: variable
found: value
Run Code Online (Sandbox Code Playgroud)

我试过这个是因为我有兴趣了解java如何处理postfix运算符优先级高于的事实prefix.这似乎上面的陈述会导致矛盾,我猜这是由这个错误处理的.

我的问题是双重的:

  1. 为什么这个错误?这究竟是什么意思?
  2. 为什么postfix优先级高于prefix?我确信这是有充分理由的,但我无法想出一个.也许它会修复这种未定义的行为,但它会以某种方式引起更多问题?

java

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

如何命名我的新项目的命名空间?

我将创建一个新的库,将基因组注释呈现为图表.但是,由于C++没有像Perl这样的集中式库网站,我如何知道命名空间是否与现有命名空间冲突?

c++ namespaces

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

每次编写脚本时,有没有办法"自动使用"某些模块?

正如标题所示,无论如何,我是否可以自动告诉perl在我编写的每个perl脚本中包含以下内容(除非另有说明)?

use strict;
use warnings;
use feature 'say';
Run Code Online (Sandbox Code Playgroud)

我知道写三行并不是什么大不了的事,但如果我能改变一些系统文件或其他东西来做它就好了我就再也不用了.

提前致谢.

perl

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

分析具有递推的算法T(n)= T(n-1)+ T(n-2)+ T(n -3)?

所以,有人早些时候发布了这个问题,但基本上没有付出任何努力,它标记很差,然后关闭.尽管如此,我认为这可能是个好问题.我发帖是因为根据OP,我的回答(发表在评论中)与解决方案不一致.所以,我想弄清楚我做错了什么(假设他的答案确实正确):

我们有:

T(N) = T(N-1) + T(N-2) + T(N-3)
Run Code Online (Sandbox Code Playgroud)

其中N> 3.他没有列出基本案例,但由于N> 3,我认为可能有3个基本案例T(3),T(2)T(1).为了计算T(K),我们执行以下操作:

T(K) = T(K-1) + T(K-2) + T(K-3)
Run Code Online (Sandbox Code Playgroud)

然后我们必须计算:

T(K-1) = T((K-1)-1) + T((K-1)-2) + T((K-1)-3)
T(K-2) = T((K-2)-1) + T((K-2)-2) + T((K-2)-3)
T(K-3) = T((K-3)-1) + T((K-3)-2) + T((K-3)-3)
Run Code Online (Sandbox Code Playgroud)

等等......这是一个树形表示:

L0                                                  T(K)
                      /                              |                              \
L1               T(K-1)                            T(K-2)                           T(K-3)
          /         |     \                 /        |          \                 /   |     \
L2   T((K-1)-1) T((K-1)-2) T((K-1)-3)  T((K-2)-1) T((K-2)-2) T((K-2)-3) T((K-3)-1) T((K-3)-2) T((K-3)-3) …
Run Code Online (Sandbox Code Playgroud)

algorithm math complexity-theory big-o

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

压缩与重载的编译器解释

请原谅我,如果这个问题主要是基于意见的,但我觉得它不是,而且选择的理由很充分.所以,这是一个例子.对不起,它真的很长,但超级简单:

接口:

public interface Shape
{
    double area ();
}
Run Code Online (Sandbox Code Playgroud)

实施第1课:

import static java.lang.Math.PI;

public class Circle implements Shape
{
    private double radius;

    public Circle(double radius)
    {
        this.radius = radius;
    }

    public double area()
    {
        return PI*radius*radius;
    }
}
Run Code Online (Sandbox Code Playgroud)

实施第2课:

public class Square implements Shape
{
    private double size;

    public Square(double sideLength)
    {
        size = sideLength;
    }

    public double area()
    {
        return size*size;
    }   
}
Run Code Online (Sandbox Code Playgroud)

司机:

Shape[] shapes = new Shape[]{new Circle (5.3), new Square (2.4)};

System.out.println(shapes[0].area()); //prints 88.247...
System.out.println(shapes[1].area()); …
Run Code Online (Sandbox Code Playgroud)

java overriding overloading

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

在getter和setter上使用受保护的变量有什么好处吗?

忽视使变量protected变得方便的事实,是否有任何实际需要存在的东西protected

java

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

为什么我从两个所谓的类似算术运算中得到不同的结果?

在下面的代码中,为什么乘法方法不会产生舍入误差,而累积加法方法是什么?

function get_value() { return 26.82; }

function a($quantity) {
    $value_excluding_vat = get_value();
    $value_including_vat = round($value_excluding_vat * (1 + (20 / 100)),2);
    $total_nett = 0;
    $total_gross = 0;
    for($i=0; $i<$quantity; $i++) {
        $total_nett += $value_excluding_vat;
        $total_gross += $value_including_vat;
    }
    return array(
        $total_nett,
        $total_gross
    );
}

function b($quantity) {
    $value_excluding_vat = get_value();
    $value_including_vat = round($value_excluding_vat * (1 + (20 / 100)),2);
    return array(
        $quantity * $value_excluding_vat,
        $quantity * $value_including_vat
    );
}

$totals = a(1000);
print_r($totals);
echo $totals[1] - $totals[0];
echo "\n\n"; …
Run Code Online (Sandbox Code Playgroud)

php php-5.4

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

线程与分叉(解释我想做什么)

所以,在发布之前我已经回顾了大量的文章和论坛,但我一直在阅读相互矛盾的答案.首先,操作系统不是问题,我可以使用Windows或Unix,无论哪种方式最适合我的问题.我有一吨的数据,我需要使用只读目的(不知道为什么会无所谓,但是,如果是的话,那我将要经过的数据结构是数组的数组哈希数组,其值也是数组).我基本上将"查询"与大量不同的"句子"进行比较并计算它们的相对相似性.从这些数量(几百万),我想采取顶部x%,并与他们做一些事情.我需要并行化这个过程.只是有没有什么好办法让我减少了空间 - 我需要高于一切,以获得良好的结果进行比较,这将花费的时间太长了某种线程/分叉的.我再次看到了许多相互矛盾的答案,并且不知道该做什么.

任何帮助,将不胜感激.提前致谢.

编辑:我不认为内存使用量将是一个问题,但我不知道(8 GB RAM)

perl

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

将十六进制(或二进制)数据放入Java字符串

在C中有一个转义序列,可以将十六进制(或二进制)值嵌入到字符串中?像这样的东西.

String str = "12345" + "\x0B" + "Some additional text";
Run Code Online (Sandbox Code Playgroud)

Java中有类似的功能吗?

java

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