java基本数据类型之间的转换.

合集下载

Java中的类型转换与类型判断方法

Java中的类型转换与类型判断方法

Java中的类型转换与类型判断方法在Java编程中,类型转换和类型判断是非常常见的操作。

类型转换指的是将一个数据类型转换为另一个数据类型,而类型判断则是判断一个对象的实际类型。

本文将介绍Java中常用的类型转换和类型判断方法,并探讨它们的应用场景和注意事项。

一、类型转换方法1. 强制类型转换强制类型转换是指将一个数据类型转换为另一个数据类型,这种转换需要通过强制转换符“()”来实现。

例如,将一个整数转换为浮点数:int num1 = 10;double num2 = (double) num1;需要注意的是,强制类型转换可能会导致数据精度的损失或溢出。

因此,在进行强制类型转换时,需要确保转换的安全性,并进行必要的数据范围检查。

2. 自动类型转换自动类型转换是指在一定条件下,Java编译器会自动将一个数据类型转换为另一个数据类型。

例如,将一个整数赋值给一个浮点数变量:int num1 = 10;double num2 = num1;自动类型转换的条件是目标数据类型的范围要大于源数据类型的范围。

例如,将一个整数赋值给一个长整型变量是安全的,因为长整型的范围比整数大。

3. 包装类转换在Java中,基本数据类型和对应的包装类之间可以相互转换。

例如,将一个整数转换为Integer对象:int num1 = 10;Integer num2 = Integer.valueOf(num1);包装类转换的好处是可以在基本数据类型和对象之间进行转换,方便进行类型操作和方法调用。

但是,需要注意的是,包装类转换可能会导致性能损失和内存消耗,因此在性能要求较高的场景下需要谨慎使用。

二、类型判断方法1. instanceof运算符instanceof运算符用于判断一个对象是否属于某个类或其子类的实例。

