Java中的基本数据模型的转换
来源:互联网 发布:linux知识点总结 编辑:程序博客网 时间:2024/06/13 05:16
Java中的基本数据模型的转换
在复习过String类之后,java中的 基本数据模型有一定的积累了,而实际运用中,总会有将某个数据类型转换为另外一个数据的需要。因此,在实际开发中我们需要熟练掌握这些基本的转换。
下面先看一张基本的转换图
这些转换有时候非常灵活,还是先上代码:
实例1:
package cn.com.basicSix;/** * 数据类型的转换1 * @author fcs * */public class DataTransfor {public static void main(String[] args) {//1.基本数据类型------>String(实际上是一种隐式转换)int a = 1;char b = '2';float f = 3f;long l = 90l;String abfl = ""+a+b+f+l; //第一种方式System.out.println("abfl = "+abfl +"\n");String abfl2 = String.valueOf(a)+String.valueOf(f)+String.valueOf(l); //第二种方式System.out.println("abfl2 = "+abfl2+"\n");//2.String------>(Integer)等封装数据类型String s1 = "3";String s2 = "34.902";//Integer i =(Integer)s1;Integer Int = Integer.parseInt(s1); //第一种方式 返回int类型,Integer Int2 = Integer.valueOf(s1); //第二种方式 返回Integer封装类型Integer is = new Integer("3"); //第三种方式 使用构造方法System.out.println("is = "+is );System.out.println(Int instanceof Integer);System.out.println("Int = "+Int+" Int2 = "+Int2+"\n");Double Dou = Double.parseDouble(s2);Double Dou2 = Double.valueOf(s2);System.out.println("Dou = "+Dou+" Dou2 = "+Dou2+"\n"); //3.(Integer)等封装数据类型------>基本数据类型(实际上是一种隐式转换,就是封装类型进行拆箱操作,//此时不作为封装类型,而是基本数据类型)Integer Int3 = 30;Double Dou3 = 343.9092;int int3 = Int3;double dou4 = Dou3;//System.out.println(int3 instanceof Integer); System.out.println("int3 = "+int3+" dou4 = "+dou4+"\n");//4.String----->基本数据类型(是通过封装类型进行转换的)String s3 = "2324";String s4 = "2324.2324";int int4 = Integer.parseInt(s3);double dou5 = Double.parseDouble(s4);System.out.println("int4 = "+int4+" dou5 = "+dou5+"\n");//5.基本数据类型------->封装类型(封装类型的装箱操作)//说明:基本数据类型和封装类型的相互转换可以直接进行,当构造封装数据类型的时候,可以使用构造方法进行转换。//当数据类型大的转封装类型小的情况出现时,会有强制类型转换,此时有精度损失。char x= 'x';int int5 = 6;double dou6 = 34.223;Character ch = x;Integer Int6 =int5;//这里会有精度损失,所以需要进行强制类型转换Short s = new Short((short) 34); Byte by = new Byte((byte)12);System.out.println("ch = "+ch+" Int6 = "+Int6+" dou7"+"\n");//6.封装数据类型----->String类型,使用重写Object的toString方法进行转换//说明:封装数据类型和String类型的相互转换不能使用强制类型转换方式Integer Int7 = 34;Double Dou7 = 2424.2424;String s5 = Int7.toString();String s6 = Dou7.toString(); String s7 = Dou7+””;//String s6 = (String)Dou7;System.out.println("s5 = "+s5+" s6 = "+s6);}}
现在做点总结吧
1.基本数据类型 ---------->String类型
第一种方式:可以将基本数据类型加上””,这个空字符串,自动转换成字符串类型,是一种拼接形式,使用隐式转换方式。
第二种方式可以使用String.valueOf(基本数据类型)进行转换。推荐使用第一种方式。
2.String 类型------------>基本数据类型
这里注意String到基本数据类型并不能直接转换,而是通过封装类型转换的,
比如String a = “1”;
如果返回一个int类型的1则,需要int i = Integer.parseInt(a);
3.封装类型 ---------->基本数据类型
4.基本数据类型--------->封装类型
这里把这两种转换类型放在一起,是因为java提供了自动装箱和自动拆箱机制。
所谓装箱:把基本类型用它们相对应的引用类型包装起来,使它们具有对象的特性,
拆箱则是相反的,将Integer,Double等这样的引用类型的对象重新简化为值类型的数据。
Java SE5.0后提供了这样的机制,这种转换实际上是通过编译器完成的。
所以可以直接进行转换。下面会给出详细的解释。
比如Integer in = 10;
Int i=in;
或者:
Integer in = new Integer(100); //使用构造方法
而对byte和short这种短的数据类型则
需要进行强制转换,否则装不下Integer等大的数据类型。
Byte b = new Byte((byte)123);
Short s = new Short((short) 13424);
5.String类型--------->封装类型
有三种转换方式
1.String a = “23”;
Integer ai = Integer.parseInt(a);
2.String a = “23”;
Integer ai = Integer.valueOf(a);
1,2两种方式的实现机制是不一样的1是通过将字符串分解为一个个的字符进行数字转换2则是通过一个封装对象缓冲池来进行转换。具体参见JDK源码。
3.使用构造方法;
注意如果转换的是字符的话则会报错
Integer a1 = new Integer(“23”);
6.封装类型 --------->String类型
有两种方法就是通过封装数据类型从Object继承来的toString()方法可以完成这种转换。
Integera2 = 232;
Stringas = a2.toString();
这里还有一个字符类型没有说到。
这里转换比较特殊
String字符串底层是字符数组,这就为了将String ---->与字符等相互联系起来。
,注意下图没有string------>Character的转换实例代码2:package cn.com.basicSix;/** * 数据类型的转换2 * @author fcs * */public class DataTransfor2 { public static void main(String[] args) {//1.string------>char String str = "asdaklaf"; //转换为字符数组 char [] charArray = str.toCharArray(); for (char c : charArray) { System.out.println(c);} //2.char ----->string char c = 'c'; String str1 = String.valueOf(c); String str2 = c + ""; char carray []={'a','b'}; String str3 = carray.toString(); String str4 = String.valueOf(carray); //3.char ----->Character char c1 = 'c'; Character ch = c1; Character ch1 = new Character(c1); Character ch2 = Character.valueOf(c1); //4.Character ------>char Character ch3 = '2'; char c2 = ch3; //5.String ----->Character //没有转换 //6.Character ----->String Character ch4 = 'k'; String str5 = ch4+""; String str6 = ch4.toString();}}
关于自动拆箱和自动装箱这里摘抄自CSDN博主曹胜欢的一篇博文,讲解得比较清晰,因而就“拿来主义”了。
public static void main(String[] args) {Integer a=100;Integer b=100;Integer c=200;Integer d=200;System.out.println(a==b); //1System.out.println(a==100); //2System.out.println(c==d); //3System.out.println(c==200); //4}
- Java中的基本数据模型的转换
- java中的基本数据类型之间的转换
- Java中的基本数据类型转换
- Java中的基本数据类型转换
- 关于JAVA中的基本数据类型的转换相关问题
- 数据模型转换
- java基本类型中的类型转换
- Java基本数据类型的转换
- Java基本数据类型的转换
- java基本数据类型的转换
- Java基本语法-----java数据类型的转换
- java中的基本数据类型跟其包装类以及与字符串的转换
- java 的基本数据类型之间的转换
- 读书笔记:Java基本数据类型的强制转换
- java 基本数据类型之间的转换
- 关于java 基本数据类型之间的转换
- java 基本数据类型之间的转换
- java String和基本数据类型的转换
- [Leetcode]Longest Palindromic Substring
- 多态
- Maximum Subarray
- Centos配置国内yum源
- Http,Https(SSL)的Url绝对路径,相对路径解决方案Security Switch 4.2的配置和使用
- Java中的基本数据模型的转换
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- webservice到底是什么?
- MyEclipse 10编程总是提示The type Cat is already defined错误
- 跑马灯详细用法
- libgsc(Game Server Communication Library)(二)
- mysql事物处理和管理配置
- 线性表-数组实现
- Intent中的四个重要属性——Action、Data、Category、Extras