Java的数据转换
Java的数据类型分为三大类,即布尔型、字符型和数值型,其中数值型又分为整型和浮点型。相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型 float、 double。其中四种整型变量分别对应于不同的精度和范围。此外,编程时还经常用到两种类变量,即String和Date。
字符型中的char是16bit,即一个可以存储一个字符。其实从理论上有2byte(16bit)可以存储两个字符,但是真正的有只能以ASCII编码中的两个字符,也就是说只能是数字和英语字符等等,不能表示到其他国家的语言中某个字符,所以Java从普遍性来考虑的话,用Unicode来储存的话,只能储存一个字符(16bit)。
整型中byte、short、int、long数据类型,从小到大,分别是8bit,16bit,32bit,64bit,只能来表示数字而已,当然如果有英语字母也是可以的,输出的时候就输出了该字母在ASCII中编码大小的十进制,而不是输出英文字母本身,因为整型本身就是来储存数字的。
浮点型更容易了,是用来表示有小数点的数字的,不过他们的精度不同,float是32bit,而double是64bit。一般的话,float是够用了,不过数据的小数点后的位数过多可以用double,保证精度的准确。
简单数据类型之间的转换
1.自动类型的转换
低精度的数据类型可以自动转换为高精度的数据类型,低精度意味着bit位数小,放入bit位数大的高精度数据类型肯定是可以啦。就像是在1L水杯里面的水在从1L的水杯里倒到2L的水杯里是没事的,不会有精度溢出的
2.强制类型的转换
高精度的转换为低精度的,要强制,因为2L水杯里面的水从2L水杯倒到1L的水杯里面去,很可能精度溢出。当然,也不一定会溢出的,因为可能2L水杯里面装着0.9L的水,倒到1L的水杯里面去,当然没事了,不过最好不要这样子做,一般会导致溢出或者精度下降。
3.包装类过度类型的转换
Java的包装类就是可以直接将简单类型的变量表示为一个类。Java共有六个包装类,分别是Boolean,Character,Integer,Long,Float和Double,明显的对应着boolean,char,int,long,float和double。而String和Date本身就是类,不存在包装类的概念。
Java的数据转换的更多相关文章
- 关于JAVA的数据转换总结
数据转换在编程里面是十分常用的,将平常可能用到的数据转换类型总结起来会在以后码代码的过程中有很大帮助. 在数据转换之前,需要明白的是基础数据类型的自动转换和强制转换.接下来就先从数据类型的容量讲起. ...
- JSON与JAVA的数据转换
http://developer.51cto.com/art/200906/129090.htm java.lang.ClassNotFoundException: net.sf.json.JSONA ...
- Java byte数据转换和处理总结
一.byte和int相互转换的方法 java程序或Android程序的socket数据传输,都是通过byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把 ...
- 通过Gson解析Json数据
Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...
- json和gson的区别
json是一种数据格式,便于数据传输.存储.交换gson是一种组件库,可以把java对象数据转换成json数据格式 GSON简单处理JSON json格式经常需要用到,google提供了一个处理jso ...
- Gson解析复杂Json数据
背景 json是一种数据格式,便于数据传输.存储.交换. gson是 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 利用JAVA反射机制将JSON数据转换成JAVA对象
net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大, 这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用, 有些数据类型需要进行转 ...
- 将JSON数据转换成JAVA的实体类
思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...
随机推荐
- 详解linux运维工程师入门级必备技能
详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...
- BAT批处理(一)
本文摘自博文<BAT批处理文件教程> 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如 ...
- Nginx模块fastcgi_cache的几个注意点
fastcgi响应http请求的结果中,响应头包括Expires、Cache-Control、Set-Cookie三个,都会可能不被cache. thinkphp3.0禁止session自动启动 co ...
- mysqli_query($link,'SET group_concat_max_len=8192');
mysqli_query($link,'SET group_concat_max_len=8192'); $sql = 'SELECT GROUP_CONCAT(w) FROM ---'; mysql ...
- Linguistic corpora 种子语料库-待分析对象-分析与更新语料库
Computational Linguistics http://matplotlib.org/ https://github.com/matplotlib/matplotlib/blob/maste ...
- double-clicking
<!doctype html> <button id="id0" onclick="w('id0','str0')">target0&l ...
- java中重载和覆盖(又称重写)的区别
初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊.于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个 ...
- unity3d中控制物体移动方法有那些及区别
1. 利用GameObject的Translate,直接改变它的Transform,前提是需要你实现准备变换矩阵.2. 用MoveTo方法,你只要知道你的目标位置即可.3. 用Math的Lerp方法计 ...
- java多线程编程(一基础概念)
1.进程和线程 进程,是一个正在运行的程序实体,windows下常见的就是xxx.exe,在任务管理器中可以看见很多个进程.它是线程的容器. 线程,是进程中的一个执行流.在单线程编程中,我 ...
- Qt 窗口属性简介之Qt::WA_DeleteOnClose
一.简述 今天介绍一个简单的窗口属性——Qt::WA_DeleteOnClose. 在正常创建窗口后,我们一般会调用close()方法来关闭窗口,这里我们看一下Q助手中关于close()方法的介绍. ...