学习java第二天 (下)变量和数据类型转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习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
浮点型强制转换为整数,会舍去小数位。
以上是关于学习java第二天 (下)变量和数据类型转换的主要内容,如果未能解决你的问题,请参考以下文章