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數據類型_網路