Java(六)数据类型之间的转换

简介: Java(六)数据类型之间的转换

Java是一门强语法类型语言,其中大概率会设置到不同数据类型的变量之间进行数据类型转换。关于数据类型转换,大概有一下两种方式:


一:强制类型转换


什么是隐式类型数据转换呢?就是大的数据类型被强制转换为小的数据类型。


我们能不使用强制转换,尽量不使用强制转换,转不好可能会出问题。


下面我们使用代码来举一个小例子:


/**
*  **@name** 主方法
*  **@param** args
*/
**public** **static** **void** main(String[] args)
{
**int** a = 130;
**byte** b = (**byte**)a;
System.***out***.println(b); // 输出-126
}


上边的代码最终输出-126。至于为什么输出的是-126,这个涉及到计算机底层的使用补码、反码、原码计算的知识,我这里不是很了解,后面再说。

 

二:隐式类型转换


什么是隐式类型数据转换呢?就是小的数据类型会自动提升为大的数据类型。


下面我们使用代码来举一个小例子:


/**
*  **@name** 主方法
*  **@param** args
*/
**public** **static** **void** main(String[] args)
{
**byte** b = 1;
**int** num = 1000;
**short** s = 20;
**long** l = 2L;
// 浮点数定义 数字后边必须加f,否则报错
**float** f = 3.1f;
**double** d = 3;
**double** result = b + num + s + l + f + d;
System.***out***.println(result);
}


我们可以看到,上边的算式中我们最后接受结果的变量的数据类型是double,上边其他类型,比如byte、short等都自动隐式转换成了double类型的数据。

 


三:关于类型转换常见的问题


1:下面的代码打印的结果是几?

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
}


第一次看到这个问题,我基本上没怎么想就回答30,但是将代码复制到eclipse中发现byte c = a + b;这一行报错。


后来一寻思,也对,我怎么知道两个byte类型的变量相加的值还是不是byte类型,报个错也是应该的。


解决方式很简单,我们将变量c的数据类型改成int即可。当然,使用强制类型转换也可以,但是不推荐。

 


2:下面的代码输出的结果是多少?

/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
byte b = 126 + 1;
System.out.println(b);  // 127
}


这个就比较容易了,单纯的两个常量计算而已。

 


四:char类型变量的数据运算


在做这个之前,我们先来了解一下,什么是ASCII码。


ASCII码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。


ASCII对照表:

image.png

image.png

image.png

image.png

image.png

下边我们在代码中测试一下:


/**
* @name 主方法
* @param args
*/
public static void main(String[] args)
{
int b = 'a' + 1;
System.out.println(b); // 输出98
}


上边的代码最终输出结果是98。这里没有什么难度,知道能这么用就可以了。

 


最后,有一点需要特别注意,boolean不能与其他数据类型进行转换。

 


有好的建议,请在下方输入你的评论。


目录
相关文章
|
2月前
|
Java
当Java数据类型遇上“爱情”,会擦出怎样的火花?
当Java数据类型遇上“爱情”,会擦出怎样的火花?
48 1
|
9天前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
41 2
|
2月前
|
Java 程序员
Java数据类型:为什么程序员都爱它?
Java数据类型:为什么程序员都爱它?
41 1
|
2月前
|
存储 Java
Java数据类型:你究竟有多少面孔?
Java数据类型:你究竟有多少面孔?
32 1
|
2月前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
2月前
|
存储 算法 Java
我与Java数据类型的那场“风花雪月”
我与Java数据类型的那场“风花雪月”
36 0
|
2月前
|
存储 自然语言处理 Java
Java数据类型:为何它如此“撩人”?
Java数据类型:为何它如此“撩人”?
36 0
|
2月前
|
存储 算法 Java
从菜鸟到大神,Java数据类型是如何改变我的人生的?
从菜鸟到大神,Java数据类型是如何改变我的人生的?
27 0
|
9天前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
23 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
9天前
|
Java
java基础(10)数据类型中的整数类型
Java中的整数类型包括byte、short、int和long。整数字面值默认为int类型,加L表示long类型。整数字面值可以是十进制、八进制(0开头)或十六进制(0x开头)。小容量类型(如int)可自动转换为大容量类型(如long),但大容量转小容量需强制转换,可能导致精度损失。
21 2
下一篇
无影云桌面