Java数据类型转换实例解析

这篇文章主要介绍了Java数据类型转换实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

数据类型转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

数据类型的转换分类

自动类型转换

  • 自动类型转换(隐式):将 取值范围小的类型自动提升为取值范围大的类型 。
  • 转换规则 :范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。 byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
  • 特点:代码不需要进行特殊处理,自动完成。

代码举例:

package demo01_DataTypeTransform;

public class Demo01DataType {
  public static void main(String[] args) {
    //直接写上的数字 默认是int类型
    System.out.println(2);
    //直接写上的小数,默认是double类型
    System.out.println(3.14);
    // int 类型 赋值给 long类型 符合自动类型转换的规则 自动转换为long类型
    long l = 888;
    System.out.println(l);
    // long类型赋值给float类型 符合自动类型转换的规则 自动转换为float类型
    float f = 5656L;
    System.out.println(f);
    // float类型 赋值给double类型 符合自动类型转换的规则 自动转换为double类型
    double d = 3.14F;
    System.out.println(d);
  }
}

代码执行后的结果

强制类型转换

  • 强制类型转换(显式):将 取值范围大的类型 强制转换成 取值范围小的类型 。
  • 特点:强制转换需要我们自己手动执行。
  • 转换格式: 数据类型 变量名 = (数据类型)被转数据值;

强制转换类型注意事项

  • 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。
  • byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
  • byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
  • boolean类型不能发生数据类型转换

代码举例

package demo01_DataTypeTransform;

public class Demo02DataType {
  public static void main(String[] args) {
    //long类型 强制转换为int 类型
    int i = (int) 3333L;
    System.out.println(i);
    //当要转换的数据类型 超过了数据类型的范围的最大值 则会造成数据溢出
    // 格式:数据类型 变量名 = (数据类型)被转数据值;
    int j = (int) 600000000000L;
    System.out.println(j);
    //浮点转成整数,直接取消小数点,可能造成数据损失精度。
    int z = (int) 3.14;
    System.out.println(z);
    //byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
    byte b = 3;
    short s = 5;
    char c = 'c';
    /*
     * byte + short ---> int + int --->int
     * int + char --->int + int ---->int
     * char 类型提升int类型 查询Ascll码表
     */
    int result = b + c + s;
    System.out.println(result);
  }
}

