/**
*
* 转换基本数据类型
*
*/
public class ChangeBasicType
{
/**
* 基本类型的数据提升
*/
private void typeAutoUpgrade()
{
byte b = 44;
char c = 'b';
short s = 1024;
int i = 40000;
long l = 12463l;
float f = 35.67f;
double d = 3.1234d;
/*
* (f * b)时,b自动提升为float类型
* (l*f)时,l自动提升为float类型
* (i/c)时,c自动提升为int类型
* (d*s)时,s自动提升为double类型
* 再相加时,中间结果都变为了double类型。
* 这里result只能声明为double类型,result声明为其他类型会出错,除非进行强制类型转换
*/
double result = (f*b) + (l*f) + (i/c) - (d*s);
System.out.println((f*b) + " + " + (l*f) + " + " + (i/c) + " - " + (d*s));
System.out.println(" = " + result);
}
/**
* 基本类型的自动转换
* 自动类型转换发生的条件是:
* 1:两种类型是兼容的
* 2:目标类型的范围比源类型的范围大
* 其他情况下,必须进行强制类型转换
*/
private void autoChange()
{
char c = 'a';
byte b = 44;
short s0 = b;
int i0 = s0;
int i1 = c;
long l = i0;
float f = l;
double d = f;
System.out.println("c = " + c + "; b= " + b + "; s0 = " + s0);
System.out.println("i0 = " + i0 + "; i1 = " + i1 + "; l = " + l);
System.out.println("f = " + f + "; d = " + d);
/*
* 当float类型转换成double时,会出现不等的情况,这是因为,float的范围是
* 32位,而double的范围是64位,在进行类型转换时,操作的实际上都是二进制
* 数,有些实数用二进制能够精确表示,而有些实数无论用多少位二进制都无法表示
* 这与有理数和无理数概念一样。
* 对不能精确表示的实数进行类型转换时,会出现不相等的情况。
*/
float f1 = 1.7f;
double dou = f1;
System.out.println("f1 = " + f1 + "; dou = " + dou);
//但是当把一个数从一种类型转换成另外一种类型后,再转换回来时,值还是一样
f1 = (float)dou;
System.out.println("f1 = " + f1 + "; dou = " + dou);
}
/**
* 强制类型转换
* 当两种类型不兼容,或者目标类型范围比源类型范围小时,必须进行强制类型转换
* 具体转换时会进行截断,取模操作
*/
private void forceChange()
{
double d = 123.456d;
float f = (float)d;
long l = (long)d;
int i = (int)d;
short s = (short)d;
byte b = (byte)d;
System.out.println("d = " + d + "; f = " + f + "; l = " + l);
System.out.println("i = " + i + "; s = " + s + "; b = " + b );
d = 567.89d;
/*
* 下面的转换首先进行截断操作,将d的值变为567,因为567比byte的范围256大。
* 于是进行取模操作,567对256取模后的值为55
*/
b = (byte)d;
System.out.println("d = " + d + "; b = " + b);
}
public static void main(String args[])
{
ChangeBasicType cbt = new ChangeBasicType();
System.out.println("===================基本类型自动提升=====================");
cbt.typeAutoUpgrade();
System.out.println("===================基本类型自动的转换====================");
cbt.autoChange();
System.out.println("===================强制类型转换=========================");
cbt.forceChange();
}
}
分享到:
相关推荐
本篇学习笔记将详细解析Java中的数据类型转换及其相关的知识点。 首先,我们需要了解Java的基本数据类型,它们分为两大类:整型和浮点型。整型包括byte、short、int和long,浮点型包括float和double。此外,还有...
本示例将详细讲解如何将Java的基本数据类型转换为JSON格式,这对于Android开发者尤其重要,因为Android应用经常需要与服务器通过JSON进行数据交换。 首先,你需要引入一个JSON库来帮助完成转换。在Java中,常用的库...
本实验报告将介绍Java中的基本数据类型、数据类型转换、控制台输入输出方法和对话框输入输出方法。 一、基本数据类型 Java中的基本数据类型包括整型(int)、浮点型(float、double)、布尔型(boolean)、字符型...
java中数据类型转换 收藏 java中数据类型转换 1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i =...
通过数据类型转换,可以确保不同数据类型之间的兼容性,并满足特定场景下的需求。本文将详细介绍Java中常见的数据类型及其之间的转换方法。 #### 1. `short` 到 `int` **示例代码**: ```java short shortVar = 0;...
### Java基本数据类型详解 #### 一、引言 在Java编程语言中,理解基本数据类型对于编写高效、可靠的程序至关重要。本文将详细介绍Java中的基本数据类型,包括它们的定义、范围、存储空间以及如何在实际开发中正确...
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问下面笔者就开发中的一些体会介绍给大家。 我们知道,...
### JAVA数据类型转换详解 #### 一、引言 在Java编程中,数据类型转换是一项基本且重要的技能。本文档将详细介绍Java中的数据类型转换,包括简单数据类型之间的转换、字符串与其他数据类型的转换以及一些实用的...
在Java编程语言中,数据类型转换是至关重要的概念,它涉及到不同类型的变量之间的相互转化。Java分为两大类数据类型:基本数据类型(如int、char、float等)和引用数据类型(如类、接口和数组)。本文将深入探讨Java...
在Java编程语言中,数据类型转换是编程过程中常见的操作,主要涉及基本数据类型之间的转换以及基本数据类型与字符串之间的转换。下面将详细讲解这些转换方式。 1. **基本数据类型的转换** Java中的基本数据类型...
#### 二、Java数据类型转换概述 Java中的数据类型转换主要包括以下三类: 1. **简单数据类型之间的转换** 2. **字符串与其他数据类型的转换** 3. **其他实用数据类型的转换** 接下来,我们将逐一探讨这些转换方式...
7. 数据类型转换: - 自动类型转换:当一个较小的数据类型赋值给一个较大的数据类型时,系统自动进行转换,例如,`int i = 100; double d = i;` - 强制类型转换:需要显式地将大类型转换为小类型,可能丢失精度或...
这个压缩包“Java数据类型操作包含转换代码实例.rar”提供了丰富的代码示例,帮助初学者理解和掌握Java中数据类型的转换。下面将详细阐述相关知识点。 一、基本数据类型 Java的基本数据类型包括整型(byte, short, ...
本章将详细讲解Java中的基本数据类型转换,这对于理解和编写高效、准确的代码至关重要。 首先,Java有两类数据类型:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。基本数据类型...
在Java编程语言中,字符串(String)和基本数据类型之间的转换是常见的操作,特别是在处理用户输入、格式化输出或解析数据时。以下将详细介绍如何在Java中进行这些转换。 1. **字符串转基本数据类型** - **整型(int...
类型转换是将一种数据类型转换为另一种的过程。Java支持自动类型转换(从小范围类型到大范围类型)和强制类型转换(可能丢失精度或溢出)。需要注意的是,不同类型之间的转换需谨慎处理,防止数据丢失或错误。 2.6 ...