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

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

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)容量小的类型自动转换为容量的类型;

  

  1. public class TS{
  2.  
  3. public static void main(String [] args){
  4. byte a = 2;
  5. int b = a;
  6. long c = b;
  7. float d = c;
  8. double e = d;
  9. System.out.println(e);
  10. }
  11.  
  12. }

结果为 。

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

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

  1. public class TS{
  2.  
  3. public static void main(String [] args){
  4. double e = 2.123456789;
  5. int i = (int)e;
  6. float j = (float)e;
  7. System.out.println(i);
  8. System.out.println(j);
  9. }
  10.  
  11. }

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

  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. 深入剖析tomcat 笔记——第8章 载入器

    深入剖析tomcat 笔记 目录:

  2. 模板列onclick事件中绑定跳转页参数(onclick location.href Eval)

    <asp:GridView runat="server" ID="gvCheckList" AutoGenerateColumns="false ...

  3. 2016年最佳Linux发行版排行榜

    2015年,不管在企业市场还是个人消费市场都是 Linux 非常重要的一年. 最好的回归发行版:openSUSE openSUSE 背后的 SUSE 公司是最老的 Linux 企业,它成立于 Linu ...

  4. Reveal for mac延长30天试用的简单方法

    在iOS逆向过程中经常使用Reveal来远程查看iOS平台应用的UI布局,但Reveal有30天使用限制,经常隔一段时间想使用的时候发现已经过期了,如图: 此时在OS X中打开命令行终端,输入以下命令 ...

  5. CentOS 7 Mysql yum源

    CentOS 7 安装Mysqlrpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmyum install m ...

  6. Jquery下拉列表添加移除数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. DevExpress--navBarControl控件

    一.在工具箱Navigation&Layout下找到控件navBarControl,拽到相应的位置. 二.点击控件右上角的小三角,对其进行设计:如下图 点Add group可迅速添加组列表,点 ...

  8. Ubuntu上安装MySql过程,以及遇到的一些问题

    今天在Ubuntu服务器上安装MySql的时候遇到了一些问题,记录下来,以防以后忘记. 安装环境:Ubuntu14.04 安装命令: //安装Mysal服务端//会提示输入root密码 sudo ap ...

  9. 转载css的background-position

    这是一个有趣的话题 其实我并不确切的平时大家是怎么去应用或者玩转一个属性,一个值.我能肯定的是这些东西都有不少的可玩性. 我今天要聊的 background-position 应该已经被大家玩得色彩斑 ...

  10. c4,configure the debug environment

    Yesterday I found a tiny C compiler (less than 600 line of C code, containing commits) called " ...