⑴ java語言的所有數據類型分為哪幾種
JAVA中一共有八種基本數據類型,分別是:byte、short、int、long、float、double、char、boolean。
1、byte:8位,最大存儲數據量是255,存放的數據范圍是-128~127之間。
2、short:16位,最大數據存儲量是65536,數據范圍是-32768~32767之間。
3、int:32位,最大數據存儲容量是2的32次方減1,數據范圍是負的2的31次方到正的2的31次方減1。
4、long:64位,最大數據存儲容量是2的64次方減1,數據范圍為負的2的63次方到正的2的63次方減1。
5、float:32位,數據范圍在3.4e-45~1.4e38,直接賦值時必須在數字後加上f或F。
6、double:64位,數據范圍在4.9e-324~1.8e308,賦值時可以加d或D也可以不加。
7、boolean:只有true和false兩個取值。
8、char:16位,存儲Unicode碼,用單引號賦值。
(1)程序員數值類型擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
⑵ python中都有哪些數據類型
python中數據類型有:整型、長整型、浮點型、字元串類型、布爾類型、列表類型、元組類型、字典類型、集合類型。
數據類型是每種編程語言必備屬性,只有給數據賦予明確的數據類型,計算機才能對數據進行處理運算,因此,正確使用數據類型是十分必要的,不同的語言,數據類型類似,但具體表示方法有所不同,以下是Python編程常用的數據類型:
1. 數字類型
Python數字類型主要包括int(整型)、long(長整型)和float(浮點型),但是在Python3中就不再有long類型了。
int(整型)
在32位機器上,整數的位數是32位,取值范圍是-231~231-1,即-2147483648~214748364;在64位系統上,整數的位數為64位,取值范圍為-263~263-1,即9223372036854775808~9223372036854775807。
long(長整型)
Python長整型沒有指定位寬,但是由於機器內存有限,使用長的長整數數值也不可能無限大。
float(浮點型)
浮點型也就是帶有小數點的數,其精度和機器有關。
complex(復數)
Python還支持復數,復數由實數部分和虛數部分構成,可以用 a + bj,或者 complex(a,b) 表示, 復數的實部 a 和虛部 b 都是浮點型。
2. 字元串
在Python中,加了引號的字元都被認為是字元串,其聲明有三種方式,分別是:單引號、雙引號和三引號;Python中的字元串有兩種數據類型,分別是str類型和unicode類型,str類型採用的ASCII編碼,無法表示中文,unicode類型採用unicode編碼,能夠表示任意字元,包括中文和其他語言。
3. 布爾型
和其他編程語言一樣,Python布爾類型也是用於邏輯運算,有兩個值:True(真)和False(假)。
4. 列表
列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型,可對集合進行創建、查找、切片、增加、修改、刪除、循環和排序操作。
5. 元組
元組和列表一樣,也是一種序列,與列表不同的是,元組是不可修改的,元組用」()」標識,內部元素用逗號隔開。
6. 字典
字典是一種鍵值對的集合,是除列表以外Python之中最靈活的內置數據結構類型,列表是有序的對象集合,字典是無序的對象集合。
7. 集合
集合是一個無序的、不重復的數據組合,它的主要作用有兩個,分別是去重和關系測試。
推薦課程:Python3機器學習快速入門(黑馬程序員)
⑶ 傳值和傳址的區別值類型和引用類型的區別
1.值類型(ValueType)
值類型包括:數值類型,結構體,bool型,用戶定義的結構體,枚舉,可空類型。
值類型的變數直接存儲數據,分配在託管棧中。變數會在創建它們的方法返回時自動釋放,例如在一個方法中聲明Char型的變數name=』C』,當實例化它的方法結束時,name變數在棧上佔用的內存就會自動釋放
C#的所有值類型均隱式派生自System.ValueType。
結構體:struct(直接派生於System.ValueType)。
數值類型:整型,sbyte(System.SByte的別 名),short(System.Int16),int(System.Int32),long(System.Int64),byte(System.Byte),ushort(System.UInt16),uint(System.UInt32),ulong(System.UInt64),char(System.Char)。
浮點型:float(System.Single),double(System.Double)。
財務計算的高精度decimal型:decimal(System.Decimal)。
bool型:bool(System.Boolean的別名)。
用戶定義的結構體(派生於System.ValueType)。
枚舉:enum(派生於System.Enum)。
可空類型(派生於System.Nullable<T>泛型結構體,T?實際上是System.Nullable<T>的別名
2.引用類型(ReferenceType)
引用類型包括:數組,用戶定義的類、介面、委託,object,字元串,null類型,類。
引用類型的變數持有的是數據的引用,數據存儲在數據堆,分配在託管堆中,變數並不會在創建它們的方法結束時釋放內存,它們所佔用的內存會被CLR中的垃圾回收機制釋放。
數組(派生於System.Array)
用戶需定義以下類型:
類:class(派生於System.Object);
介面:interface(介面不是一個「東西」,所以不存在派生於何處的問題。介面只是表示一種contract約定[contract])。
委託:delegate(派生於System.Delegate)。
object(System.Object的別名);
字元串:string(System.String的別名)。
3.值類型與引用類型區別:
4.內存分配
值類型的實例經常會存儲在棧上的。但是也有特殊情況。如果某個類的實例有個值類型的欄位,那麼實際上該欄位會和類實例保存在同一個地方,即堆中。不過引用類型的對象總是存儲在堆中。如果一個結構的欄位是引用類型,那麼只有引用本身是和結構實例存儲在一起的(在棧或堆上,視情況而定)。
引用類型在棧中存儲一個引用,其實際的存儲位置位於託管堆。簡稱引用類型部署在託管推上。值類型總是分配在它聲明的地方:作為欄位時,跟隨其所屬的變數(實例)存儲;作為局部變數時,存儲在棧上。值類型在內存管理方面具有更好的效率,並且不支持多態,適合用做存儲數據的載體;引用類型支持多態,適合用於定義 應用程序的行為。
註:堆棧(stack)是一種後進先出的數據結構。在內存中,變數會被分配在堆棧上來進行操作。堆(heap)是用於為類型實例(對象)分配空間的內存區域,在堆上創建一個對象,會將對象的地址傳給堆棧上的變數(反過來叫變數指向此對象,或者變數引用此對象)。
5.裝箱和拆箱
1)裝箱就是將一個值類型轉換成等值的引用類型
在堆上為新生成的對象(該對象包含數據,對象本身沒有名稱)分配內存。
將堆棧上值類型變數的值拷貝到堆上的對象中。
將堆上創建的對象的地址返回給引用類型變數(從程序員角度看,這個變數的名稱就好像堆上對象的名稱一樣)。
2)拆箱就是將一個引用類型轉換成等值的值類型
將引用類型變數堆上的值拷貝到棧上面。
總結
值類型和引用類型理解透徹後,我們知道C#裡面是值傳遞,但是有些變數是引用類型的,在傳遞和拷貝時需要特別注意。方法傳遞參數時加上ref(out),為引用傳遞參數。
值傳遞僅僅傳遞的是值,不影響原始值。
引用傳遞,傳遞的是內存地址,修改後會改變內存地址對應儲存的值。