数据类型
数据类型的作用决定了变量可以存储的数据类型和存储的范围。
数据类型分为基本数据类型和引用数据类型两种,引用数据类型后续我在面向对象阶段再做介绍。
基本数据类型有8种:byte short int long float double char boolean
实际开发过程中常用有int、double类型
byte字节,1字节在计算机内存中占1个字节,8位空间,存储范围-128-127;
1b(1字节)= 8bit:
1kb = 1024b
1Mb = 1024kb
1Gb = 1024Mb
int类型:在内存占用4字节,可以容纳范围:-2147483648 ~ 2147483647(正负21亿)
public class DataTypeDemo01 {
public static void main(String[] args) {
int a = 2147483648;//编译报错,超出int类型最大容纳范围
int b = 5;
int c = 2;
System.out.println(b / c);//运行结果为2,不会是2.5
int b1 = 2147483647;
int mumber = b1 + 5;
System.out.println(mumber);//编译不会报错,但是数据有溢出
}
}
long 是长整数数据类型,在内存中占用8个字节,存储数据范围-900万万亿-900万万亿
long a = 214748364800L;//long类型直接量 需要后缀加上L
long b = 1000000000;//10亿
long c = 1000000000 * 2 * 10L//输出结果200亿
long d = 1000000000 *3 * 10L//有数据溢出,因为10亿*3已超出int类型最大容纳范围
long e = 1000000000L * 3 *10//正确输出
double(双精度浮点数)存储小数类型,是常用的数据类型。占用内存8个字节
public class DataTypeDemo02 {
public static void main(String[] args) {
double a = 6.1;
double b = 4.0;
System.out.println(a - b);//结果会存在误差
}
}
char是单个字符类型,在内存中占用2个字节,数据范围是0-65535
需要了解一下Unicode和ASCII码这两个概念
Unicode:收录全球的特殊符号,也称之为万国码,我们使用的是Unicode中最常用的子集,ASCII码表。
char c = ''';
char D = '';
char a = 'A';
System.out.println(c);//输出'
System.out.println(D);//输出
System.out.println(a);//输出A
System.out.println((int) a);//输出65,ASCII码表,字符A对应的十进制值,计算机在转换为二进制进行识别
boolean是布尔类型,在内存中占用1个字节,里面只能存放true或者false。
这些都比较简单,易于理解。
另外我会根据学习进度逐步分享一些快捷键,这样循序渐进效果会更好一些
CTRL+ALT+L整理代码的快捷键(格式化代码)
CTRL+/ 快速注释掉选中行
类型转换分为自动类型转换和强制类型转换两种
自动类型转换是指小类型赋值给大类型的过程
int a = 10;
long b = a;//发生了自动类型转换
double c = b;//发生了自动类型转换
强制类型转换是指大类型转换为小类型的过程(强制转换有可能造成数据溢出)
long b =2147483648L;
int a = (int)b;//有溢出
double d2 = 3.14;//double类型的数据
int d3 = (int)d2;//将小数转换为整数 不保留小数位.
System.out.println(d3);
byet b1 = 128;//报错,超出byte最大容纳范围
byte b2 = 10;
byte b3 = 110;
byte bb = b2 + b3;//编译报错:b2+b3为int类型,而bb为byte类型
int bbb = b2 + b3;//正确
byte b4 = (byte)(b2+b3);//正确,强制类型转换,且没有溢出
byte b5 = (byte)(b2*3 + b3);//正确,强制类型转换,但是有溢出
char c1 = 'A';
char c2 = 'b';
char c3 = c1 + c2;//报错,类型不符
int i1 = c1+ c2;//正确,结果为163
char c4 = (char)(c1+c2);//结果为字符 (十进制值为163)
页面更新:2024-04-29
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号