Java数据类型
数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须定义以后才能使用
弱类型语言
Java的数据类型分为两大类
基本类型(primitive type)
数值类型分为整数类型,如byte,short,int,long;还有浮点型如float,double,还有字符类型char
Boolean型值只有true或false
//String a=10; string 必须为字符串,表示字符串类型
int num=100; //int为整形,必须为数值
byte num1=20; //byte数据范围较小
short num2=30;
long num3=40L;//Long类型后要加L
//小数
float num4=53.3F;//float后要加F
double num5=3.32423423423;
//字符
char name = 'A';
//字符串,String不是关键字,类;
//布尔值
boolean flag=true;//只有两个值ture或false
//整数拓展; 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制
int i3=0x10;//十六进制
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//浮点数拓展
System.out.println("=============================================");
//float,有限的,离散,舍入误差,接近但不等于
//double
//最好完全避免使用浮点数进行比较
float f=0.1f;//o.1
double d=1.0/10;//0.1
System.out.println(f==d);//false
float f1=23123213f;
float f2=f1+1;
System.out.println(f1==f2);//true
//字符拓展
char c1='B';
char c2='中';
System.out.println(c1);//B
System.out.println((int)c1);//66
System.out.println(c2);//中
System.out.println((int)c2);//20013
//所有字符的本质还是数字
//转义字符
//\t 制表符
//\n 换行
System.out.println("Hello\tWorld");
//布尔值拓展
boolean flag1=true;
if(flag1==true){}
if(flag1){}
//两个是一样的
引用类型(reference type)
类,接口,数组
类型转换
Java是强类型语言,所以进行有些运算的时候,要用到类型转换
低-------->高
byte,short,char-->int-->long-->float-->double
运算中的类型转换
int i=128;
double d=i;
byte b = (byte)i;//内存溢出
//强制转换 (类型)变量名 高到低
//自动转换 低到高
System.out.println(i);//128
System.out.println(b);//-128
System.out.println(d);//128.o
/* 注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干类型
3.在把高容量转换到低容量的时候,强制转换
4.在转换的时候可能存在内存溢出,或者精度问题
*/
System.out.println((int)23.3);//23
System.out.println((int)-23.34f);//-23
System.out.println("====================");
char c = 'a';
int c1=c+1;
System.out.println(c1);//98
System.out.println((char)c1);//b
//操作数比较大的时候,注意溢出问题
//JDK7新特性,数字之间可用下划线分割
int money = 1_000_000_000;
int years = 20;
int total = money*years;
System.out.println(total);//-1474836480
long total1 = money*years;
System.out.println(total1);//-1474836480 默认是int转换之前就存在问题了
long total2= money*(long)years;
System.out.println(total2);//20000000000
System.out.println(money);
浙公网安备 33010602011771号