基本类型
int、long、double、char、boolean(存储逻辑变量(true、false))
整型
整型分为int型和long型 1.int型 表示整数型,int a=5; 思考: 为什么换了100的位置,结果就发生了变化?
int a=72;
int b=21;
int percent =b/a*100;
System.out.println(percent+“%”);
//这里的percent为0%
int a=72;
int b=21;
int percent =100*b/a;
System.out.println(percent+“%”);
//这里的percent为29%
答案:因为int计算的都是整型,所以如果先b/a的话得数是0.如果先乘以100的话,那就可以进行计算了 整数运算的溢出: 两个整数进行运算的时候,结果可能会超过整数范围并溢出,正数过大产生的溢出结果为负数,相反,负数过大产生的溢出结果为正数。
public class DataTypeDemo {
public static void main(String[] args){
//int:整型
int a=8;//88为直接量,java默认int型
//超过int范围了,所以报错
//int b=10000000000;
//小数无条件舍去
int c=5/3;
System.out.println(c);
//溢出(是需要避免的)
int m=2147483647;//m为int的最大值
m=m+1;//在最大值基础之上加1---溢出
System.out.println(m);
}
结果为m=-2147483647
long型
如果int 类型的范围不够,可以使用long型。 表示范围:-9223372036854775808-9223372036854775808 如果要表示long直接量,需要以L或者l结尾 long a=10000L;
浮点型
主要讲double型 ·浮点数,大多数场合使用double表示浮点数,因为double的精度值是float的两倍。
//运算性以大类型作为最终类型
int a=5/2;
double b=5/2;
double c=5.0/2;
System.out.println(a);//2
System.out.println(b);//2.0
System.out.println(c);//2.5
若表示flaot类型的直接量,需要加f或者F后缀 例如: float a=3.14f; double运算时会出现舍入误差:
double a=3.0;
double b=2.9;
System.out.println(a-b);
//输出的结果是0.1000000000009
char类型
·字符直接量:‘中’的形式,‘a’,占两个字符 对char型变量赋值: 注:一个char型变量只能存储一个字符 在对char型变量赋值时,可以采用如下三种方式: -字符直接量:形如‘A’,变量中实际存储的是该字符的Unicode编码 -整型直接量,:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数所对应的的Unicode字符。 -Unicode形式: char c=‘A’; char c=65;
使用转义字符:
含义 ‘\n’ 表示回车符 ‘\r’ 表示换行符 ‘\” 表示单引号 ‘\”’ 表示双引号(”) ‘\’ 表示反斜杠(\)
boolean型
使用boolean变量进行关系运算: ·boolean类型适用于逻辑运算,表示某个条件是否成立。一般用于程序的流程控制 ·boolean类型只允许取值true或false,true表示条件成立而false表示条件不成立 ·boolean型变量经常用于存储关系运算的结果,所谓关系运算就是比较两个变量的大小相等等关系
//boolean型,占1个字节
int age=18;
boolean isChild=age<16;//isChild的值为false
System.out.println(isChild);
boolean running=true;
boolean closed=false;
数据类型转换
分为两类: 1.自动类型转换 2.强制类型转换
int a=60;
long b=a//自动类型转换 小--大
int c=(int)b;//强制类型转换 大--小
byte、char、short转换为int ·byte、char、short三种类型的实际存储的数据都是整数,在实际使用中遵循如下规则: ·int量可以直接赋值给byte、char和short 例如:byte a=55;char c=97; ·byte、char、short只要参与运算,则一律转为int型
byte b1=5;
byte b2=6;
byte b3 =b1+b2;//错误
应改为:
byte b3=(byte)(b1+b2);
从小到大的顺序:
byte<short<int <long<float<double
小结:
数据类型: int :55 long:55L double:55.0 char:’a’ boolean:true和false 类型间转换