A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈锋1 初级黑马   /  2019-1-15 20:05  /  472 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.javab中取值范围从高到低比较:byteshortintlongfloatdouble,这里还有个默认值问题,byte,short,int,long默认型为int,比如a=3,这里的3就是整形,除非前面加上特定的数据类型说明,否则默认int型,float和double默认为double型,比如a=3.0,a就默认为double型,还有boolean值默认为flase,记住是flase,char的默认值为u0000,byte c=100;//100是直接量(注意这个概念),100默认为int型,比byte类型范围大很大,但是,但是如果取值在char范围内,可以直接转型,这并不会报错,这是特例
System.out.println(c);
int a1=100;
double b1=100.0;
double sum=a1+b1;//“小从大”的运算原则,b1是double类型,比int取值范围大,占位字节也大,所以两数相加,还是取double类型
System.out.println(sum);
long c1=12345678900L;//这里的L最好大写,小写的l很容易跟1混淆,而且必须加,不加就默认为int类型,由于这个数超出了int正负21亿的取值,所以系统直接为报错
long a=123456789000L;
float b=a;//这里为什么不是float b=(long)along类型占8个字节,而float只占4个,为什么不会发生强制转型问题?因为:这里比的并不是字节数问题,而且取值范围,float的取值范围是大于long类型的,所以可以直接转
System.out.println(b);
short a=3;
short b=4;
int c=a+b;//记住这里的c不是short类型,两个短整型short相加,得到的是一个int类型
int e=3%5;
System.out.println(e);
byte c2=2;
int c3=7;
int c4=c3/c2;//两数相除,根据小从大原则,得到的c4为int类型,而且c4不等于3.5,因为int类型与byte类型相除,结果一定是int类型
System.out.println(c4);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马