浮点型数据类型 ▪ 浮点类型常量 十进制数形式,例如: ▪3.14 314.0 0.314 科学记数法形式,如 ▪314e2 314E2 314E-2 ▪double f = 314e2; //314*10^2-->31400.0 ▪double f2 = 314e-2; //314*10^(-2)-->3.14 ▪浮点型变量 –float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难 满足需求。 –double类型:双精度类型 精度是float类型的两倍,绝大部分应用程序都采用double类型。 ▪注意 –浮点常量默认为double。要变为float,需在后面增加F/f. 如: 3.14F –浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计 算,需要使用BigDecimal类。 字符数据类型(2个字节) ▪ 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的, “A”表示含有一个字符的字符串。 ▪ char 类型用来表示在Unicode编码表中的字符。 ▪ Unicode编码被设计用来处理各种语言的所有文字,它占2个字节, 可允许有65536个字符;ASCII码占1个字节,可允许有128个字符 (最高位是0),是Unicode编码表中前128个字符。 ▪ Java 语言中还允许使用转义字符 ‘’ 来将其后的字符转变为其它的 含义, char c2 = 'n'; //代表换行符 ▪ char类型在内存中存储的是该字符的Unicode编码值,所以char类 型可以当做int类型来处理
布尔数据类型(一位,不是一个字节) ▪ boolean类型有两个值,true和false ▪ boolean 类型用来判断逻辑条件,一般用于程序流程控制 ▪ 实践: – 请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。 对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的 ==fasle 和 ==true。 final 常量
▪ 使用final修饰的变量,只能被初始化一次,变成了常量。
▪ final常量是有名称的
public class Constants {public static void main(StringO args) {
final double PI= 3.14;
I PI= 3.15;
//error
double r= 4;
double area = P|* r* r;
double circle= 2* P|* r;
System.out.printIn("area= " + area);
System.out.printIn("circle= " + circle);
}
} 命名规则(规范) ▪ 所有变量、方法、类名:见名知意 ▪ 变量、方法名: – 首字母小写和驼峰原则 – run(), runRun(), age ageNew monthSalary ▪ 常量: – 大写字母和下划线:MAX_VALUE ▪ 类名: – 首字母大写和驼峰原则: Man, GoodMan 运算符 ▪ Java 语言支持如下运算符: – 算术运算符: +,-,*,/,%,++,-- – 赋值运算符 = – 扩展赋值运算符:+=,-=,*=,/= – 关系运算符: >,<,>=,<=,==,!= – 逻辑运算符: &&,||,! – 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!) – 条件运算符 ?: ▪ 相关概念辨析 – + 运算符 *** 作符 Operator – 5+6 表达式 expression – 5 6 *** 作数 Operand – int m =5+6; 语句 Sentence 算术运算符 ▪注意: –1:/ 除 6/4=1 6/4.0=1.5 –2: %取模(求余) 6%4=2 –3:+ 6+‘a’=103 6+“a“=6ª –4:++ ▪a=2;b=++a+9; ▪a=2;b=a+++9; –+:字符串相加,只要有一个 *** 作数是字符串,自动变为字 符串相连
算术运算符 ▪二元运算符类型提升: –整数运算: ▪如果两个 *** 作数有一个为Long, 则结果也为long ▪没有long时,结果为int。即使 *** 作数全为shot,byte,结果也是int.
–浮点运算:
▪如果两个 *** 作数有一个为double, 则结果为double. ▪只有两个 *** 作数都是float, 则结果才为float. ▪一元运算符(++, --): 赋值运算符 ▪ 基本赋值运算符 = ▪ 扩展赋值运算符 – 算术运算符和赋值运算符结合
关系运算符 ▪ 关系运算符用来进行比较运算 ▪ 关系运算的结果是布尔值:true/false、 ▪ 注意 – 区分==和= – 不等于是!=不是<> 运算符 含义 示例 == 等于 a==b != 不等于 a!=b > 大于 a>b < 小于 a= 大于或等于 a>=b <= 小于或等于 a<=b 逻辑运算符 ▪ 逻辑运算符与布尔操作数一起使用,组 成逻辑表达式 ▪ 逻辑表达式的结果是布尔值 ▪ &和&&的区别 – “&”:无论任何情况,“&”两边的表达式都会参 与计算。 – “&&”: 当“&&”的左边为false,则将不会计算 其右边的表达式。即左false则false ▪ “|”和“||”的区别与“&”和“&&”的区别类似。 运算符 含义 示例 & 逻辑与 A&B | 逻辑或 A | B ^ 逻辑异或 A^B ! 逻辑反 !A || 短路或 A || B && 短路与 A&&B 位运算符(了解) ▪ 位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。 ▪ 如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结 果也为int。 运算符 含义 示例 ~ 按位非( NOT ) /取反 b = ~a & 按位与( AND) c = a & b | 按位或( OR ) c = a | b ^ 按位异或 ( 相同为 0 相异为1) c = a ^ b >> 右移;左边空位补最高位即符号位 b = a >> 2 >>> 无符号右移,左边空位补0 b = a >>> 2 << 左移;右边空位以补0 b = a << 1 条件运算符 ▪ 语法格式 – x ? y : z int a=3; int a=3; – 唯一的三目运算符 int b=5; int b=5; String str =""; String str = if(ab"; str ="ab"; } ▪ 执行过程 – 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运 算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。 ▪ 经常用来代替简单的if-else判断! 运算符的优先级 ▪ 不需要去刻意的记优先级关系 ▪ 赋值<三目<逻辑<关系 <算术<单目 ▪ 理解运算符的结合性 基本数据类型之间的转换 ▪ 在 赋值运算 或 算术运算 时,要求数据类型相同,否则要进行类型转换 ▪ 转换方式: – 自动转换 – 强制转换 ▪ 除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时 都要考虑这个问题 ▪ 除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。 ▪ 算术运算时的转换 – 整型,浮点型,字符型数据可以混合运算。 – 运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。 – 3+'A'+45L – 5+3.6+ 'A'+ 3.14f 操作数 1类型 操作数 2类型 转换后类型 byte 、 short 、 char int int byte 、 short 、 char 、 int long long byte 、 short 、 char 、 int 、 long float float byte 、 short 、 char 、 int 、 long 、 double double float double double ▪赋值运算时的转换
▪ 总结 – =右侧:所有变量先转换为字节数最多的数据类型,再计算 – =两侧:左侧宽度>右侧宽度 自动转换 左侧宽度<右侧宽度 强制转换 ▪ 特例 – 可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强 制类型转换,只要不超出其表数范围 – short b = 12; //合法 – short b = 1234567; //非法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)