文章目录
-
-
- 字面常量
- 数据类型
- 什么是字节?
- 变量
- 类型转换
- 类型提升
- 字符串类型
-
字面常量
定义:常量即程序运行期间,固定不变的量称为常量。
分类:
数据类型
两类:基本数据类型(四类八种)和引用数据类型。四类:整型,浮点型,字符型,布尔型。(字符串是引用类型)
补充知识: 包装类指的是,基本数据类型对应的类类型。因为基本数据类型无法进行对象化处理,所以就引入了包装类。 
什么是字节?
计算机中最小存储单位:bit(每个0或1就是一个位)。 计算机中基本存储单元:Byte(B)(是计算机用于计算存储容量的基本单位) 转换关系: 8 bit = 1 Byte 1024 Byte = 1KB 1024 KB = 1MB 1024 MB =1GB 1024 GB = 1TB
变量
定义:经常改变的量就是变量。
数据类型 变量名 = 初始值;
注意: 命名一个变量时尽量给一个初始值。(程序在调用时如果没有给变量赋值,编译时会报错)
注意: 1.在一行可以定义多个相同类型的变量。如:int a1 = 10, a2 =20, a3 = 30; 2. float a = 2.8f;类型是float值的后面加f。因为随便写一个小数都是double类型。 3. long = 299L;类型是long值后面加L,小写会误看成1。 4. 赋值时不要超过类型的范围,否则会报错。
类型转换
在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和 强制类型转换(显式)。
(1)自动类型转换:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点 是数据范围小的转为数据范围大的时会自动进行。
如:
int a = 2;
long b = 100L;
b = a;//a和b都是整形,a的范围小,b的范围大,当将a赋值给b时,编译器会自动将a提升为long类型,然后赋值
a = b;//编译报错,long的范围比int范围大,会有数据丢失,不安全
byte b1 = 100; // 编译通过,100没有超过byte的范围,编译器隐式将100转换为byte
byte b2 = 257; // 编译失败,257超过了byte的数据范围,有数据丢失
(2)强制类型转换: 当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点: 数据范围大的到数据范围小的。
int a = 10;
long b = 100L;
b = a; // int–>long,数据范围由小到大,隐式转换
a = (int)b; // long–>int, 数据范围由大到小,需要强转,否则编译失败
float f = 3.14F;
double d = 5.12;
d = f; // float–>double,数据范围由小到大,隐式转换
f = (float)d; // double–>float, 数据范围由大到小,需要强转,否则编译失败
a = d; // 报错,类型不兼容
a = (int)d; // int没有double表示的数据范围大,需要强转,小数点之后全部丢弃
byte b1 = 100; // 100默认为int,没有超过byte范围,隐式转换
byte b2 = (byte)257; // 257默认为int,超过byte范围,需要显示转换,否则报错
boolean flag = true;
a = flag; // 编译失败:类型不兼容
flag = a; // 编译失败:类型不兼容
注意:
类型提升
定义:不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
int a = 10;
long b = 20;
int c = a + b; // 编译出错,long 赋值给int时会丢失数据
long d = a + b; // 编译成功
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c)//报错
报错如下:
原因: byte 和 byte 都是相同类型, 但是出现编译报错.。程序运行a + b 会先将 a和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 最后将结果赋值给c。int类型赋值给byte类型需要强制转换,故报错。
补充知识: 由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据。 为了硬件上实现方便, 诸如 byte 和 short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算。
上面正确做法:
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c)
结论:
字符串类型
在Java中使用String类定义字符串。
String s1 = "Hello";
String s2 = " World";
System.out.println(s1+s2);//加号表示字符串拼接
字符串和整形数字转换;
int num = 120;
// 方法1
String str1 = num + "";//xxx+一个字符串等于字符串
// 方法2
String str2 = String.valueOf(num);
String s = "110";
int num = Integer.parseInt(s);
网硕互联帮助中心






评论前必须登录!
注册