第3章 数据类型和运行符
序:Java语言是一门强类型语言。强类型包括两方面的内容:(1)所有变量必须先声明,后使用(2)指定类型的变量只能接受新类型与之匹配的值。可以在编译过程发现源代码的错误。
一:注释
1、单行注释://...
2、多行注释:/*...*/
3、文档注释:/**...*/
4、Javadoc命令的基本用法:javadoc 选项 java源文件|包。常见选项:见书43-44页。
二:数据类型分类
1、java语言支持的类型分为两类:基本类型和引用类型。
基本类型:boolean(1字节)、char(2字节)、byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)。
引用类型:类、接口、数组、null(特殊)。
注:boolean其实用1位即可保存,但大部分计算机分配内存时,最小单元是字节,所以需要8位。
2、计算机“补码”的形式保存所有的整数。
3、Java提供了三个特殊的浮点数值:正无穷大(正数/0)、负无穷大(负数/0)和非数(NAN)(0.0/0.0或负数开平方),用于表示溢出和出错。
4、所有的正无穷大数值都是相等的,所有的负无穷大数值也都是相等的;而非数不与任何数值相等,甚至和非数都不相等。
5、Java7:可以在数值中使用下划线。例如:int binVal = 0100_0010_0000_0011; double pi = 3.14_15_92_65;
三:基本类型的类型转换
1、自动类型转换图:
2、表达式类型的自动提升规则:
(1)所有的byte类型、char类型和short类型将被提升到int类型;
(2)整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
四:直接量
1、含义:指在程序中通过源代码直接给出的值。例如:int a = 5;
2、能定义直接量的通常只有三种类型:基本类型、字符串类型和null类型。
3、char类型的直接量有三种形式:
(1)'c';
(2)'\n'; (转义)
(3)'\u0061'; (Unicode值表示的字符)
4、注意点:当程序第一次使用某个字符串直接量时,Java会使用常量池来缓存该字符串直接量。
5、String(不可变量)即对象创建出来就不能被改变。
6、常量池:指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据,它包括关于类、方法、接口中的常量,也包括字符串直接量。
五:运算符
1、
byte a = 5; a = a + 5; // 把int类型赋值给byte类型的变量,所以出错
2、byte b = 5; b += 5; // 正确,说明a = a + 5和a += 5的底层运行机制存在一定差异。
3、&&与&的区别:如果左边表达式为假时,则不再计算右边的表达式。
4、||与|的区别:不管左边表达式是真是假,右边表达式一定执行。
5、运算符优先级:表格请查看书69页。