例如,判断一个对象是否属于String类的实例:Object obj = "Hello";if (obj instanceof String) {// 对象是String类的实例}instanceof运算符的返回结果是一个布尔值,如果对象是指定类或其子类的实例,则返回true;否则返回false。

java基本数据类型之间的转换

java基本数据类型之间的转换

java基本数据类型之间的转换Java是一门强类型语言,变量需要明确指定其数据类型。

Java中含有8个基本数据类型,它们是boolean、byte、short、int、long、float、double和char。

在Java编程中,有时也需要对这些基本数据类型进行一些转换。

本文将围绕Java基本数据类型之间的转换展开。

一、自动类型转换Java中可以将一种数据类型的变量赋值给另一种数据类型的变量,这种转换称为自动类型转换。

自动类型转换是指从小类型到大类型的转换过程, Java在内部进行转换,无需开发人员进行显式的操作。

例如,将一个byte类型的变量赋值给int类型的变量:byte b = 10;int i = b;在这个过程中,Java自动将byte类型的变量b转换成int类型,并将其赋值给i。

二、强制类型转换有时需要对一个变量强制转换为另一种类型,这种转换称为强制类型转换。

强制类型转换是从大类型到小类型的转换过程,在进行强制类型转换时,需要在转换前使用小括号指定要转换的类型。

例如,将一个double类型的变量强制转换成int类型:double d = 10.5;int i = (int)d;在这个过程中,Java会将double类型的变量d转换成int类型,并将其赋值给i。

需要注意的是,在进行强制类型转换时,可能会出现数据精度丢失的情况。

三、字符类型转换在Java中,char类型可以被当做数字来处理,它与int类型可以互相转换。

在Java中,可以使用强制类型转换将字符类型转换成整型,例如:char c = 'a';int i = (int)c;在这个过程中,字符'a'会被转换成对应的ASCII码97。

四、字符串类型转换Java中的字符串类型与其他基本数据类型之间的转换需要借助于包装类。

Java中含有六个与基本数据类型对应的包装类,它们是Boolean、Byte、Short、Integer、Long、Float、Double和Character。

Java语言基本数据类型、转换及其封装

Java语言基本数据类型、转换及其封装

Java语言基本数据类型、转换及其封装Java语言基本数据类型、转换及其封装1. 逻辑类型·常量 true,false。

·变量的定义使用关键字boolean来定义逻辑变量:boolean x; boolean tom_12;也可以一次定义几个:boolean x,tom,jiafei,漂亮x,tom,jiafei,漂亮都是变量的名字。

定义时也可以赋给初值:boolean x=true,tom=false,漂亮=true,jiafei2.整数类型·常量123,6000(十进制),077(八进制),0x3ABC(十六进制)。

·整型变量的定义分为4种:1.int 型使用关键字int来定义int型整形变量int xint tom_12也可以定义几个:int x,tom,jiafei,漂亮x,tom,jiafei,漂亮都是名字。

定义时也可以赋给初值:int x=12,tom=-1230,漂亮=9898,jiafei对于int型变量,分配给4个字节byte,一个字节由8位(bit)组成,4个字节占32位(bit)。

bit 有两状态,分别用来表示0,1。

这样计算机就可以使用2进制数来存储信息了。

内存是一种特殊的电子元件,如果把内存条放大到摩天大楼那么大,那么它的基本单位——字节,就好比是大楼的房间,每个房间的结构都是完全相同的,一个字节由8个能显示两种状态的bit组成,就好比每个房间里有8个灯泡,每个灯泡有两种状态——亮灯灭灯。

对于int x=7;内存存储状态如下:00000000 00000000 00000000 00000111最高位:左边的第一位,是符号位,用来区分正数或负数,正数使用原码表示,最高位是0,负数用补码表示,最高位是1。

例如:int x=-8;内存的存储状态如下:11111111 11111111 11111111 11111000要得到-8的补码,首先得到7的原码,然后将7的原码中的0变成1,1变成0,就是-8的补码。

Java:int、char、double与byte相互转换的程序

Java:int、char、double与byte相互转换的程序

Java:int、char、double与byte相互转换的程序int、char、double与byte相互转换的程序//整数到字节数组的转换public static byte[] intToByte(int number) {int temp = number;byte[] b=new byte[4];for (int i=b.length-1;i>-1;i--){b[i] = new Integer(temp&0xff).bytevalue(); //将最高位保存在最低位temp = temp >> 8; //向右移8位}return b;}//字节数组到整数的转换public static int byteToInt(byte[] b) {int s = 0;for (int i = 0; i < 3; i++) {if (b[i] >= 0)s = s + b[i];elses = s + 256 + b[i];s = s * 256;}if (b[3] >= 0) //最后一个之所以不乘,是因为可能会溢出s = s + b[3];elses = s + 256 + b[3];return s;}//字符到字节转换public static byte[] charToByte(char ch){int temp=(int)ch;byte[] b=new byte[2];for (int i=b.length-1;i>-1;i--){b[i] = new Integer(temp&0xff).bytevalue(); //将最高位保存在最低位temp = temp >> 8; //向右移8位}return b;}//字节到字符转换public static char byteToChar(byte[] b){int s=0;if(b[0]>0)s+=b[0];elses+=256+b[0];s*=256;if(b[1]>0)s+=b[1];elses+=256+b[1];char ch=(char)s;return ch;}//浮点到字节转换public static byte[] doubleT oByte(double d){byte[] b=new byte[8];long l=Double.doubleToLongBits(d);for(int i=0;i b[i]=new Long(l).bytevalue(); l=l>>8;}return b;}//字节到浮点转换public static double byteToDouble(byte[] b){long l;l=b[0];l&=0xff;l=((long)b[1]<<8);l&=0xffff;l=((long)b[2]<<16);l&=0xffffff;l=((long)b[3]<<24);l&=0xffffffffl;l=((long)b[4]<<32);l&=0xffffffffffl;l=((long)b[5]<<40);l&=0xffffffffffffl;l=((long)b[6]<<48);l=((long)b[7]<<56);return Double.longBitsToDouble(l);}--资料来源:学网(),原文地址:/itedu/200702/93357.html。

浅析Java中类型转换:String与int、long、Interger、char互相转换。。。

浅析Java中类型转换:String与int、long、Interger、char互相转换。。。

浅析Java中类型转换:String与int、long、Interger、char互相转换。

⼀、String 与 int、long、Interger、char 互相转换1、String 与 int 互相转换// String 转 intint i = Integer.valueOf(my_str).intValue();int i = Integer.parseInt(str);// int 转 StringString s = String.valueOf(i);String s = Integer.toString(i);String s = "" + i;2、long 转 String: 使⽤String.valueOf();类似的,可以把int,double等等都转换成String Long.valueOf(str);还能把String转换为long,不过需要确定是long型//⼀、String类⽅法,String.valueOf(),⽐如:long aa = 123;String a = String.valueOf(aa);//⼆、最简单的直接将long类型的数据加上⼀个空串long aa = 123;String a = aa+"";3、String 与 Ineger 互转(1)String 转 Integer 当我们要把String转化为Integer时,⼀定要对String进⾏⾮空判断,否则很可能报空指针异常。

String str = "...";Integer i = null;if(str!=null){i = Integer.valueOf(str);}(2)Integer 转 String//⽅法⼀:Integer类的静态⽅法toString()Integer a = 2;String str = Integer.toString(a)//⽅法⼆:Integer类的成员⽅法toString()Integer a = 2;String str = a.toString();//⽅法三:String类的静态⽅法valueOf()Integer a = 2;String str = String.valueOf(a); 1、通过toString()⽅法,可以把整数(包括0)转化为字符串,但是Integer如果是null的话,就会报空指针异常。

Java数据类型转换:强制类型转换 自动类型转换28

Java数据类型转换:强制类型转换 自动类型转换28

数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。

数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。

隐式转换(自动类型转换)如果以下 2 个条件都满足,那么将一种类型的数据赋给另外一种类型变量的时,将执行自动类型转换(automatic type conversion)。

•两种数据类型彼此兼容•目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)当以上 2 个条件都满足时,拓宽转换(widening conversion)发生。

