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

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

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. Java—事件和多线程机制

    一  事件 1.1 事件源 图形用户界面上每个可能产生事件的组件称为事件源. 1.2 事件监听者 Java系统中注册的用于接收特殊事件的类.不同的事件对应着不同的监听者,要想事件被监听者监听并处理,则 ...

  2. JSON格式化与serialize序列化

    一.JSON格式化 1. JSON是什么 JSON是一种数据的存储格式,用来沟通客户端Javascript和服务端PHP的交互.我们把用PHP生成JSON后的字符串传给前台Javascript,Jav ...

  3. 【边框】-边框阴影-box-shadow

    CSS3之box-shadow边框阴影 div{box-shadow: 10px 10px 5px #888888;} 来自为知笔记(Wiz)

  4. XmlHelper

    获取XML节点的值(http服务使用xml传输数据,节点名称唯一) /// <summary> /// 获取xml节点的值 /// </summary> /// <par ...

  5. CSS入门

    CSS,层叠样式表,是对web页面显示效果进行控制的一套标准.当页面的内容受多种样式控制,将会按照一定的顺序处理.CSS的作用:(1)将网页的内容结构和格式控制分开.(2)可以精确控制页面的所有元素. ...

  6. 高性能javascript(记录三)

    DOM(文档对象模型)是一个独立的语言,用于操作XML和HTML文档的程序接口(API).在游览器中,主要用来与HTML文档打交道,同样也用在Web程序中获取XML文档,并使用DOM API用来访问文 ...

  7. 深入了解 JavaScript 中的 for 循环

    在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循 ...

  8. Andriod Studio adb.exe,start-server' failed -- run manually if necessary 解决

    首先查看了我的任务管理器,共有三个adb的程序在运行: 错误提示的是 Andriod Studio 中的adb.exe启动失败,于是,去关掉另外两个adb.exe,两分钟左右后,又出现了三个adb. ...

  9. VisualSVN-5.1.4补丁原创发布

    VisualSVN-5.1.4补丁原创发布 VisualSVN-5.1.4Patch.rar  VisualSVN-5.1.4官方安装包.rar

  10. javaIO系统----再看装饰者模式

    javaIO系统拥有各种各样的类,尤其是每次要进行读写操作时,总会一层套一层的new,以前不明白为什么要这样做,不过学习了适配器模式后,对于这种做法立刻了解了:动态扩展IO的功能,使之符合使用者的习惯 ...