Java / 关键字
一、基本数据类型
| 分类 | 明细 | 位大小 | 默认值 |
|---|---|---|---|
| 整数型 | byte、short、int、long | 8 \ 16 \ 32 \ 64 | 0 \ 0 \ 0 \ 0L |
| 浮点型 | float、double | 32 \ 64 | 0.0f \ 0.0d |
| 字符型 | char | 16 | |
| 布尔型 | boolean | (见拓展 1) |
二、引用类型
(参考链接:https://www.cnblogs.com/1130136248wlxk/articles/5105524.html)
-
引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby 等。变量一旦声明后,类型就不能被改变了。
-
对象、数组都是引用数据类型。
-
所有引用类型的默认值都是 null 。
-
一个引用变量可以用来引用与任何与之兼容的类型。
三、关于类的关键字
| 名称 | 功能 |
|---|---|
| class | 创建类 |
| public | 访问权限管理 |
| protected | |
| private | |
| extends | 继承 |
四、拓展
1、boolean 类型占多少个字节?(参考链接:https://blog.csdn.net/qq_42183409/article/details/101119020)
(1)1 bit
理由是 boolean 类型的值只有 true 和 false 两种逻辑值,在编译后会使用 1 和 0 来表示,这两个数在内存中只需要 1 位(bit)即可存储,位是计算机最小的存储单位。
(2)1 byte
理由是虽然编译后 1 和 0 只需占用 1 位空间,但计算机处理数据的最小单位是 1 个字节,1 个字节等于 8 位,实际存储的空间是:用 1 个字节的最低位存储,其他 7 位用 0 填补。如果值是 true 的话则存储的二进制为:0000 0001,如果是 false 的话则存储的二进制为:0000 0000。
(3)4 byte
在 JVM 虚拟机中 boolean 占 4 个字节,boolean 数组 1 个字节
理由来源是《Java虚拟机规范》一书中的描述:“虽然定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持。在 JVM 中没有任何供 boolean 值专用的字节码指令,Java 语言表达式所操作的 boolean 值,在编译之后都使用 JVM 中的 int 数据类型来代替,而 boolean 数组将会被编码成Java虚拟机的 byte 数组,每个元素 boolean 元素占 8 位”。这样我们可以得出boolean 类型单独使用时占 4 byte,在数组中又是 1 byte。
显然第三条是更准确的说法,那 JVM 为什么要用 int 来代替boolean呢?为什么不用 byte 或 short,这样不是更节省内存空间吗?大多数人都会很自然的这样去想,我同样也有这个疑问,经过查阅资料发现,使用 int 的原因是:对于当下 32 位的处理器(CPU)来说,一次处理数据是32位(这里不是指的是32/64位系统,而是指CPU硬件层面),具有高效存取的特点。
(SAW:Game Over!)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
