学习java第二天 (下)变量和数据类型转换


变量

变量 :                可以改变的量

变量的三个要素:变量类型 变量名 值

变量的声明:        

  • int x; 声明以分号结束 是一个完整的语句

  • 变量命名的规则:以字母开头的由数字,字母,下划线和$组成(中文和中文符号例外),中间不能有空格,虽然用中文没有问

  • 题,但是容易出现错误,大小写敏,可以用部分符号,但不要用$,$一般用于编译器中,另外不能用java的保留字符作为变量名

  • 一行可以声明多个变量  int x,a,y;

  • 变量的赋值:

  • 声明一个变量后需要对变量赋值进行显式初始化。注意变量必须被赋值才能使用。

  • 变量名 = 值;例如: x = 1;、

  • 赋值可以与声明写在一行 例如:int x = 1;

  • 变量在使用过程中可以多吃改变值

变量的注意事项

  • java中变量必须先声明在使用 使用前必须赋值

  • java可以在任何地方进行进行变量声明

  • java中变量的声明尽可能的靠近第一次使用的地方,这是一种良好的变成规范

扩展部分

注意:在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了操作方便,给这个空间取了个名字,称为变量名,内存空间内的值就是变量值。所以,申请了内存空间,变量不一定有值,要想变量有值,就必须要放入值。

没有赋值时,变量会有默认初始的值。

byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0
char '\u0000'
boolean flase
引用类型 null(不可引用对象)

数据类型转换;

首先,boolean类型不能与其他类型进行转换

注意小心内存溢出问题

将类型转换分为下面几种情况;

1,自动数据类型转换

        经典例子:

            byte a = 1000;报错    1000范围大于byte中

            float a1 = 1.5;报错     1.5为double不能赋值给float

            byte a2 = 100;正确     jvm在编译过程中,对于默认为int类型的数值,如果将其赋值给一个比int范围小的数据类型k(short byte                                                       char)等,jvm会进行判断 如果,数值小于k将会把int类型自动转回为k类型。如果,大于的类型k的取值范                                                     围,则会报错。因为k装不下,而你又没有进行强制转换。

当int的数值在类型k中,那么这时候jvm将会进行一次隐式数值转换。

        在其他情况下,将一个数值范围小的类型转换为数值范围大的类型,jvm在编译过程中将数值类型进行了自动提升,在这个过程中精度至少应该不变(float--double精度提升)

        short类型数据和char类型数据之间进行转换,只能强制进行转换,因为虽然他们在用空间相同,但取值范围不同。(short将近正负三万2千char为0~65535)。

        byte,short,char之间计算不会相互转换,而是会转会为int类型进行运算。即使是相同类型进行运算也是先转换为int在计算,计算后再复制给byte,short,char需要强制类型转换。

2.隐式数据类型转换

    自动类型转换,由系统自动完成,从存储范围小的到存储范围大的自动转换,byte-short,char-int-long-float-double

3.显式数据类型转换(强制数据类型转换)

     将范围大的强制转换为范围小的类型,精度可能丢失。需要人为进行转换。

     在转换过程中,例如将int转换为byte 会强制选取会八位。结果会出现异常

4.数学运算数据类型转换与可能需要的强制转换

    在数学运算中数据类型将朝范围大的数据类型进行转换。结果需要强制转换为想要的数据类型。

强制转换方法:

在数值见面加上强制类型转换符

double d = 34.2

 int x = (int)d

浮点型强制转换为整数,会舍去小数位。


猜你喜欢

转载自blog.51cto.com/10760006/2152766