数据转换在编程里面是十分常用的,将平常可能用到的数据转换类型总结起来会在以后码代码的过程中有很大帮助。

  在数据转换之前,需要明白的是基础数据类型的自动转换和强制转换。接下来就先从数据类型的容量讲起。

1、基本数据类型的容量(即表示值的范围)

  ps:boolean不参与数据类型的转换,所以不讲

  基本数据类型   包装类型                  字节及范围

  byte          Byte      【-128,127】 1个字节(【-2的7次方,2的7次方-1】)   一个字节有8位

  short           Short      【-32768,32767】 2个字节(【-2的15次方,2的15次方-1】)  2*8-1

  int           Integer     【-2147483648,2147483647】 4个字节(【-2的31次方,2的31次方-1】)4*8-1

  long           Long      【-9223372036854774808,9223372036854774807】 8个字节 (【-2的63次方,2的63次方-1】) 8*8-1

  

  float           Float      【-3.403e38,3.403e38】4个字节

  double           Double            【-1.798e308,1.798e308】8个字节  

  char           Character         2个字节

各数据类型按容量大小由小到大排列为:

 (byte, short, char)  ——int ——long——float——double

2、基本数据类型转换的基本原则

  1)容量小的类型自动转换为容量的类型;

  

 public class TS{

     public static void main(String [] args){
byte a = 2;
int b = a;
long c = b;
float d = c;
double e = d;
System.out.println(e);
} }

结果为 。

又或者是 char c='a'; int i=c;  输出的i结果为97,即为对应的ASCII值

  2)容量大的类型转换为容量小的类型时,要加强制转换符;(有可能会精度损失)

 public class TS{

     public static void main(String [] args){
double e = 2.123456789;
int i = (int)e;
float j = (float)e;
System.out.println(i);
System.out.println(j);
} }

运行结果为,出现了精度的损失。

  3)byte,short,char之间不会自动互相转换,并且三者在计算时首先转换为int类型;

需要强制转换时可以如下操作:

  short i=97 ;

  char c=(char)i;

  System.out.println("output:"+c);输出:output:a;

  4)实数常量默认为double类型, 整数常量默认为int类型;

ps:当有表达式时(计算),有以下规则使得数据类型自动提升:

①所有的byte,short,char型的值将被提升为int型;

②如果有一个操作数是long型,计算结果是long型;

③如果有一个操作数是float型,计算结果是float型;

④如果有一个操作数是double型,计算结果是double型;

3、引用数据类型(String)的转换

  1)将其他数据类型转换为字符串

  ①调用类的串转换方法:X.toString();
  ②自动转换:X+“”;
  ③使用String的方法:String.volueOf(X);
 
  2)字符串向其他类型转换
  ①先转换成相应的封装器实例,再调用对应的方法转换成其它类型

  eg.int i = Integer.valueOf(“32.1”).intValue();
  
 
  ②静态parseXXX方法
  String s = "1";
  byte b = Byte.parseByte( s );
  short t = Short.parseShort( s );
  int i = Integer.parseInt( s );
  long l = Long.parseLong( s );
  Float f = Float.parseFloat( s );
  Double d = Double.parseDouble( s );
 
  ③getByte转为byte数组
  byte b [] =s.getBytes();

关于JAVA的数据转换总结的更多相关文章

  1. Java的数据转换

    Java的数据类型分为三大类,即布尔型.字符型和数值型,其中数值型又分为整型和浮点型.相对于数据类型,Java的变量类型为布尔型boolean;字符型char:整型byte.short.int.lon ...

  2. JSON与JAVA的数据转换

    http://developer.51cto.com/art/200906/129090.htm java.lang.ClassNotFoundException: net.sf.json.JSONA ...

  3. Java byte数据转换和处理总结

    一.byte和int相互转换的方法 java程序或Android程序的socket数据传输,都是通过byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把 ...

  4. 通过Gson解析Json数据

    Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...

  5. json和gson的区别

    json是一种数据格式,便于数据传输.存储.交换gson是一种组件库,可以把java对象数据转换成json数据格式 GSON简单处理JSON json格式经常需要用到,google提供了一个处理jso ...

  6. Gson解析复杂Json数据

    背景                                                                   json是一种数据格式,便于数据传输.存储.交换. gson是 ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. 利用JAVA反射机制将JSON数据转换成JAVA对象

    net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大,  这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用,   有些数据类型需要进行转 ...

  9. 将JSON数据转换成JAVA的实体类

    思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...

随机推荐

  1. height和line-height有什么区别?

    <div style="height:120px;">是用来规定整个div的高度,文字还是默认会在顶端开始向下排列<div style="line-he ...

  2. MDI窗体容器、权限设置

    一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...

  3. Process Explorer使用图文教程

    这是一款由Sysinternals开发的Windows系统和应用程序监视工具,目前Sysinternals已经被微软收购,此款不仅结合了文件监视和注册表监视两个工具的功能,还增加了多项重要的增强功能, ...

  4. guava学习--Objects

    转载:https://my.oschina.net/realfighter/blog/349821 Java中的Object类是所有Java类的超类(也就是祖先),所有对象都实现Object类中的方法 ...

  5. session放入缓存(redis)、DB

    为什么要把SESSION保存在缓存 就php来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_s ...

  6. 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法

    这段时间一直比较忙,一忙起来真感觉自己就只是一台挣钱的机器了(说的好像能挣到多少钱似的,呵呵):这会儿难得有点儿空闲时间,想把前段时间开发微信公众号支付遇到问题及解决方法跟大家分享下,这些“暗坑”能不 ...

  7. μC/OS-Ⅲ系统的时间管理函数和定时器

    一.时间管理函数 μC/OS-Ⅲ系统提供一些列时间管理服务函数: 1.OSTimeDly():任务延时n个时钟节拍. 2.OSTimeDlyHMSM():任务延时指定的时间,采用“时:分:秒:毫秒”方 ...

  8. js生成[n,m]的随机数 以及实际运用

    Math.ceil();  //向上取整. Math.floor();  //向下取整. Math.round();  //四舍五入. Math.random();  //0.0 ~ 1.0 之间的一 ...

  9. The connection to adb is down, and a severe error has occured.问题解决方法小结

    遇到了几次这个问题:The connection to adb is down, and a severe error has occured. You must restart adb and Ec ...

  10. OpenCV中的矩阵操作

    函数 Description 说明 cvAdd Elementwise addition of two arrays 两个数组对应元素的和 cvAddS Elementwise addition of ...