java数据类型和变量

炎炎夏日。有时间记得去找房东拿空调遥控器。

java数据类型分类:

一、基本数类型和引用数据类型。

基本数据类型:整型(short,int,long),字符型(char),浮点型(float,double),布尔型(boolean):

四类八种基本数据类型:

  

 

 

 其中字节与字符的关系:

    1.位(bit)  数据存储的最小单位。每个二进制数字0或者1就是1个位;如 0000 0000  即8位 (8 bit);

     2.字节(byte)8个位构成一个字节;即:1 byte (字节)= 8 bit(位);

    3.字符(char) 一个字符占两个字节,如上图所示

    tips:Java中的char是Unicode编码,Unicode编码占两个字节,也就是16位,足够存储一个汉字。

引用数据类型:类,数组,接口

 

二、java变量的定义

java 变量的定义应包含 三个要素:数据类型  变量名  = 数据值;

如  int a = 10;

或  int a;

  a=10;

注:long类型的建议在数据值后加L;如120L;

  folat类型的建议在数据值后加F;如120F;

  在同一大括号内{},变量名不可重复,

  变量在使用前必须赋值;

三、Java数据类型转换

   基本概念:在java程序中,参与计算的数据,必须保持数据类型一致,否则会生类型转换;

1、自动类型转换:将取值范围小的类型自动提升为取值范围大的类型

public class Hello{

public static void main(String[] args) {
int a = 1;
byte b = 2;
//将b自动提升为int类型参与运算,结果c为int类型
int c = a + b;
//如果定义为 byte c =a+b;则会报错,无法通过编译
System.out.println(c);
}
}

  自动转换原理:byte占一个字节,int占四个字节,在参与int类型的运算时,byte会自动补充三个字节参与运算,所以结果为int类型;

再比如:int a=1; double b = 2L; double  c = a+b;  a会自动向取值范围大的double类型转换,再参与运算,结果为double类型。

Tips:转换规则:

  byte、char、shrt--->int--->long--->(float)--->double

注:boolean不能与其他基本类型进行转换;

2、强制类型转换:将取值范围大的类型强制转换为取值范围小的类型(需要程序员自己操作);

强制类型转换定义格式:

数据类型  变量名=(数据类型)被转换数据值;

如:int a=(int)1.5; //直接double类型的数据强制转换为int类型,直接去掉小数点。得到的结果为1;

例子:

public static void main(String[] args) {
//short占两个字节
short s = 1;
/*
编译失败的原因:
s在和1做运算的时候,由于1是int类型,s会自动转换为int类型,则结果为int,
将int类型赋值给short类型,所以编译不通过

*/
//short s = s+1; //编译失败
//进行强制类型转换则编译通过:
s= (short)(s+1);
}

在上面的例子中,short s=1;s= (short)(s+1);如果写成short s+=1;也不会报错,原因是,在写成s+=1时,java内部已经帮我们进行了类型转换;

注:强制类型转换会造成精度下降,数据丢失等问题;

posted @ 2020-07-06 16:00  yl丶  阅读(199)  评论(0编辑  收藏  举报