Java语法基础看这篇就够了
来源:互联网 发布:c语言随机数头文件 编辑:程序博客网 时间:2024/06/05 01:03
在最近几年的流行开发语言评比中,Java 一直稳居榜首。这不仅取决于 Java 自身拥有很多优点极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程之外,还因为 Java 的生态环境建设比较好,比如它也是我们常用的安卓操作系统的开发一级语言(当然,未来有可能被 Kotlin 取代)。
不管怎么样,了解 Java 是有必要的,下面我们就来梳理一下 Java 的语法知识点。其中涵盖数据类型、变量、常量、运算符、选择语句、循环语句、数组、类、引用、方法等。本文希望以总结的方式进行阐述,方便开发人员日后查阅。
1. 数据类型
跟 C/C++ 有些不一样,Java 的数据类型分为基本数据类型和引用数据类型。
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 是两个字节,但是保存到文件中时每个字符占多少个字节则取决于文件的字符编码。】
整数型和浮点型可以统称为数值数据类型,各种数值数据类型的范围及存储大小如下表所示。
正数范围: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 等,并且上面所说的八种基本数据类型都有相应的封装类,如下表所示。
需要注意的是,Java 中的数组属于引用类型,其创建的是对象。例如:int[] a = new int[5];
,a 就是 int 型数组对象。
(接口、枚举、标注会在其它文章进行描述。)
1.3 数据类型转换
(未完待续)
- Java语法基础看这篇就够了
- [Java 基础]基础语法
- Java基础语法--一张图全了解了(上)
- Java基础语法--一张图全了解了(下)
- JAVA-Java基础语法
- Java基础:Java语法基础
- java基础:java语法基础
- JAVA基础.JAVA基础语法
- 【Java基础】Java基础语法
- java最基础语法
- java基础语法--标识符
- java基础语法--数据类型
- Java 基础语法篇
- Java基础语法
- Java的基础语法
- Java基础语法
- Java 语法基础
- java 基础语法
- 4880: [Lydsy2017年5月月赛]排名的战争
- MySQL主从复制
- 挑战程序竞赛系列(8):2.1一往直前!贪心法(其他)
- js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令是什么?
- Oracle查询语句简单回顾(三)
- Java语法基础看这篇就够了
- 常用设计模式
- iOS中代理、通知、block的使用
- python数据爬虫示例一
- Listener&&Filter
- jQuery选择器
- C++库常用函数一览(<string><cctype><algorithm><cmath><cstdlib><iomanip><numeric>)
- java数据结构和算法-3,快速排序
- 常用数据库随笔记-初级