2017-08-02 92 views
0

我有一个要求,我必须创建我自己的数据类型,我应该分配一些字节数据类型。
实施例:我们如何在java中创建自己的数据类型?

数据类型的:应具有存储器
数据类型B的1个字节:应具有2个字节的存储器
数据类型C:应该有7个字节memeory等..

是否有任何方式我们可以定义自己的数据类型并为它们分配一些内存?

+1

是的,他们是所谓的对象,欢迎到Java – ja08prat

回答

0

您不能创建在java中的数据类型,但你可以创建对象类,像这样:

Class A { 
    public byte[] bytes; 
} 
1

在Java中唯一可用的用户定义类型类(包括枚举),你可以不直接控制它们的大小。一个类实例有许多字节的开销,你无法避免。

3

Java中有几个用于表示类型的“选项”,即:接口,类和枚举。

在这个意义上说,最好的比赛将是一个类,如:

public class TwoByteHolder { 
    public final byte[] data = new byte[2]; 
} 

那个类的一个对象可以准确地存储2个字节;下一个“级别”可能是这样的:

public class ByteHolder { 
    public final byte[] data; 

    public ByteHolder(int numberOfBytes) { 
    data = new byte[ numberOfBytes ]; 
    } 
    ... 

但当然:内存开销将是巨大的 - Java是不是来处理这种需求的最佳语言。

+0

*“这个类的一个对象可以准确地存储2个字节” *是 - 用的开销〜每个实例32个字节。 –

+0

有效的点 - 我相应地更新了答案。 – GhostCat

+0

@GhostCat,谢谢你的回答,我已经通过声明字节类型按照你的建议绑定了相同的方法,但我无法在我的方法中加入值 – kumar

1

您可以创建一个具有特定字段的新类。如果你需要字段的确切大小,你可以使用字节数组。

class Data { 

    public byte[] dataA = new byte[1]; 
    public byte[] dataB = new byte[2]; 
    public byte[] dataC = new byte[7]; 
    ... 
} 
+0

'code' public byte [] dataA = new byte [1]; \t public void sample(){ \t \t // dataA = 125; \t} – kumar

+0

感谢您的回答,我已经尝试声明该字节,正如您所建议的,我无法访问我的方法中的dataA变量# – kumar

+0

这是注意最好的方式来做到这一点,但你可以尝试'公共静态字节[] dataA = new byte [1];'然后在你的方法中尝试'Data.dataA' –

相关问题