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不能与其他数据类型进行转换。

 


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


目录
相关文章
|
4月前
|
Java
当Java数据类型遇上“爱情”,会擦出怎样的火花?
当Java数据类型遇上“爱情”,会擦出怎样的火花?
56 1
|
3月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
82 2
|
4月前
|
Java 程序员
Java数据类型:为什么程序员都爱它?
Java数据类型:为什么程序员都爱它?
56 1
|
4月前
|
存储 Java
Java数据类型:你究竟有多少面孔?
Java数据类型:你究竟有多少面孔?
41 1
|
4月前
|
存储 算法 Java
我与Java数据类型的那场“风花雪月”
我与Java数据类型的那场“风花雪月”
47 0
|
4月前
|
存储 自然语言处理 Java
Java数据类型:为何它如此“撩人”?
Java数据类型:为何它如此“撩人”?
45 0
|
4月前
|
存储 算法 Java
从菜鸟到大神,Java数据类型是如何改变我的人生的?
从菜鸟到大神,Java数据类型是如何改变我的人生的?
33 0
|
24天前
|
Java
Java基础之数据类型
Java基础之数据类型
19 6
|
25天前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
53 7
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
56 4