所谓三天打鱼两天晒网讲的就是我这种人吧。算了,继续之前的学习。
数学中,带有小数点的数值称为实数,在java中,称为浮点数类型flaot,长度4个字节,有效范围-3.4*10的38次方。
当浮点数的表示范围不够大时,使用双精度double,长度8个字节,有效范围-1.7*10的308次方到1.7*10的308次方。
浮点数的表示方式,除了指数的形式外,还可以用带有小数点的一般形式来表示。
使用浮点型数值时,默认的类型是double。
布尔boolean类型的变量,只有true真和false假量两种。
布尔值通常用来控制程序的流程。
基本数据类型的默认值:
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char \u0000空
boolean false
数据类型转换分为:自动类型转换、强制类型转换。
自动类型转换的条件:
1、转换前的数据类型与准换后的类型兼容
2、转换后的数据类型的表示范围比转换前的类型大。
类型的转换只限该行语句,并不会影响原先所定义的变量的类型,而且通过自动类型的转换,可以保证数据的精确度,不会因为转换而损失数据内容。这种类型的转换方式称为扩大转换。
字符与整数是可使用自动类型转换的;
整数与浮点数也是兼容的;
由于boolean类型只能存放true或false,不能做类型的转换。
当两个数中有一个为浮点数时,其运算的结果会直接转换为浮点数。当表达式中变量的类型不同时,java会自动以较小的表示范围转换成较大的表示范围后,再做运算。
当两个整数进行运算时,其运算的结果也会是整数,因此在java中若是想要得到计算的结果是浮点数时,就必须将数据类型做强制性的转换。也称为显性转换。
强制类型转换有三种写法:
(float)a/b //将整数a强制转换成浮点数,再与整数b相除
a/(float)b //将整数b强制转换成浮点数,再与整数a相除
(float)a/(float)b //将整数a与b同时强制转换成浮点数,再相除
如果将一个超出该变量可表示范围的值给这个变量时,这种转换称为缩小转换。由于在转换的过程中可能会丢失数据的精确度,java并不会自动做这些类型的转换,此时就必须要做强制性的转换。
表达式是由操作数与运算符所组成:
操作数可以是常量、变量也可以是方法,而运算符就是数学中的运算符号。
运算符分为:赋值运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、括号运算符。
大部分的表达式,运算符的前后都会有操作数,但一元运算符只需要一个操作数。
算术运算符:+ - * / %
关系运算符:> < >= <= ==等于 !=不等于
当使用关系运算符去判断一个表达式的成立与否时,若是判断式成立会产生一个响应值true,若是判断式不成立则会产生响应值false
递增与递减运算符:
++递增,变量值加1
--递减,变量值减1
善用递增和递减运算符可使程序更加简洁。
a=a+1; //a加1 后在赋值给a存放
a++; //a加1 后再赋值给a存放,a++为简洁写法
若想要将变量加减非1的数时,还是得用原来的"a=a+n"的方法。
逻辑运算符:&& ||
1、a>0&&b>0 //两个操作数皆为真,运算结果才为真
2、a>0||b>0 //两个操作数只要一个为真,运算结果就为真
括号运算符():提高括号中表达式的优先级
运算符的优先级:结合性大部分是由左至右,少部分由右至左(一元、位逻辑、递增和递减、条件、赋值运算符)
括号运算符、方括号运算符、一元运算符、位逻辑运算符、递增和递减运算符、算术运算符、位左移、右移运算符、关系运算符、位逻辑运算符、逻辑运算符、条件运算符、赋值运算符。
表达式:由常量、变量或是其他操作数与运算符所组合而成的语句。
简洁表达式:+= -= *= 等等
b%=c //相当于b = b % c
a /= b-- //相当于计算a = a / b之后,再计算b--
a *= b++ //a*b的值存放到a后,b加1
a *= ++b //b加1后,再将a*b的值存放到a
表达式的类型转换:java是一个很有弹性的程序设计语言,以不流失数据为前提,即可做不同的类型转换,使不同类型的数据、表达式都能继续存储。
规则:
1、占用字节较少的类型转换成占用字节较多的类型
2、字符类型会转换成int类型
3、int类型会转换成float类型
4、表达式中若某个操作数的类型为double,则另一个操作数字也会转换成double类型。
5、布尔类型不能转换成其他类型。
下一节讲循环与选择性语句,单独做笔记。