代码执行后的结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java字节流与基本数据类型的转换实例

    在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结. 注意:默认传输时使用小端模式 将字节流转换为int类型数据 public static int getInt(byte[] bytes) { return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16

  • 详解 Java中日期数据类型的处理之格式转换的实例

    详解 Java中日期数据类型的处理之格式转换的实例 概要: 日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar类和Date类. Date类: 1.Date类型转String类型(以时间格式1970-01-01 01:01:01为例) //yyyy-MM-dd HH:mm:ss表示24时间进制 SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String

  • java中long数据类型转换为int类型

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 long ll = 300000; int ii = (int)ll; 二.调用intValue()方法 long ll = 300000; int ii= new Long(ll).intValue(); 三.先把long转换成字符串String,然后在转行成Integer long ll = 300000; i

  • Java将日期类型Date时间戳转换为MongoDB的时间类型数据

    存了一个时间类型(Date)的数据到mongo数据库中,但是前台显示的是一串数字.继而引发了如下问题: Java里面如何把 时间戳 1477387464495 转换为 2016-10-25 17:24:24 期望格式的日期字符串. 因为业务需要,在model里面有个Date类型的字段,然后需要按这个时间类型排序.但是在后台处理完之后,返回到前台,发现时间变成了13位数字,学名叫时间戳.不是我想要的具体时间,不适合展示啊.具体有如下 mongo数据库中存储时间类型的数据具体如下: 然后debug的

  • Java数据类型转换详解

    一.基本数据类型阐述 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. [注]JAVA没有unsigned类型 (1). 整数:int,short,byte,long (2). 浮点型:float,double (3). 字符:char (4). 布尔:boolean 基本型别     大小         最小值            最大值 void boolean     -----         -----             

  • JAVA中string数据类型转换详解

    在JAVA中string是final类,提供字符串不可以修改,string类型在项目中经常使用,下面给大家介绍比较常用的string数据类型转换: String数据类型转换成long.int.double.float.boolean.char等七种数据类型 复制代码 代码如下: * 数据类型转换 * @author Administrator * */ public class 数据类型转换 { public static void main(String[] args) { String c=

  • Java 基础 byte[]与各种数据类型互相转换的简单示例

    Java 基础 byte[]与各种数据类型互相转换的简单示例 这里对byte[]类型对long,int,double,float,short,cahr,object,string类型相互转换的实例, 在socket开发过程中,通常需要将一些具体的值(这些值可能是各种Java类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看: public class TestCase { /** * short到字节数组的转换. */ public static byte[] shor

  • 浅析Java中对象的创建与对象的数据类型转换

    Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据类型:基本数据类型(在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型).引用类型和null类型.其中,引用类型包括类类型(含数组).接口类型.     下列语句声明了一些变量: int k ; A a; //a是A数据类型的对象变量名. B b1,b2,-,b10000;// 假定B是抽象类或接口. String s; 注意:从数据类型

  • Java数据类型转换实例解析

    这篇文章主要介绍了Java数据类型转换实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 数据类型转换 Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换. 数据类型的转换分类 自动类型转换 自动类型转换(隐式):将 取值范围小的类型自动提升为取值范围大的类型 . 转换规则 :范围小的类型向范围大的类型提升, byte.short.char 运算时直接提升为 int . byte.short.

  • Java String创建对象实例解析

    本文研究的主要是Java String创建对象的问题,具体介绍如下. 首先我们要明白两个概念,引用变量和对象,对象一般通过new在堆中创建,String只是一个引用变量. 所有的字符串都是String对象,由于字符串常量的大量使用,java中为了节省时间,在编译阶段,会把所有字符串常量放在字符串常量池中,字符串常量池的一个好处就是可以把相同的字符串合并,占用一个空间. 虽然在Java中无法直接获取变量的地址,但是可以用==判断一下两个引用变量是否指向了一个地址即一个对象. 栈内存 堆内存 基础类

  • Java编程WeakHashMap实例解析

    简述: <Thinking in Java>第4版 P519 页 WeakHashMap一章读书笔记 WeakHashMap 用来保存WeakReference,这一结构云逊垃圾回收器自动清理键和值 在添加键和值的操作时,映射会自动使用WeakReference包装它们, 见jdk源代码, public V put(K key, V value) { Object k = maskNull(key); int h = hash(k); Entry<K,V>[] tab = getT

  • java hasNext()使用实例解析

    这篇文章主要介绍了java hasNext()使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 编写一段程序实现如果输入的一组数中含非整数数字,输出数字相加的和以及"attention"字符,如果全部是数字便输出数字的和. 程序1: package mian; import java.util.Scanner; public class mian { public static void main(String[] args

  • SpringMVC 数据校验实例解析

    这篇文章主要介绍了SpringMVC 数据校验实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.注解方式 二.示例 Spring MVC本身没有数据校验的功能,它使用Hibernate的校验框架来完成. 1.导入pom节点 <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> <dependency> <group

  • Java Comparator比较器实例解析

    这篇文章主要介绍了Java Comparator比较器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 说几点需要注意的,提醒自己即可: 以下是单独定义一个比较器的类,实现了Comparator中的compare方法.(要在Main方法外面定义类噢) 一定是compare而不是Compare哦 package xixixi; import java.util.*; public class Main { public static voi

  • Java枚举抽象方法实例解析

    这篇文章主要介绍了Java枚举抽象方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求背景 需求已经确定了几个固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同.建议使用枚举抽象方法,优点:结构清晰,便于扩展. 枚举类实现抽象方法 与常规抽象类一样,enum类允许我们为其定义抽象方法,然后使每个枚举实例都实现该方法,以便产生不同的行为方式,注意abstract关键字对于枚举类来说并不是必须的,举个栗子: public

  • Java编码摘要算法实例解析

    这篇文章主要介绍了Java编码摘要算法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 URL 编码与解码 String s = "你好,世界!"; // URL 编码 String urlEncodedString = URLEncoder.encode(s, "UTF-8"); // URL 解码 String urlDecodedString = URLDecoder.decode(urlEncoded

  • java数据类型转换陷阱包括列表陷阱

    java 数据类型转换的陷阱 本文通过时间数值的处理来研究一下数据类型的自动转换.我们知道:System.currentTimeMillis():返回的是long类型的数值.当计算时间相加的时候,如果不注意数据类型的自动转换,则很容易出现问题,如下所示: Date expiration = new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365 * 5); 上面例子本意是求5年后的过期时间,而实际输出的结果却比当前时间还早的

随机推荐