例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。

在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。

自动转换的规则是从低级类型数据转换成高级类型数据。

转换规则如下:•数值型数据的转换:byte→short→int→long→float→double。

•字符型转换为整型:char→int。

以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。

例 1顾客到超市购物,购买牙膏 2 盒,面巾纸 4 盒。

其中牙膏的价格是 10.9 元,面巾纸的价格是5.8 元,求商品总价格。

实现代码如下:1.public static void main(String[] args) {2. float price1 = 10.9f; // 定义牙膏的价格3. double price2 = 5.8; // 定义面巾纸的价格4. int num1 = 2; // 定义牙膏的数量5. int num2 = 4; // 定义面巾纸的数量6. double res = price1 * num1 + price2 * num2; // 计算总价7. System.out.println("一共付给收银员" + res + "元"); // 输出总价8.}上述代码中首先定义了一个 float 类型的变量存储牙膏的价格,然后定义了一个 double 类型的变量存储面巾纸的价格,再定义两个 int 类型的变量存储物品的数量,最后进行了乘运算以及和运算之后,将结果储存在一个 double 类型的变量中进行输出。

【Java】常用数据类型转换(BigDecimal、包装类、日期等)

【Java】常用数据类型转换(BigDecimal、包装类、日期等)

【Java】常⽤数据类型转换(BigDecimal、包装类、⽇期等)新⼯作转到⼤数据⽅向,每天都要⾯对数据类型互相转换的⼯作,再加上先前⾯试发现这部分的知识盲点,决定复习之余⾃⼰再写⼀套便捷的⽅法,以后会⽐较⽅便。

(虽然公司有现成封装的类,⾥头还有些遗漏的地⽅,暂时不敢随便修改)1. BigDecimal和基本类型之间的转换现在蹲在银⾏⾥做项⽬,对数字的精准性要求较⾼。

⽐起Java⾥常⽤的double、int这些数据类型,BigDecimal的好处在于能够设置你想要的精度。

① BigDecimal和字符串String类型//字符串→ BigDecimalString a = "1.2";BigDecimal a2 = new BigDecimal(a);//Big Decimal →字符串BigDecimal b = new BigDecimal("1.2");String b2 = b.toString();//使⽤DecimalFormat可设置精度DecimalFormat df = new DecimalFormat("0.00");String b3 = df.format(b);System.out.println(b2);//1.2System.out.println(b3);//1.20②同理,double和int等数据类型也可与BigDecimal进⾏转换,但不建议使⽤double类型进⾏转换(浮点数没有办法⽤⼆进制准确表⽰)//浮点型与 BigDecimalBigDecimal i = new BigDecimal(1.2);//浮点型i.doubleValue();//整型与 BigDecimalBigDecimal i2 = new BigDecimal(1);//整型i.intValue();③BigDecimal的加减乘除BigDecimal a = new BigDecimal("1");BigDecimal b = new BigDecimal("2");a.add(b);//加法 a+ba.subtract(b);//减法 a-ba.multiply(b);//乘法 axba.divide(b);//除法 a/bint scale = 2;//精度 - ⼩数点后⼏位a.divide(b,scale,BigDecimal.ROUND_HALF_UP);//四舍五⼊2. 基本数据类型和包装类之间的转换在⼀次⾯试中,⾯试官问到装箱拆箱,以及为什么要设置基本数据类型的包装类的问题,后⾯那个问题答不上。

java强制类型转换的基本格式

java强制类型转换的基本格式

java强制类型转换的基本格式
Java强制类型转换是指将一种数据类型转换为另一种数据类型的
过程。

它允许将变量从一种类型转换为另一种类型,只要该类型的表
示更小。

它的基本格式为:
(类型) 表达式
这种方式叫做强制类型转换,它将把表达式强制转换为括号内指
定的数据类型。

强制类型转换必须遵循以下几条规则:
1.只有兼容的数据类型才能够进行类型转换。

2.如果被转换的数据类型比目标数据类型的表示范围小,那么精
度可能会丢失。

3.如果被转换的数据类型比目标数据类型的表示范围大,那么数
据将会被截断。

4.在强制类型转换时,不能将boolean类型转换为其他任何类型,也不能将其他类型转换为boolean类型。

5.强制类型转换应该使用小括号将要转换的表达式括起来。

6.如果一个常量被强制转换为byte类型,它的值必须在byte类
型的取值范围内(-128~127)。

7.在转换过程中,不能使用一元运算符(例如:+,-,~,++和--)作为转换类型。

以上就是java强制类型转换的基本格式,它允许我们将变量从一
种数据类型转换为另一种类型,但是必须确保兼容性以及不会丢失精
度或截断数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java 基本数据类型之间的转换 - fishinhouse的专栏 - CSDNBlog fishinhouse的专栏做一件事,最难的是开始,最重要的是坚持。

如果坚持,就会达到目的! 登录注册全站当前博客空间博客好友相册留言wl ID:fishinhouse java 基本数据类型之间的转换收藏新一篇: 常用log4j配置 | 旧一篇: java代码编写的30条建议我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。

其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。

此外,我们还经常用到两种类变量,即String和Date。

对于这些变量类型之间的相互转换在我们编程中经常要用到,在下面的论述中,我们将阐述如何实现这些转换。

1 数据类型转换的种类 java数据类型的转换一般分三种,分别是: (1. 简单数据类型之间的转换 (2. 字符串与其它数据类型的转换 (3. 其它实用数据类型转换下面我们对这三种类型转换分别进行论述。

2 简单数据类型之间的转换在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char--int--long--float--double 简单数据类型之间的转换又可以分为:●低级到高级的自动类型转换●高级到低级的强制类型转换●包装类过渡类型能够转换 2.1自动类型转换低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:byte b; int i=b; long l=b; float f=b; double d=b; 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r char c='c'; int i=c;System.out.println("output:" i; 输出:output:99; 对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。

shorti=99;char c=(chari;System.out.println("output:" c; 输出:output:c; 但根据笔者的经验,byte,short,int三种类型都是整型,因此如果操作整型数据时,最好统一使用int 型。

2.2强制类型转换将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。

即你必须采用下面这种语句格式: int i=99;byte b=(bytei;charc=(chari;float f=(floati; 可以想象,这种转换肯定可能会导致溢出或精度的下降,因此笔者并不推荐使用这种转换。

2.3包装类过渡类型转换在我们讨论其它变量类型之间的相互转换时,我们需要了解一下Java的包装类,所谓包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。

Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上我们就可以看出它们分别对应于boolean、char、int、long、float和double。

而String和Date本身就是类。

所以也就不存在什么包装类的概念了。

在进行简单数据类型之间的转换(自动转换或强制转换)时,我们总是可以利用包装类进行中间过渡。

一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。

例如:例1,当希望把float型转换为double型时: float f1=100.00f; Float F1=new float(f1; Double d1=F1.doubleValue(; //F1.doubleValue(为Float类的返回double值型的方法当希望把double型转换为int型时: double d1=100.00; Double D1=new Double(d1; int i1=D1.intValue(; 当希望把int型转换为double型时,自动转换: int i1=200; double d1=i1; 简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。

即: Boolean(boolean value、Character(char value、Integer(int value、Long(long value、Float(float value、Double(double value 而在各个包装类中,总有形为××Value(的方法,来得到其对应的简单类型数据。

利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue(可以得到其对应的整型变量,而doubleValue(可以得到其对应的双精度实型变量。

3 字符串型与其它数据类型的转换通过查阅类库中各个类提供的成员方法可以看到,几乎从ng.Object类派生的所有类提供了toString(方法,即将该类转换为字符串。

例如:Characrer,Integer,Float,Double,Boolean,Short等类的toString(方法toString(方法用于将字符、整数、浮点数、双精度数、逻辑数、短整型等类转换为字符串。

如下所示: int i1=10; float f1=3.14f; double d1=3.1415926; Integer I1=new Integer(i1; //生成Integer类r Float F1=new Float(f1; //生成Float类r Double D1=new Double(d1; //生成Double类r //分别调用包装类的toString(方法转换为字符串 String si1=I1.toString(; String sf1=F1.toString(; String sd1=D1.toString(;Sysytem.out.println("si1" si1; Sysytem.out.println("sf1" sf1; Sysytem.out.println("sd1" sd1; 4、将字符型直接做为数值转换为其它数据类型将字符型变量转换为数值型变量实际上有两种对应关系,在我们在第一部分所说的那种转换中,实际上是将其转换成对应的ASCII码,但是我们有时还需要另一种转换关系,例如,'1'就是指的数值1,而不是其ASCII码,对于这种转换,我们可以使用Character的getNumericValue(char ch方法。

5、Date类与其它数据类型的相互转换整型和Date类之间并不存在直接的对应关系,只是你可以使用int型为分别表示年、月、日、时、分、秒,这样就在两者之间建立了一个对应关系,在作这种转换时,你可以使用Date类构造函数的三种形式: Date(int year, int month, int date:以int型表示年、月、日 Date(int year, int month, int date, int hrs, int min:以int型表示年、月、日、时、分 Date(int year, int month, int date, int hrs, int min, int sec:以int型表示年、月、日、时、分、秒r 在长整型和Date类之间有一个很有趣的对应关系,就是将一个时间表示为距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数。

对于这种对应关系,Date类也有其相应的构造函数:Date(long date 获取Date类中的年、月、日、时、分、秒以及星期你可以使用Date类的getYear(、getMonth(、getDate(、getHours(、getMinutes(、getSeconds(、getDay(方法,你也可以将其理解为将Date类转换成int。

而Date类的getTime(方法可以得到我们前面所说的一个时间对应的长整型数,与包装类一样,Date类也有一个toString(方法可以将其转换为String类。

有时我们希望得到Date的特定格式,例如20020324,我们可以使用以下方法,首先在文件开始引入, importjava.text.SimpleDateFormat; import java.util.*; java.util.Date date = new java.util.Date(;/ /如果希望得到YYYYMMDD的格式 SimpleDateFormat sy1=new SimpleDateFormat("yyyyMMDD"; String dateFormat=sy1.format(date; //如果希望分开得到年,月,日 SimpleDateFormat sy=new SimpleDateFormat("yyyy"; SimpleDateFormat sm=new SimpleDateFormat("MM"; SimpleDateFormat sd=new SimpleDateFormat("dd"; String syear=sy.format(date; String smon=sm.format(date; String sday=sd.format(date; 附加:在java中除了这些转换之外基本数据类型还可以被隐式的转换成String,例如: System.out.print(转换 100;//如果在数据前面有字符串用连接//就会隐式的转换成 String 1.字符型转时间型:2005-10-1 reportdate_str =“2005-10-01”; reportdate_str = reportdate_str +“ 00:00:00.0” reportdate =java.sql.Timestamp.valueOf(reportdate_str; 2.时间型转字符型: V_DATE =reportdate.toString(; 3.将long型转化为String型 long APP_UNIT = (long userview.getDEPT_ID(; String S_APP_UNIT = String.valeOf(APP_UNIT; 基本类型s 都可以通过String.valeOf(s来转化为String型。

相关文档
最新文档