第二章java基础语法
2.7数据类型
2.7.1数据类型的分类
2.7.2数据类型之间的字节大小
类型名称 | 数据类型 | 所占空间 | 大小 |
---|---|---|---|
字节型 | byte | 1个字节 | 8位 |
短整型 | short | 2个字节 | 16位 |
整形 | int | 4个字节 | 32位 |
长整型 | long | 8个字节 | 64位 |
单精度 | float | 4个字节 | 32位 |
双精度 | double | 8个字节 | 64位 |
字符型 | char | 2个字节 | 16位 |
布尔型 | boolean | 1个字节 | 8位 |
注意:布尔类型分配是一个字节空间,但实际存储只是一位(true/false)
2.7.3数据类型的转换
在java中不同的数据类型之间是可以互相转换的,分为:自动类型转换
和强制类型转换
注意:大小数据类型可以通过数据类型所占空间的大小的大小来判断
i.自动类型转换
- 定义:指小的数据类型向大的数据类型转换,可以自动进行转换
- 语法规则:大的数据类型 变量名=小的数据类型的变量;
public class Demo01{
public static void main(String[] args){
//声明一个byte类型的变量
byte b=100;
//通过自动类型转换将byte类型的变量变为int类型
int num=b;
System.out.println("byte类型的变量b:"+b);
System.out.println("int类型的变量num:"+num);
}
}
public class Demo02{
public static void main(String[] args){
double num=12*3+3.3f;
System.out.println(num);
}
}
public class Demo03{
public static void main(String[] args){
char ch=65;
byte a=20;
short b=30;
char ch=ch+a+b;
System.out.println(ch);
}
}
注意事项:
- java中整数类型数据默认类型是int,小数数据类型是double
- 在给byte和short赋值时,只要保证数值在byte和short表示数范围之内
- 在四则运算中,数据类型提升规则如下:
- byte=>short=>int=>long=>float=>double
- char=>int=>long=>float=>double
- boolean不能参与转换,也不能参与四则运算
- 所有的byte型、short型和char的值将被提升为int型
ii.强制类型转换
- 定义:指大的数据类型向小的数据类型转换,无法自动转换,只能通过强制性转换
- 语法规则:小数据类型 变量名=(小数据类型)大数据类型的变量;
public class Demo03{
public static void main(String[] args){
int a=30;
//将int类型的变量强制转换成byte类型的变量
byte b=(byte)a;
System.out.println(b);
}
}
public class Demo03{
public static void main(String[] args){
//声明一个int类型的变量
int num=129;
//声明一个byte类型变量存储int变量中的值
byteb=(byte)num;
System.out.println("b="+b);
}
}
- 129=> 0000 0000 0000 0000 0000 0000 1000 0001(对应的int类型的补码)
- =>byte 1个字节1000 0001(强制转换后,变成byte类型的补码)
- =符号位是1(所有负数所有的数据都是补码存储原码展示)
- =>1000 0001=>(反)1000 0000 ->原码1111 1111 -> -127(计算机输出原码给我们看)
注意事项:
- 强制类型的转换有可能造成数错误,不推荐使用
- 强转有风险,转换需谨慎
- 计算机是以补码的形式存储,原码展示
2.8常量
2.8.1什么是常量?
- 定义:在程序运行期间,其值不可以发生改变的变量。
2.8.2为什么需要常量?
- 在软件开发的过程中,书写程序的过程中,有一些值是不允许或者是没有必要重新多次赋值的,对于这些值而言,我们可以通过常量来将其定义,防止在程序运行期间发生改变。
2.8.3常量的分类(个人定义,仅供参考)
- 字面常量:看到什么就是什么。例如 int a=1;
- 符号常量:通过final修饰的变量之后变为常量
2.8.4常量的用法
public class FinalVarTest01{
public static void main(String[] args){
//1:声明一个变量存放r
int r=10;
//2:声明一个变量存放PI的值
//当通过final修饰完pi之后,pi的值不能修改,不然程序编译报错。
final double pi=3.14;
//3:声明一个变量存放圆的面积
double area=pi*r*r;
System.out.println("area:"+area);
//4:声明一个变量存放周长
pi=3.1415926;
doublezc=2*pi*r;
System.out.println("zc"+zc);
}
}