java中各数据类型是如何实现强制类型转换的?

Python016

java中各数据类型是如何实现强制类型转换的?,第1张

转型有两种:

向上转型和向下转型(强制转型)

两种分别如下:

一种是向上转型对于基础数据类型

,

可以自动转型

,比如:int

a

=

10long

b

=

a这里就是把int型转成了long型

,

因为

long范围比int大

,

这样的转型不会有任何影响

,

所以可以自动转型

又比如

A

a

=

new

B()

其中

A

是B

的父类

,

这也是多态

,

就是父类的对象指向子类的引用

,

你调用a对象

,

实际上是B的类

,

但是B继承A

,

拥有A的一切属性和方法

(不谈复写)

</ol>第二种是向下转型

,

也就是强制这种需要强转

,

比如long

a

=

10

int

b

=

(int)

a通过

(int)可以强制转型

,

但是这样会丢失精度

,

比如a如果超过了b的范围

,

那么强转成int型,

只会等于int的最大值又比如

:B

b

=

new

A()

这样是不行的

,

需要有中间途径

,

比如A

a

=

new

A()

Object

obj

=

a

B

b

=

(A)

a而这种强转

,

又有要求

,

必须是同类型

,

也就是说

A

就是B

,

不然会报错.</ol>不同类型之间如果要转型

,

需要通过中间途径

,

比如JSON

,

将A转成JSON串

,

然后再转换为B

</ol></ol>

可以转换,在平时写代码的时候经常会用到string和int数据类型的转换,由于java和python在string和int数据类型转换的时候是不一样的。

在 java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换。

String str = "123"try {    int a = Integer.parseInt(str)

} catch (NumberFormatException e) {

e.printStackTrace()

}

String str = "123"try {    int b = Integer.valueOf(str).intValue()

} catch (NumberFormatException e) {

e.printStackTrace()

}

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。