小编Mat*_*nes的帖子

这2个代码之间的区别?

我想知道为什么这条JAVA代码产生的输出与C++中的相同代码不同.

#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{
public: 
    A(){
        this->Foo();
    }
    virtual void Foo()
    {
        cout << "A::Foo()" << endl;
    }
};
class B : public A
{
public:
    B()
    {
        this->Foo();
    }
    virtual void Foo()
    {
        cout << "B::Foo()" << endl;
    }
};
int main(int, char**)
{
    B objB;
    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这会产生输出:

A::Foo()
B::Foo()
Run Code Online (Sandbox Code Playgroud)

JAVA代码是:

public class Testa {
    public Testa()
    {
        this.Foo();
    }
    public static void main(String[] args) 
    {
        Testb b = …
Run Code Online (Sandbox Code Playgroud)

c++ java inheritance

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

使用ProcessBuilder查找Java版本

我正在尝试使用Java来查找计算机上安装的Java版本.我有:

List<String> commands = new ArrayList<String>();
commands.add("java.exe");
commands.add("-version");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.directory(new File("C:\\Program Files\\Java\\jdk1.6.0_45\\bin"));
Process p = pb.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

while ((s = stdInput.readLine()) != null) {
    System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)

但是,运行此命令时,由于stdInput为空,因此永远不会执行while循环.如果我取出commands.add("-version")它,它将获得在命令行上运行"java.exe"命令时输出的输入,因此似乎添加-version争论导致问题,这也表明目录和java.exe命令是正确的.任何帮助,将不胜感激.

java processbuilder

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

Java浮点数和双打数相等

我正在调试我的程序,其中某些双打和浮动不相等.我在此之前已经找到了答案,为什么会发生这种情况但却找不到相关信息.例如:

System.out.println(4.4f == 4.4); 
Run Code Online (Sandbox Code Playgroud)

这打印错误,

System.out.println(4.5f == 4.5);
Run Code Online (Sandbox Code Playgroud)

打印真实.

有人可以解释为什么JAVA会出现这种情况吗?

java floating-point double

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

标签 统计

java ×3

c++ ×1

double ×1

floating-point ×1

inheritance ×1

processbuilder ×1