基本数据类型
目录
在Java中有8中基本数据类型来储存数值:
整数类型:
创建整型变量
byte a=12;
byte a=12,b=-13;
short a=156;
short a=156,b=-231;
int a=5454;
int a=5454,b=-5426;
int c=2+b;
long a=9876543210L;
long a=123L,b=-12655L;
long c=123L+456L;//long定义后面要加L或l;
long定义的数据整数后面要加后缀L或l,如果不加在java中默认整数为int类型;
列如:
long a=123456789*987654321;就是错误的;
我们可以发现没加L的输出的第一行是-67153019结果明显不对,这是因为整数没有加后缀L,默认为int类型,相乘后得到的值已经溢出了,因此得到了一个错误的值。
使用不同进制给整数赋值:
public class text1 {
public static void main(String[] args) {
int a =33;//10进制
int b=033;//8进制
int c=0X33;//16进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
进制转化运行(统一转化为10进制)以后会得到结果:
浮点类型:
创建浮点变量:
float a=1.1F;
float a=1.1F,b=2.4f;
float修饰的值必须加F或f后缀。
double a=3.1415926;
double a=3.1415926,b=-123.00005;
double c=1.1D,e=1.2d,f=1.3;
double修饰的值可以加D,d后缀或者什么后缀都不加(因为double是浮点类型的默认类型)。
Java中的浮点值是近似值,不准确!
案列1 4.35*100
发现double 4.35*100=434.999999999994,解决这个问题我们可以采用四舍五入的方法,使用Java提供的Math.round().
这样结果就对了。
案例2 0.1==2.0-1.9
可以发现结果为false,也就是不相等,然后可以发现b的结果是0.100000000000009现实与现实不相符 。
解决办法:最小对比法,使用Java提供取绝对值方法Math.abs()与最小数“1e-6相比较。
1e-6是理论的最小数,如果两个数的差比它还小那么可以认为这两个数相等。
最终我们得到了ture,说明相等。
字符类型
用单引号包含的可打印的单个符号
这些都是字符:
'a' 'M' '8' '#' '是' ' '
以下不是字符:
‘java' "A" '8'!=8
8*2=16;
'8'*2=112;
char类型
同C和C++语言一样,Java语言也可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符(0x0000~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536的数所代表的Unicode表中相应位置上的字符,也必须使用char型显示转化。
char可以保存字符以外,还可以保存字符编码.
创建字符的例子:
我们发现两种赋值得到的结果一样,这是因为任意一个字符都有字符编码。
比如汉的字符编码就是27721.
转义字符 :
布尔类型
创建布尔类型:
boolean a;
boolean a=true;
boolean a=true,b=false;
布尔类型只有两个值ture和false.
【编程训练】*
【训练一】统计粮仓的粮食
一个圆柱形粮仓,底面直径为10m,高为3m。该粮仓体积为多少立方米?如果每立方米屯粮750kg,该粮仓一共可储存多少千克粮食?
public class text1 {
public static void main(String[] args) {
double P=3.14;
int H=3;
int d=10;
double V=P*(d/2)*(d/2)*H;
System.out.println("该粮仓体积为"+V+"m³");
System.out.println("该粮仓可以储存粮食"+V*750+"kg");
}
}
【训练二】谁该交税
员工a,员工b的月薪分别为4500元与5500元,判断哪位员工需要交税?哪位员工不需要缴纳个人所得税?(假设工资薪金所得的个税起征点为5000元)
public class text {
public static void main(String[] args) {
final int MAX=5000;
int a=4500;
int b=5500;
System.out.println("员工a的工资为"+a+"元");
System.out.println("员工b的工资为"+b+"元");
if(a>=MAX)
{
System.out.println("a员工要交个人所得税!");
}
else {
System.out.println("a员工不需要交税。");
}
if(b>=MAX)
{
System.out.println("b员工要交个人所得税!");
}
else {
System.out.println("b员工不需要交税.");
}
}
}