java基本数据类型

来源:互联网 发布:任务提醒软件 编辑:程序博客网 时间:2024/05/19 19:30

基本数据类型:分为4类8种

    整数型:byte,short,int,long 

    浮点型:float,double

    字符型:char

    布尔型:boolean


一:java语言中的数据是有默认类型的

整数的默认类型是int类型,实数的默认类型是double类型。

例如。float  f=1.2;这样定义float变量时不正确的,在编译的时候会报错,“可能损失精度”。因为默认写为小数,例如1.2,默认是double型数据,所以声明常量float时,认为把double类型数据放到float里会出错。

所以声明float型常量是后面必须加‘f’或者是‘F’。同理,声long型常量后要加“l”或“L”。

double d=123.56;//正确

float f=123.56f;//必须要加f否则会出错

float型精确度是小数点后7位,double型数据精确度是小数点后15位。

1.任何类型的数据都可以向String转换

2.boolean类型不可以转换为其他的数据类型

3.整形,字符型,浮点型的数据在混合运算中相互转换,转化时遵循以下原则:

   a.容量小的类型自动转换为容量大的数据类型:数据类型按容量大小排序为:

      a1. byte,short,char-->int -->long-->float-->double

      a2. byte.short.char 之间不会相互转换。他们计算时首先转换为int类型

   b.容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出

   c.有很多类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行运算   

    容量大小值的是表示的数的大小,而不是内存中占的多少。例如,long类型数在内存中占8个字节,而float类型数占4个字节,但是float所能表示的数要比long类型大得多。

public class Test4 {
public static void main (String args[]){
int i1=10;
int i2=30;
float f=(float) ((i1+i2)/1.2);//1.2是double类型的,(i1+i2)/1.2也是double型的。而f是float型的,所以将(i1+i2)/1.2强制转换为float型的
System.out.println(f);
}
}

二:在初始化变量或者为变量赋值时,应该注意的几点:

 (1)float数据后要加f,float f=(float)0.1;与floatf=0.1f;之间是有很大差别的:第一个中,0.1是double类型,在内存中占8个字节,是将其强制转换为float型在赋给变量f;第二个中,0.1直接就是float类型,在内存中占4个字节。

(2)byte(或char类型,或short型数据)数据进行运算时是将其转换为int型数据在进行运算,所以其运算结果必须要先强制转换为byte型(或char型,或short型数据),然后才能赋值给byte型变量(或char型变量,或short型变量)。其次还要注意byte型数据的取值范围是:-128至127;

(3)long型数据后要加L,最好用大写的L,因为小写的l容易与1弄混;

类型占用存储空   间         表数范围                             byte             1字节-128---127short2字节-215---215-1int4字节-231---231-1long8字节-263---263-1float 4字节  -3.403E38~3.403E38double8字节-1.798E308~1.798E308
(表格中的红色数字表示幂数)

public static void main (String args[]){

int i=1,j=12;
float f1=(float)0.1;//0.1是double类型的,所以要强制转换为float型
float f2 =123;
long l1=12345678,l2=8888888888L;
double d1=2e20,d2=124;
byte b1=1,b2=2,b3=127;
j=j+10;
i=i/10;
i=(int)(i*0.1);//i*0.1是double型的  所以要强制转换
char c1='a',c2=125;
byte b = (byte)(b1-b2);//系统将转换为int型运算,需要强制转换符
char c =(char)(c1+c2-1);//1是int型的
float f3 =f1+f2;
float f4 =(float)(f1+f2*0.1);//(f1+f2*0.1)是double型的
double d =d1*i+j;
float f = (float)(d1*5+d2);//(d1*5+d2)是double型的 所以强制转换

}
三:Java变量:

       从本质上讲是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后进行赋值(填充内容),才能使用。



0 0
原创粉丝点击