小编Pet*_*rey的帖子

Java平台独立性如何运作?

我在64位编译器上执行了一个java程序,并为该程序生成了字节代码.是否可以在32位编译器上运行相同的字节代码而不会丢失数据?

在我的程序中,我已经x=10024在64位编译器上声明了一个变量?
那么32位编译器中x的值是多少?如果x的值相同,如何在不丢失数据的情况下如何?你能详细说明吗?

java jvm bytecode

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

在C++中,是否可以在初始化时覆盖虚拟方法?

当我编写java时,可以在初始化类时覆盖抽象方法.我觉得它看起来像这样:

AbstractClass object = new AbstractClass(){
   void inheritedMethod(){
      ...
   }
};
Run Code Online (Sandbox Code Playgroud)

这可以用C++做,如果是这样,语法是什么?

c++ oop initialization

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

在静态构造期间获取类的名称

C#我可以将类的名称分配给这样的本地静态变量.

 public class MyClass
 {
      private static string TAG = typeof(MyClass).Name;
 }
Run Code Online (Sandbox Code Playgroud)

我发现这非常有用,因为如果将类重构为另一个名称,则字符串的值会自动更新.方便标记调试消息等.

这样的事情可能Java吗?

 public class MyClass
 {
      private static String TAG = ????;
 }
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用getClass().getName()但需要引用一个对象.有没有办法在静态变量上执行此操作?

java static

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

FileReader没有读取1stCharacter

各位朋友,我正在制作一个程序,其中正在读取txt文件并显示输出.我正在使用FileReader和eclipse juno的编辑器.但是当我这样做时,我能够读取完整的txt文件,但不能读取第一个字符.例如,假设我们有txt文件,其中写有"斯巴达克斯自由",因此编译器必须在结果中显示整个字符串.而不是这个,它显示"斯巴达克斯的统治",因此没有显示第一个字符.这是我的代码:

package file;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class O 
{
    public static void main(String[] args) throws IOException 
    {
        File f1=new File ("tj.txt");
        FileReader f2=new FileReader(f1);
        f2.read();
        System.out.println("Starting TO Read");
        long size=f1.length();
        char[] x=new char[(int)size];
        f2.read(x);
        f2.close();
        String s1=new String(x);
        System.out.println(s1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题,任何人都能帮我解决这个问题吗?

java file-io

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

java collection内存不足错误

我试图通过填充超过百万行来计算Arraylist和Linkedlist,并在Arraylist人口之后得到以下错误,

线程"main"中的异常java.lang.OutOfMemoryError:java.lang.Integer.valueOf(Integer.java:642)中的Java堆空间at scratch.Collectionss.main(Collectionss.java:25)

如何避免此错误,我尝试设置l1 = null但是这给了我一个错误,

public class Collectionss {
    public static void main(String[] args){
        // 
        long starttime = System.currentTimeMillis();
        List<Integer> l1 = new ArrayList<Integer>();
        for (int i = 1; i <= 10000000; i++){
            l1.add(i);
        }
        System.out.println(l1.size());

        long endtime = System.currentTimeMillis();

        System.out.println(endtime - starttime);

        //
        long starttime1 = System.currentTimeMillis();
        List<Integer> l2 = new LinkedList<Integer>();
        for (int i = 1; i <= 10000000; i++){
            l2.add(i);
        }
        System.out.println(l2.size());

        long endtime1 = System.currentTimeMillis();

        System.out.println(endtime1 - starttime1);

    }

}
Run Code Online (Sandbox Code Playgroud)

java garbage-collection out-of-memory

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

MS Studio 2012 - 如何让它更像Netbeans/Java?

我昨天开始使用Microsoft Visual Studio 2012学习C++.我有一年的Netbeans和Java背景,我使用代码完成功能很多.

所以我在这里为MS Studio 2012提出了一些问题:

  • 在Netbeans中,您可以使用alt + I来修复导入,Studio对应的是什么?
  • 在Netbeans/Java中,如果键入File file = new File();然后按alt + I,它将自动添加import java.io.File;

在MS Studio 2012中,我对以下内容感到震惊,我想解决这个问题:

  • 在第一个"Hello World!" - 教程我必须使用写入控制台cout << "Hello World!",所以我键入了...但它没有给我任何选项来自动执行using namespace std;和/或#include <iostream>.

有没有办法让整个MS Studio 2012的行为尽可能地与我在Netbeans/Java中使用的一样?

c++ visual-studio visual-studio-2012

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

import ._或import.{classOne,classTwo}

我会从包中选择我想要的类会加快编译过程吗?例如,在包me.test中,我有50个classess,我只需要其中两个,我会做:

 import me.test.{ classOne, classTwo} 
Run Code Online (Sandbox Code Playgroud)

代替

 import me.test._
Run Code Online (Sandbox Code Playgroud)

?谢谢

scala

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

在java中设置两个彼此相等的数组

我正在编写一个程序,它有一个叫做data的双数组.

到目前为止,我的代码如下.

public class DataSet {
private double[] data;
private int dataSize;

public DataSet(){
    dataSize = 0;
    data = new double [10];
}

public void add(double x){
    if(dataSize>= data.length){
        double[] newData = new double[data.length*2];
        System.arraycopy(data, 0, newData, 0, data.length);
        newData=data;
        newData[dataSize]=x;
        dataSize++;
    }
    else{
        data[dataSize] = x;
        dataSize++;
    }
}
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在使用add方法向数组添加新值.但是我不确定的是,当我这样做时

newData=data;
Run Code Online (Sandbox Code Playgroud)

我可以将此更改转到下一行吗?

data[DataSize] = x;
Run Code Online (Sandbox Code Playgroud)

我之所以要问的是,通过设置两个数组是否彼此相等,每当我调用数据时,我实际上是在调用newData.

java arrays jvm

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

是否有可能在Java中有多个堆?

是否有可能在Java中有多个堆?如果有可能那么它会在哪些情况下发生?

java memory heap garbage-collection memory-management

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

如何等待文件创建

我的情况如下:我有一个Java程序,从此启动了一个perl脚本。Perl脚本正在生成一个文件,Java应该在该文件上继续工作。到现在为止,我已经设定了

Thread.sleep(3000);
Run Code Online (Sandbox Code Playgroud)

让Java等待文件完成。我一直在寻找一种更优雅的方法来让Java检查文件是否存在并继续。我最后的尝试是

Boolean waitforfile = true;  
while(waitforfile){
       File f = new File(pathtofile);
       if(f.exists() && !f.isDirectory()) { waitforfile=false; }
       } 
Run Code Online (Sandbox Code Playgroud)

但这会让我陷入永无止境的循环中。还有其他方法吗?

更新:在建议上,尝试过,处理,WaitFor(); 在

    public static String syscall(String call){
    String out = "";
    try {
    String line;
    Process p = Runtime.getRuntime().exec(call);
    BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
      out=out+"\n"+line;
    }
    input.close();
    p.waitFor();
    } catch (Exception e) {
        System.out.println(e);
    }

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

这个没有等待我的perl进程被关闭。

java io file

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