当前位置: 首页 > 面试题库 >

隐式转换和显式转换之间的区别

公冶嘉茂
2023-03-14
问题内容

“隐式转换”和“显式转换”有什么区别?Java和C ++的区别是否不同?


问题答案:

显式转换是您使用某种语法 告诉 程序进行转换的地方。例如(在Java中):

int i = 999999999;
byte b = (byte) i;  // The type cast causes an explicit conversion
b = i;              // Compilation error!!  No implicit conversion here.

隐式转换是在没有任何语法的情况下进行转换的地方。例如(在Java中):

int i = 999999999;
float f = i;    // An implicit conversion is performed here

应该注意的是(在Java中)涉及原始类型的转换通常涉及某种表示形式的更改,并且可能导致精度降低或信息丢失。相比之下,仅涉及引用类型的转换不会更改基本表示形式。

Java和C ++的区别是否不同?

我没想到 显然,可用的转换会有所不同,但是“隐式”和“显式”之间的区别是相同的。(注意:我不是C
语言的专家…但是这些词在英语中具有自然的含义,我无法想象C 规范会在矛​​盾的意义上使用它们。)



 类似资料:
  • 问题内容: 您能告诉我SQL Server中隐式转换和显式转换之间的区别吗? 我已经用谷歌搜索过,但是我听不懂。 问题答案: 当您在查询中显式使用or关键字时,就会发生显式转换。 当表达式中的数据类型不同时,SQL Server将根据数据类型优先级的规则自动将其强制转换,从而进行隐式转换。 例如,nvarchar的优先级高于varchar 第二个执行计划显示谓词为 在这种情况下,显式转换和隐式转换

  • 一、隐式转换 1.1 使用隐式转换 隐式转换指的是以 implicit 关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能。示例如下: // 普通人 class Person(val name: String) // 雷神 class Thor(val name: String) { // 正常情况下只有雷神才能举起雷神之锤 def hamm

  • 所以,问题是--为什么在I=L的情况下,当L的大小足够小到适合I时,必须显式地进行,但在F=L的情况下,当L的大小也适合F时,铸造可以隐式地进行,而不会产生错误。 我的意思是,在这两种情况下,右操作数的大小可能不适合左操作数。那么,为什么在一种情况下(I=L),强制转换必须显式进行,而在另一种情况下(F=L)可以隐式进行呢?虽然隐式地将长var转换为int var比隐式地将长var转换为浮点var

  • 问题内容: 我正在使用JavaConverters将Java SortedSet转换为Vector。 我的getInstructions函数返回java.lang.Long的ArrayList,但是使用代码需要Scala.Long。有没有一种方法可以在不将所有使用代码都更改为使用Java.lang.Long的情况下进行操作? 此外,是否有一种方法可以对值类进行隐式转换,以允许对ArrayList的

  • 我有一个结构,下面的运算符声明: 仅此运算符就可以将不可为null的结构隐式转换为int,但尝试隐式转换其可为null的对应结构仍会引发编译错误: 无法隐式转换类型

  • 本文向大家介绍Java基础之隐式转换vs强制转换,包括了Java基础之隐式转换vs强制转换的使用技巧和注意事项,需要的朋友参考一下 Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。 在定义变量时,有许多要注意的问题,一不小心就会出现损失精度或者不兼容类型等