linux怎么查看本机内存大小
309
2022-09-07
Java语法基础看这篇就够了
在最近几年的流行开发语言评比中,Java 一直稳居榜首。这不仅取决于 Java 自身拥有很多优点极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程之外,还因为 Java 的生态环境建设比较好,比如它也是我们常用的安卓操作系统的开发一级语言(当然,未来有可能被 Kotlin 取代)。 不管怎么样,了解 Java 是有必要的,下面我们就来梳理一下 Java 的语法知识点。其中涵盖数据类型、变量、常量、运算符、选择语句、循环语句、数组、类、引用、方法等。本文希望以总结的方式进行阐述,方便开发人员日后查阅。
1. 数据类型
基本数据类型和引用数据类型。
1.1 基本数据类型
Java 的基本数据类型分四类,共八种,分别是:
逻辑型(boolean)字符型(char)整数型(byte、short、int、long)浮点型(float、double)
其中,boolean 类型的值只有 true 和 false 两种逻辑值(不能用0或非0的整数代替 true 和 false)。char 类型表示字符常量,是使用单引号括起来的字符,例如 char c1 = 'a' 或 char c2 = '我'。由于 Java 字符采用 Unicode 编码,所以每个字符占两个字节。 【注意:这里指的是在 Java 内存中 char 是两个字节,但是保存到文件中时每个字符占多少个字节则取决于文件的字符编码。】 整数型和浮点型可以统称为数值数据类型,各种数值数据类型的范围及存储大小如下表所示。
类型名 | 范围 | 存储大小 |
byte | -27(-128) ~ 27-1(127) | 8位带符号数 |
short | -215(-32768) ~ 215-1(32767) | 16位带符号数 |
int | -231(-2147483648) ~ 231-1(2147483647) | 32位带符号数 |
long | -263 ~ 263-1 | 64位带符号数 |
float | 负数范围:-3.4028235E+38 ~ -1.4E-45 正数范围:1.4E-45 ~ 3.4028235E+38 | 32位,标准IEEE 754 |
double | 负数范围:-1.7976931348623157E+308 ~ -4.9E-324 正数范围:4.9E-324 ~ 1.7976931348623157E+308 | 64位,标准IEEE 754 |
细心的你可以发现,除了 boolean 类型之外,其他七种数据类型都有明确的存储大小,那么 boolean 类型在 Java 中占用多少个字节呢? 经测试发现:
boolean a=true; // boolean型的a在JVM中占4个字节,即32bitboolean[] b = new boolean[10];// boolean数组b中的每一个boolean在JVM中占1个字节,即8bit
实际上,在《Java虚拟机规范》一书中有描述:“虽然定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持。在 Java 虚拟机中没有任何供 boolean 值专用的字节码指令,Java 语言表达式所操作的 boolean 值,在编译之后都使用 Java 虚拟机中的 int 数据类型来代替,而 boolean 数组将会被编码成 Java 虚拟机的 byte 数组,每个元素 boolean 元素占8位”。 这样我们就可以解释上面的测试,得出 boolean 类型占了单独使用是4个字节,而在数组中又是1个字节的结论。 至于 boolean 类型为什么是1个字节或4个字节,其实是运算效率和存储空间之间的博弈。而对于开发者来说,我们只要记住 Java 的 boolean 类型的值只能是 true 或 false 即可。
1.2 引用数据类型
Java 有五种引用类型(对象类型),分别是:类(class)、接口(interface)、数组(Array)、枚举(enum)、标注(Annotation)。 类引用可以是 Java 库中的类,也可以是自己创建的类。Java 中常见的类有:Object、String、Date、Void 等,并且上面所说的八种基本数据类型都有相应的封装类,如下表所示。
基本数据类型 | 封装类 |
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
需要注意的是,Java 中的数组属于引用类型,其创建的是对象。例如:int[] a = new int[5];,a 就是 int 型数组对象。 (接口、枚举、标注会在其它文章进行描述。)
1.3 数据类型转换
(未完待续)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~