我在64位编译器上执行了一个java程序,并为该程序生成了字节代码.是否可以在32位编译器上运行相同的字节代码而不会丢失数据?
在我的程序中,我已经x=10024在64位编译器上声明了一个变量?
那么32位编译器中x的值是多少?如果x的值相同,如何在不丢失数据的情况下如何?你能详细说明吗?
当我编写java时,可以在初始化类时覆盖抽象方法.我觉得它看起来像这样:
AbstractClass object = new AbstractClass(){
void inheritedMethod(){
...
}
};
Run Code Online (Sandbox Code Playgroud)
这可以用C++做,如果是这样,语法是什么?
在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()但需要引用一个对象.有没有办法在静态变量上执行此操作?
各位朋友,我正在制作一个程序,其中正在读取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)
我的代码有什么问题,任何人都能帮我解决这个问题吗?
我试图通过填充超过百万行来计算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) 我昨天开始使用Microsoft Visual Studio 2012学习C++.我有一年的Netbeans和Java背景,我使用代码完成功能很多.
所以我在这里为MS Studio 2012提出了一些问题:
File file = new File();然后按alt + I,它将自动添加import java.io.File;在MS Studio 2012中,我对以下内容感到震惊,我想解决这个问题:
cout << "Hello World!",所以我键入了...但它没有给我任何选项来自动执行using namespace std;和/或#include <iostream>.有没有办法让整个MS Studio 2012的行为尽可能地与我在Netbeans/Java中使用的一样?
我会从包中选择我想要的类会加快编译过程吗?例如,在包me.test中,我有50个classess,我只需要其中两个,我会做:
import me.test.{ classOne, classTwo}
Run Code Online (Sandbox Code Playgroud)
代替
import me.test._
Run Code Online (Sandbox Code Playgroud)
?谢谢
我正在编写一个程序,它有一个叫做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中有多个堆?如果有可能那么它会在哪些情况下发生?
我的情况如下:我有一个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进程被关闭。