2.1 Java类型系统
Java语言的类型可分为基本数据类型和引用数据类型两大类。
2.11 基本数据类型
整型:用于表示整数值,包括 byte, short, int 和 long。
浮点型:用于表示带小数部分的数值,包括 float 和 double。
字符型:用于表示单个字符,使用 char 类型。
布尔型:用于表示逻辑值,只有两个取值:true 和 false。
2.1.2 引用数据类型
引用数据类型(Reference Data Types)
类(Class):由开发人员定义的数据类型,用于创建对象。
接口(Interface):描述类应该具有的方法而不提供实现,用于实现多态和组织代码结构。
数组(Array):用于存储相同类型的多个元素,例如 int[]、String[] 等。
枚举(Enumeration):一种特殊的数据类型,用于定义一组常量。
2.2 标识符、关键字和变量
2.2.1 Java标识符
标识符是用于识别变量、类、方法等的名称。
标识符必须以字母(a-z, A-Z)、美元符号($)或下划线(_)开始。
之后的字符可以是字母、数字、美元符号($)或下划线(_)。
标识符是大小写敏感的,因此 myVar 和 myvar 是两个不同的标识符。
标识符不能是Java的保留关键字。例如,不能使用 class, public, int 等作为标识符。
2.2.2 Java关键字
关键字是Java语言中事先定义的一组词汇,这些词汇具有特殊的用途,用户不能将他们定义为标识符。
Java定义了51个关键字。
2.2.3 变量与赋值
变量是在程序运行中其值可以改变的量。
一个变量通常由数据类型、变量名和变量值三个要素组成。
变量在使用之前必须定义,变量的定义包括变量的声明和赋值。
2.2.4 语句
使用“=”来给变量赋值,一般称为变量的初始化。
“=”的左边为变量名,右边为赋给变量名的值。
2.3 基本数据类型及字面符
字面值是某种类型值的表示形式。字面值有三种类型:基本类型的字面值、字符串字面值及 null 字面值。基本类型的字面值有4种类型:整数类型、浮点类型、布尔类型、字符类型。
Java提供4种整数类型,分别是byte型(字节型)、 short型(短整型)、 int型(整型)和long型(长整型)。
Java的整型字面值有四种表示方法:
十进制数,如0、257、-365
二进制数,以0b或0B开头的数,如0B00101010表示十进制数42。
八进制数,以0开头的数,如0124表示十进制数84,-012表示十进制数-10(最大是7)
十六进制数,以0x或0X开头的整数,如0x124表示十进制数的292(最大值为F)
整数类型字面值具有int型在内存中占32位。若要表示long型字面型可以在后面加上l或L,通常用L因为小写的l与数字1长的过于相似。
2.3.2 浮点类型
在Java中由两种浮点类型的数据:float型和double型。
在内存中所占的位数:float型占32位、double型占64位。
float型称为单精度浮点数;double型称为双精度浮点数,符合IEEE-754标准。
浮点类型字面值默认是double型数据。
如果表示float型字面值数据,必须在后面加上F或者f,双精度型也可以加D或d。
浮点数计算可能存在舍入误差,不适合做财务计算。
如果需要精确而五社入误差的数字计算,可以使用BigDecimal类。
数值的字面值太长,读起来会困难,从java7开始可以用下划线“_”将数字分组。
2.3.3 字符类型
Java使用Unicode为字符编码,Unicode字符集使用两个字节(16位)为字符编码,可表示65 536个字符。
2.5 软件开发过程
过程:需求确定、系统分析、系统设计、实现、测试、部署和维护。
从键盘读取时可以在程序中创建一个Scanner类,使用时,需用import导入。
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入xxxx: ");
}
}
2.6数据类型转换
分类:自动类型转换、强制类型转换
2.6.1自动类型转化
以下类型之间允许自动转换:
从byte到short、int,long、float 或者 double
从short 到int,long、float 或者double
从char到 int、long、float 或者 double
从int到 long、float 或者 double
从 long到 float 或者 double
从float 到 double
2.6.2 强制类型转换
强制类型转换:将位数较多的数据类型转换为位数较少的数据类型。
一般来说,以下类型之间的转换需要进行强制转换:
从short到byte或者char
从char到byte或者short
从int到byte、short、或者char
从long到byte、short、char或者int
从float到byte、short、char、int或者long
从double到byte、short、char、int、long或者float
2.7 运算符
2.7.1算术运算符
一元运算符:正(+)、负(-)、自增(++)、自减(–)4个。
二元运算符:加(+)、减(-)、乘(*)、 除(/)、取余数(%)5个
++在前先进行自加,++在后是当前变量的值
当++参与其他表达式的运算时,++在前和在后是不同的。
Java的运行时从上至下,从左至右的、因此、表达式1的值就要看下遇到的是变量还是++。如果时变量,则表达式的值就是变量的值
反之,先遇到的是 ++,那就需要对变量先进行自加、然后赋值给表达式1,而表达式2的执行过程如出一辙。
当++ 不参与表达式运算时,++在前和在后没有任何区别,就是对变量自身进行自加。
2.7.2 关系运算符
2.7.3 逻辑运算符
逻辑非:!
逻辑与:&
逻辑或:|
逻辑异或:^
短路与:&&
短路或:||
2.7.4 赋值运算符
2.7.5 位运算符
位逻辑运算符
移位运算符
Java语言提供了三个移位运算符:左移运算符(<<)、右移运算符(>>)、无符号右移运算符(>>>)
2.7.6 运算符的优先级和综合性
2.8 程序文档风格和注释
2.8.1 一致的缩进和空白
保持一致的缩进会使程序更加清晰、易读、易于调试和维护
2.8.2 块的风格
代码块是由花括号围起来的一组语句,如类体、方法体、初始化块等。
作用域:类体、方法体、初始化块
java语言:行末模式、c语言:次行格式