Java之基本数据类型(8种还是9种)-yellowcong

来源:互联网 发布:淘宝如何提高售后评分 编辑:程序博客网 时间:2024/06/14 06:08

今天看了一下博客,发现有人说数据类型有9中, 一下子刷新了我的世界观,说好的8中基本数据类型,哪来的9种啊,后来发现 void 这孙子也是基本类型(PS:8种还是9种,都说法不一),《Think in Java》这本书上说是9 种,但是人家JAVA的api上说不是,你叫我跟你咋回答,心里只能说MMP了

基本数据类型

void是不是基本数据类型,那就看你心情了

数据类型 大小(字节) 默认值 封装类 byte 1 0 short 2 0 Short int 4 0 Integer long 8 0l Long float 4 0.0f Float double 8 0.0d Double char 2 null Char boolean 1/8 false Boolean void – – Void

比如说byte存储的数据长度吧,2^(1*8) -1 =255长度,为啥还要-1呢,因为我们算的都是二进制(1 0000 0000,2^(1*8) )的值,所以自然需要 -1得到1字节的长度。

因为 1byte 的数据长度是 1111 1111 ,折换成十进制 就是255了
这里写图片描述

基本类型和引用类型区别

一种是基本类型,一种是引用类型。两种的本质区别就是:基本类型是在堆栈处分配空间存“值”。但是引用类型,是在堆里面分配空间存“值”。Void是不能new出来,也就是不能在堆里面分配空间存对应的值。那就是一开始在堆栈处分配好空间了。所以,有些人将Void归成基本类型,也有道理。


在堆中创建的引用内存,不能随着调用结束就释放,需要等着GC来回收,而在栈内存中,随着引用调用完,就销毁了,所以栈内存中,引用了基本数据类型,效率高