专栏首页java学习面试题1(选择正确的类型转换)

面试题1(选择正确的类型转换)

Which ofthe following are legal lines ofcode?( 下列哪些代码是合法的?)

(a) int w=(int)888.8

(b) byte x=(byte)1000L

(c )long y=(byte)100

(d) byte z=(byte)100L

考点: 考察用户对Java语言类型转换的理解和掌握。

出现频率: ★★★★★

【面试题解析】在Java中,整型、实型、字符型被视为简单的数据类型,这些数据类型由低

到高级分別为:(byte,short,char)int long float double

简单数据类型之间的转换又可以分为:

  • 低级到高级的自动类型转换;
  • 高级到低级的强制类型转换;
  • 包装类过渡类型能够转换。

1、自动类型转换

低级变量可以直接转换为高级变量,下面的语句可以在JAVA中直接通过,代码如下:

byte b;

int i=b;

long l=b;

f loat f=b;

doubled=b


如果低级类型为char型,向高级类型(整型) 转换时,会转换为对应ASCII码值,代码如下:

码如下:

char c='c';

int i=c;

System.out.println("output:"+i);

输出:

output:99 ;


对于byte、short、char 3种类型而言,它们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换,代码如下:

short i=99;

char c=(char)i;

System.out.printIn("output:"+c) ;

输出:

output:c


2.强制类型转换

将高级变量转换为低级变量时,情况会复杂一些,可以使用强制类型转换.示例代码如下:

int i=99;

byte b=(byte)i;

char c=(char)i;

float f=(float)i;


3.包装类过渡类型转换

Java 的包装类将基本数据类型与对象类型在一定程度上统一起来,井提供以下两个方

面的功能。

  • 将基本类型封装后当作对象进行操作。
  • 口为基本数据类型提供各种转换功能。

Java 共有6 个包装类,分别是Boolean、Character、Integer、Long、Float 和Double。

从字面上就可以看出它们分别对应于boolean、char、int、long、float和double 类型。而String和Daue本身就是类。也就不存在包装类的概念。

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

一般情况下,首先声明一个变量。然后生成个对应的包装类,就可以利用包餐类的

各种方法进行类型转换了。例如,当希望把float型转换为double型时、示例代码如下:

float f1=100.00f;

FloatF1=new float(f1);

Double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法


当希望把double型转换为int型时,代码如下所示:

doubled1= 100.00;

DoubleD1=new Double(d1);

int i1=D1.intvalue();


当希望把int型转换为double型时,自动转换如下:

int i1=200;

double d1=i1

简单类型的变量转换为相应的包装类,可以利用包装类的构造函数,如Boolean(boolean

value)、Character(charvalue) 、Integer(int value) 、Long(long value)、Floal (float value)、Double(double value)

而在各个包装类中,总有形为XXXValue()的方法,来得到其对应的简单类型数据。利

用这种方法,也可以实现不同数值型变最间的转换。例如对于一个双精度实型类,intValue()

可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

一个浮点类型数据通过强制类型转换可以转换为int类型,这时小数位会被截去,所以

(a) 是正确的。一个长整型数值可以被转换为byte 类型,如果长整型数大于127 转换为

byte 类型就会变为-128,所以(b) 和(d) 是正确的。由于长整型数的范围覆盖byte 类型数范围,所以(c) 也是正确的。

参考答案:(a)、(b)、(c)、(d)。

本文分享自微信公众号 - java学习(javaxxf),作者:许肖飞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mybatis学习笔记1

    本章目录 Mybatis学习笔记1 1、mybatis的介绍 2、使用jdbc操作数据库存在的问题 3、 Mybatis的架构 4、Mybatis的入门程序 ...

    Java学习
  • 基本数据类型转换之向上转型和向下转换

    最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习...

    Java学习
  • 面试题43(关于类型转换的掌握)

    Which lines of the following will produce an error? 1. byte a1 = 2,a2 = 4, a3;...

    Java学习
  • java安全编码指南之:文件IO操作

    对于文件的IO操作应该是我们经常会使用到的,因为文件的复杂性,我们在使用File操作的时候也有很多需要注意的地方,下面我一起来看看吧。

    程序那些事
  • 【DB笔试面试633】在Oracle中,什么是待定的统计信息(Pending Statistic)?

    在数据库系统运维中,DBA常常希望维持SQL执行计划的稳定。很多DBA和开发人员对于Hint的依赖,很大程度上也是源于在CBO情况下,执行计划对于统计量过于依赖...

    小麦苗DBA宝典
  • C#中的override和new关键字

    这是因为Java中的类方法默认是虚函数(虽然Java中没有这个叫法),子类函数会默认覆盖父类的同名函数(Java后来提供了@override注解)。然而C#中必...

    卡尔曼和玻尔兹曼谁曼
  • 你真的了解Java中的负数?

    joymufeng
  • Amazon Aurora 深度探索(二)

    本文对 Aurora 系统的实现从整体架构、存储、事务处理三个方面进行深入探讨,基于其论文和相关资料讨论具体实现细节,又跳出其外、从数据库内核技术实现的角度对 ...

    serena
  • Dubbo源码之服务调用

    在应用启用的时候, 会为消费方创建一个代理对象,即 引用Bean ,该 引用Bean 内部只持有一个InvokerInvocationHandler对象,而该 ...

    spilledyear
  • 想做数据分析,看看这款开放了上千个API接口的BI工具

    众所周知,API就是接口、通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。

    用户7220666

扫码关注云+社区

领取腾讯云代金券