1. 如何在java中定义一个结构体
像C/C++里的,第三方的Javolution库提供了类似的解决方案:
enumGender{MALE,FEMALE};
structDate{
unsignedshortyear;
unsignedbytemonth;
unsignedbyteday;
};
structStudent{
enumGendergender;
charname[64];
structDatebirth;
floatgrades[10];
Student*next;
};
publicenumGender{MALE,FEMALE};
{
publicfinalUnsigned16year=newUnsigned16();
publicfinalUnsigned8month=newUnsigned8();
publicfinalUnsigned8day=newUnsigned8();
}
{
publicfinalEnum32<Gender>gender=newEnum32<Gender>(Gender.values());
publicfinalUTF8Stringname=newUTF8String(64);
publicfinalDatebirth=inner(newDate());
publicfinalFloat32[]grades=array(newFloat32[10]);
publicfinalReference32<Student>next=newReference32<Student>();
}
2. 在Java中有没有类似C中struct形式的存在
别说类和struct是一制个东西了。
struct是分配在连续地址空间里的一组值,而类是分配在连续地址空间的一组引用,要寻值的话还要二次跳转,所以类的内存划分是不连续的,局部性远差于struct,对缓存也没有struct友好,操作系统在调度的时候因为缺页造成的性能差异是很大的
Java里面暂时还是不支持struct的,JVM本身就不让你碰他的栈空间,你怎么支持struct呢
3. C语言中带指的结构体如何在JAVA中实现相应定义
//结构体可以用类代替,变量保存的就是结构体这种Object类型。所以不需要加*号即可。
classTriTreeNode{
publicStringname="";
publicTriTreeNodemLeftChild;
publicTriTreeNodemRightChild;
;
;
;
}
publicclassTest24{
publicstaticvoidmain(String[]args){
/*创建一个节点*/
TriTreeNodemTriTreeNode=newTriTreeNode();
mTriTreeNode.name="A";
/*再创建一个孩子节点,添加到上个节点的左孩子*/
TriTreeNodebTri=newTriTreeNode();
bTri.name="B";
mTriTreeNode.mLeftChild=bTri;
/*再创建个孩子节点,添加到A节点的右孩子*/
TriTreeNodecTri=newTriTreeNode();
bTri.name="C";
mTriTreeNode.mRightChild=cTri;
/*再创建一个节点D,添加到B孩子的左节点上*/
TriTreeNodedTri=newTriTreeNode();
bTri.name="D";
bTri.mLeftChild=dTri;
}
}
4. C#和JAVA的值类型和引用类型
在C#中有两种类型的数据,一种是值类型数据,一种是引用类型数据。回在编码的时候区分这两种类型数答据,可以避免一些细小的编码错误。
首先说说什么类型是值类型,例如:int、float、bool之类的基础类型,以及用struct定义的类型,如:DateTime。除此外,如string,数组,以及用class定义的类型等都是引用类型。对于C#来说,很难罗列出所有类型进行一一分别,这需要自己在编码过程中进行分析总结。
为了更好地说明两种类型之间的区别,借用如下的表格来说明。
值类型引用类型内存分配地点分配在栈中分配在堆中效率效率高,不需要地址转换效率低,需要进行地址转换内存回收使用完后,立即回收使用完后,不是立即回收,等待GC回收赋值操作进行复制,创建一个同值新对象只是对原有对象的引用函数参数与返回值是对象的复制是原有对象的引用,并不产生新的对象类型扩展不易扩展容易扩展,方便与类型扩展 在Java中,boolean、byte、short、int、long、char、float、double这八种是基本数据类型,其余的都是引用类型。
5. java语言的所有数据类型分为哪几种
java中有8种基本数据类型:
byte(最小的数据类型)、short(短整型)、int(整型)、long(长整型)、float(浮点型)、double(双精度浮点型)、char(字符型)、boolean(布尔型)。
(5)javastruct类型扩展阅读:
数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式。接触每种语言的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语言,所以Java对于数据类型的规范会相对严格。数据类型是语言的抽象原子概念,可以说是语言中最基本的单元定义,在Java里面,本质上讲将数据类型分为两种:基本类型和引用数据类型。
基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。
引用数据类型:Java语言本身不支持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型一般都是通过类或接口进行构造,类提供了捆绑数据和方法的方式,同时可以针对程序外部进行信息隐藏。
参考资料:java数据类型_网络