😸个人主页👉:神兽汤姆猫
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。
类型转换
隐式转换
将数据类型中,取值范围小的数据,给取值范围大的类型赋值,可以直接赋值。可以通俗的理解为小的给大的。各个数据类型的具体转换关系如下图所示:
编辑
先来看个小例子帮助理解:
int a =10;// int占4个字节 double b =a;// double占 8个字节 System.out.println(b);//输出:10.0
我们需要注意的是,如果小的数据类型和大的数据类型运算,小的会提升到大的之后,在进行运算。看下此例:
public static void main(String[] args) { int a= 10;// 4个字节 double b =12.3;// 8个字节 double c = a+b; System.out.println(c); }//输出:22.3
解读:a和b在运算的过程中,会先将a提升为double类型,当类型统一之后,在进行运算。两个double运算,结果是double,故结果使用double接收。
重点:byte、short、char三种类型在运算时,无论是否有更高的数据类型,都会提升为int,然后在进行运算。我们来看下例加深理解:
public static void main(String[] args) { byte a = 10; byte b = 20; int c = a + b; System.out.println(c); }//输出:30 //如果将int换位byte就会报错。故以后使用int即可
强制转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。也就是大的给小的只可以强制转换。
格式: | 目标数据类型 变量名 =(目标数据类型)值或者变量 |
案例1:如果是这样:
编辑
将如图所示,会报错不兼容,损失一定的精度。
此时如果我们就想使用byte怎么办,那么就需要使用强制转换了,如下图所示:
编辑
案例2: 如果我们这样使用:
编辑
那么同样也会损失,即小数点之后全部会消失。我们来看一下输出了什么:
编辑
输出结果为12,也会损失精度。
通过以上两个案例,我们会发现Java是存在一种常量优化机制的,例如(byte a = 7 + 2;)即会在编译时会让7和2进行相加,然后自动判断9是否在byte的取值范围内。如果不在范围内,则会编译出错。如果在范围内,则会通过编译。
常量(constant )
在程序的执行过程中,其值不会发生改变的量。比如你有100元,100元始终是100元,它并不会改变,不会改变的量。这就是常量,常量的分类如下所示:
字符串常量 | 被双引号" "所包裹的内容,上面的输出的神兽汤姆猫也就是常量。 |
整数常量 | 所有的整数,例如1314,-1314 |
小数常量 | 所有的小数,例如418.88,-88.418 |
字符常量 | 被单引号包' '裹的内容,里面只可以存放单个字符,例如‘T’,‘5’,‘你’等 |
布尔常量 | 只有两个值,true(真) 、false(假) ,表示真假。注意:布尔常量打印是毫无意义的,此处是为了后面的运算符的学习打下基础。 |
空常量 | null ,注意null空常量是不可以输出打印的,具体在数组部分解释。 |
变量
对于经常发生改变的数据,就是所谓的变量 。例如:此时你爱上了第一个女人,但是过两天你又爱上了另一个男人,那你的爱就是变量。
public static void main(String[] args) { System.out.println("神兽汤姆猫"); //神兽汤姆猫就是常量 }
变量即内存中的存储空间,空间之中存储着经常发生改变的量(数据)
变量的定义格式:
数据类型 变量名 = 数据值; int a = 10;
变量名:即自己给内存存储空间起的名字
数据值:空间之中要存储的数值
数据类型:空间存储的数据,加入类型【限制】整数or小数or??
计算机存储设备最小信息单元,位(bit
),即比特位,通常用‘b
’表示。
计算机中最小存储单元,字节(byte),通常用‘B’表示,字节是由连续的8个位组成的。
- 1B(字节)=8bit
- 1KB = 1024B
- 1MB = 1024KB
💕如果此篇文章对您有帮助的话,请点赞、转发、收藏这对我有很大的帮助。