java基本数据类型及类型转换

java基本数据类型

基本数据类型是指Java固有的数据类型,是编译器本身能理解的,可以分为数字型,布尔值和字符型。

数字型基本数据结构类型有6种,分为字节型(byte),短整型(short),整型(int),长整型(long),单精度浮点型(float),和双精度浮点型(double)。关于这6种数字类型的说明如表所示:

类型说明长度最小值最大值
byte带符号微整数8位-128127
short带符号短整数16位-32768(-2^15)32767(2^15 - 1)
int带符号整数32位-2,147,483,648(-2^31)2,147,483,647(2^31 - 1)
long带符号长整数64位-9,223,372,036,854,775,808(-2^63)9,223,372,036,854,775,807(2^63 -1)
float单精度浮点数32位-2^-149 默认值是 0.0f(2-2^-23)*2^127
double双精度浮点数64位2^-1074(2-2^-52)*2^1023

布尔型数据(boolean)表示一个逻辑量,只有两个值true和false,他们不对应任何整数值。
字符类型数据(char)用于存储单个字符,字符以代码形式存储。
例如在ASCII字符集中,字符65对应字母A,49对应数字1。Java的字符数据类型是16位,最小值0,最大值65 535,放置Unicode字符。Unicode是ASCII字符集的扩展集,用于处理多种语言。


类型转换

java数据类型的转换一般分为三种:
1,简单数据类型之间的转换
2,字符串与其它数据类型的转换
3,其它实用数据类型转换

在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为:

(byteshortchar)——intlongfloatdouble

转换时遵循的原则:

1,容量小的类型自动转换为容量的类型;
2,容量大的类型转换为容量小的类型时,要加强制转换符;
3,byte,short,char之间不会互相转换,并且三者在计算时首先转换为int类型;

注意:实数常量默认为double类型,因此,在声明float类型时,在数字后面加上字母f或F; 整数常量默认为int类型,因此,在声明长整型类型时,在数字后面加上l或L。
类型转换分为自动类型转化强制类型转化以及包装类过渡类型转换
1.自动类型转换
自动类型转换:由优先级低的数据类型转向优先级高的数据类型。
例如:

short a=12;
int b=a;
long c=a;
float d=a;
double e=a;

这些都是正确的。
如果低级类型为char型,向高级类型(如整型转换时,会转换成相应的ASCII码值,例如:

char c='c';
int i=c;
System.out.println("i="+i);//i=99

2.强制类型转化
将高级变量转换成低级变量时,需要使用强制类型转换。
例如:

int i=99;
byte b=(byte)i;
char c=(char)i;
System.out.println("b="+b+" c="+c);//b=99 c=c
float f=3.10f;
int a=(int)f;
System.out.println("a="+a);//a=3

这种转换肯定可能会导致溢出或精度的下降。
3.包装类过渡类型转换
Java共分为六个包装类,分别是Boolean,Character,Integer,Long,Float和Double。当然从字面上我们就能看出他们分别对应的是boolean , char , int , long , float ,double .除此之外,我们常见的String和Date类型本身就是类引用类型的,所以就不存在什么包装类的概念。

简单数据类型转换成相应的包装类,可以利用包装类的构造函数。如Boolean(boolean value) , Character(char value) , Integer( int value) , Long (long value) ,Float (float value) , Double(double value)

下面举个例子:

double i=100.10;
Double I=new Double(i);
int i1=I.intValue();
System.out.println("i1="+i1);//i1=100

再如:

long i=21474836471L;
Long I=new Long(i);
int i1=I.intValue();
System.out.println("i1="+i1);//i1=-9

方法就是:包装类转换成相应的简单数据类型,可以利用包装类中的xxValue()方法。如Long.intValue()可以将Long包装类型的变量转换成int型的数据类型。

最后补充:String型和其他数据类型之间的数据转换:

1.String类型和包装类之间的转换:
1,String 类型转换成各种包装类,除了Character包装类之外,都有可以直接使用字符串作为参数的构造函数使得String类型转换成各种包装类;比如new Integer(String value) , Long(String value) , Double (String value);

String i="200";
Integer i1=new Integer(i);
System.out.println("i1="+i1);//i1=200

2,包装类转换成String类型,可以使用各种包装类提供的toString()方法。

long i=98787348726722L;
Long I=new Long(i);
String i1=I.toString();
System.out.println("i1="+i1);//i1=98787348726722

3, 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱。

double m = 78.5;
//将基本类型转换为字符串
String str1 =String.valueOf(m);
System.out.println("m 转换为String型后与整数20的求和结果为: "+(str1+20));
//m 转换为String型后与整数20的求和结果为: 78.520
String str = "180.20";
// 将字符串转换为基本类型
Double a = Double.valueOf(str);
System.out.println("str 转换为double型后与整数20的求和结果为: "+(a+20));
//str 转换为double型后与整数20的求和结果为: 200.2

2.String 类型和基本数据类型之间的转换:

String类型转化为其他类型
1,String 类型转换成基本数据类型可以使用基本数据类型的包装类的parseXxx()方法。如 Long.parseLong(String value)就可以将一个String类型的数据转换成一个long型的数据。

String i="20000000000000";
long i1=Long.parseLong(i);
System.out.println("i1="+i1);//i1=20000000000000

2,valueOf()方法,见上面。

其他类型转化成String类型
1,使用包装类的 toString() 方法
2, 使用String类的 valueOf() 方法
3,用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值