相关疑难解决方法(0)

数组是原始类型还是对象(或其他完全不同的东西)?

这个问题基本上是不言自明的.我无法找到数组的API(除了这个数组,但这只是定义了一堆用于处理实际数组的静态辅助函数).如果没有它的类,这似乎表明一个数组不能是一个Object.

但是,一个数组具有公共字段length和它可以调用的方法这样的事实,.equals()并且.clone()似乎(非常强烈地)建议完全相反.

对于原始数组的奇怪表示和行为有什么解释?

作为一个注释,我试着在.clone()刚才的数组方法上使用"Open Implementation"Eclipse特性,希望我能够看看这个方法的定义位置和方法(因为它说int []覆盖了它对象),但它实际上导致我的整个Eclipse冻结并崩溃......

java arrays primitive object

54
推荐指数
4
解决办法
5万
查看次数

我在哪里可以找到Java数组的源代码?

我在哪里可以找到java数组的源代码?

例:

double[] arr=new double[20];
Run Code Online (Sandbox Code Playgroud)

所有数组都带有任何维度实现Cloneable和Serializable`接口.我搜索了源代码但找不到相应的代码.

java arrays

11
推荐指数
2
解决办法
6747
查看次数

Java数组到底是什么?是物体吗?它是原始的吗?

可能的重复:
数组如何用Java实现?
为什么没有java.lang.Array类?如果Java数组是一个Object,它不应该扩展Object吗?

我最近在考虑Java数组,我想知道它们到底是什么?

他们是对象吗?

  • 您可以在它们上调用toString()(即使它只给您
    内存地址)
  • 下面的行编译Object a = new int[5];

但是,它们真的是对象吗?

  • 您通过new int[5]... 创建了一个新数组,就像我从未见过的构造函数。一个人会以为是new Array<Integer>(5)某种东西
  • 如果您查看Java API,将找不到array 类...您会发现,Array但这并不是一个真正的数组

以及它的可迭代属性

  • 您可以在for每个循环中遍历一个数组,但是iterator我找不到任何数组方法

我认为数组只是直接内置在Java语言中的一些特殊异常;但是,这也带来了一个问题:为什么对数组进行特殊处理?(为什么没有Array API?为什么有不同类型的构造函数?)

关于阵列的真实性质的任何澄清将不胜感激。

PS:我有几年Java经验,所以我知道如何使用数组以及它们的作用,我只是想问问它们的实现方式以及原因?

java arrays

5
推荐指数
0
解决办法
307
查看次数

在Java中使用字节数组序列化类

我在Java中有一个带字节数组的类.当我序列化和反序列化类的对象时,字节数组的值正在改变.

我该如何解决这个问题?

请参阅示例代码:

public class Test implements Serializable{

private static final long serialVersionUID = 3455892176538865707L;
public byte[] datakey;

public static void main(String[] args) {

    byte[] key=new byte[16];    
    Random rn = new Random(); //Trying to randomize the byte array to use as a cryptographic key
    rn.nextBytes(key);

    Test test = new Test();
    test.datakey=key;
    System.out.println("Byte Array Before serialization : "+test.datakey);
    test.serializeTest(test);
    Test loadedtest=test.deserializeTest();
    System.out.println("Byte Array After deserialization : "+loadedtest.datakey);


}


public void serializeTest(Test test)
{

    FileOutputStream fos;
    try {

            fos = new FileOutputStream("test.out"); …
Run Code Online (Sandbox Code Playgroud)

java serialization bytearray deserialization

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

如何在java中实现原始数组?

在SO上有几个与此类似的问题,但它们并没有完全回答代码实现的内容.我看了看

为什么没有java.lang.Array类?如果java数组是一个Object,它不应该扩展Object吗?

如何在java中实现数组?

他们没有回答具体实施的内容.

我已经从OpenJDK下载了java源码,我真的找不到我想要的东西.(也许这部分代码是专有的?)

  1. 如何进行追加/插入?
  2. 如何检索数据?例如,如果我调用my_arr[500]实现的算法来获取索引500处的值?
  3. 如何删除?

提前致谢!

java arrays algorithm

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