变量的介绍
* 变量是程序的基本组成单位
* 变量相当于内存中一个数据存储空间的表示
* 变量在该区域有自己的名称和类型
* 变量必须先声明,后使用,即顺序
* 变量在该区域的数据/值可以在同一类型内不断变化
* 变量在同一个作用域中不能重名
* 变量 = 变量名 + 值 + 数据类型。
+号的使用
* 当左右都是数值类型时,则作加法运算
* 当左右有一方时字符串时,则作拼接运算例
* 1 + 98 99
* 1 + 98 + “wc” 99wc
* "wc" + 1 + 98 wc198
数据类型
* 基本数据类型
* 数值型 整数类型 byte[1] short[2] int[4] long[8] 浮点类型 float[4] double[8]
* 字符型 char[2] ,存放字符
* 布尔型 boolean[1] ,存放真假 true,false (在Java中 不可以用0 或者非0的整数代替false和true)
* 引用数据类型
* 类(class)
* 接口(interface)
* 数组( [] )
1. Java的整型常量默认是int型 ,声明long型常量须后加 “ l ” 或 “ L ”
int a = 1l 或 int a = 1L //错误 相当于把8个字节转换成4个字节 ,当数据太大会错误
long a = 1l 或 long a = 1L // 正确
2. Java的浮点型常量默认是double型
十进制数形式 : 1.23 22.3f .212 == 0.212 (0可以省略,必须要有小数点)
E/e 相当于 10的次方 例如 5.12e2 == 5.12 * 10^2 5.12e-2 == 5.12 / 10^2
当对运算结果是小数的进行相等判断时,要小心,应是以俩个数的差值的绝对值,
在某个精度范围内判断
bit:计算机中最小的存储单位。 1byte = 8bit
浮点数 = 符号位 + 指数位 + 尾数位
编码
* ASCLL (美国专用)
* Unicode(字母汉字统一占用2个字节,比较浪费空间),Unicode码兼容ASCLL
* utf-8(编码表,汉字3个字节,字母1个字节) 推介用这个
* gbk(可以表示汉字,范围广,字母1个字节,汉字2个)
* gb2312(可以表示汉字 ,gb2312 < gbk)
* big5 码(繁体中文,台湾,香港)
数据类型转换
//当java程序在进行赋值或者运算时,精度小的类型自动转换成精度大的数据类型 简称自动类型转换
// 数据类型按精度(容量)大小排序
char ---> int ---> long ---> float ---> double
byte ---> short ---> int ---> long ---> float ---> double
自动类型转换注意和细节
1. 有多种类型的数据混合运算时,系统首先将所有数据转换成容量大的那种数据类型,然后进行计算
2. 当把精度大的数据转换成小的数据类型会发生报错,反之自动转换
3. byte,short 和 char 之间不会相互自动转换
细节:当赋予值时首先需要判断是否在范围内,如果时就可以
4. byte,short,char 他们三者可以计算,在计算时首先转换为int类型
细节 : 例子 byte b2 = 1; byte b3 = 2; byte b4 = b3 + b2 ; // 错误的 , 因为一旦计算就变成int,参考第二点
5. boolean 不参与转换
6. 自动提升原则 :表达式结果的类型自动提升为 操作数中最大的类型