首页 > 编程语言 >java数据类型以及转换

java数据类型以及转换

时间:2022-10-16 23:00:10浏览次数:47  
标签:java int 数据类型 System char println 转换 out

1、java数据类型分类

java数据类型可以分为基本数据类型和引用数据类型。
基本数据类型分为:数值型和布尔型。
数值型分为整形(byte、short、int、long)和浮点型(float、double)和字符型(char)。

java基本类型
字节概念理解:1Byte = 8 bit,即:一个字节等于8个二进制位。
字节越多,bit位就越多,能够表示的容量就越大。

2、java数据类型转换

java数据类型主要分为:
- 自动类型转换
- 强制类型转换

2.1 自动类型转换

自动类型转换就是java数据类型容量从低的转换为容量高的,java数据类型容量从低到高依次为:
byte,char,short -> int -> long -> float -> double
这里有几点需要说明:

  1. 布尔型是不参与转换的,只针对整数类型才有。
  2. 严格来说,转换是先向整形转换,再向浮点型转换。long是8个字节,要向float4个字节转换,这里不是按照容量转换标准来的。或者说:同一个类型,是按照容量从小到大转换的。
  3. char类型本质也是整数类型,是字符的asci编码值。
  4. byte是1个字节,不会转换为short类型2个字节,或者转换为char也是2个字节。最起码是int类型,涉及运算的,起步是向int类型靠拢。
点击查看代码
byte b1 = 1;
char c1 = 'a';
System.out.println(c1);
System.out.println(c1+b1);
System.out.println((char)(c1+b1));
a
98
b
以上代码说明,byte和chart型做加法运算,不会转换为char型,而是都转换为int类型再运算。如果是转换成char,那么打印显示的结果应该是 b。 这里顺便说下:整数默认打印是按照十进制打印的,如果要按照其他进制打印,需要指定格式。
点击查看代码
int n0 = 0b00000010;
System.out.println(n0);
int n1 = 10;
System.out.println(n1);
int n2 = 0x10;
System.out.println(n2);
int n3 = 010;
System.out.println(n3);
System.out.printf("%o\n",n1);
System.out.printf("%x\n",n1);
2
10
16
8
12
a
## 2.2 强制类型转换 强制类型转换,就是将容量大的数据类型向容量小的转换。
点击查看代码
char c1 = 'a';
int n1 = 1;
System.out.println(c1 + n1);
System.out.println((char)(c1 + n1));
98
b
但是,强型转换可能出现问题: 1. 精度损失
点击查看代码
float f1 = 100.2f;
System.out.println(f1);
System.out.println((int)f1);
100.2
100
2. 内存溢出问题
点击查看代码
int n2 = 128;
//b2是byte类型,1个字节,范围是-128~127
byte b2 = (byte) n2;
System.out.println(b2);
-128
从大容量到小容量,相当于容器变小了,装不下了,会导致溢出。 如果没有大类型向小类型强制转换,也可能发生溢出问题。经过运算之后超出范围,就会溢出。
点击查看代码
int a = 1;
int b = Integer.MAX_VALUE;
System.out.println(b);
System.out.println(b+1);
2147483647
-2147483648
这种比喻成:容器的容量没变,但是货物增多超过了;上面溢出情况是,货物的量不变,但是容器变小了,2种情况都会导致溢出,得到错误的结果。解决方法就是增大设置合理的容器,即数据类型。

标签:java,int,数据类型,System,char,println,转换,out
From: https://www.cnblogs.com/Ray555606/p/java_Ray_fist_blog.html

相关文章