晚上一个java群里发来了下面代码,问原因,一时我也没有看出来为什么第2个打印结果会是“88”。想看一下三目运算的源码没找到。于是想到C语言以前写过结构体实现三目运算比较,因此猜到此可能是类型转换导致的。网上一找java编程规范果然是如此。
@org.junit.Test
public void printIfElse()
{
char x='X';
// int i=0; // X 88
// float i = 12.33232f; //X 88.0
double i = 129;// X 88.0
System.out.println(true?x:0);
System.out.println(false?i:x);
}
If one of the operands is of type byte or Byte and the other is of type short or Short, then the type of the conditional expression is short.
If one of the operands is of type T where T is byte, short, or char, and the other operand is a constant expression of type int whose value is representable in type T, then the type of the conditional expression is T.
If one of the operands is of type Byte and the other operand is a constant expression of type int whose value is representable in type byte, then the type of the conditional expression is byte.
If one of the operands is of type Short and the other operand is a constant expression of type int whose value is representable in type short, then the type of the conditional expression is short.
If one of the operands is of type; Character and the other operand is a constant expression of type int whose value is representable in type char, then the type of the conditional expression is char.
分享到:
相关推荐
在Java编程语言中,强制类型转换是将一个数据类型转换为另一个不兼容的数据类型的过程。这种转换通常是必要的,因为Java是一种静态类型的语言,它要求在编译时就确定变量的类型。然而,有时我们可能需要将一个对象从...
Java数值类型的转换与强制转换 Java数值类型的转换与强制转换是Java编程语言中一个非常重要的概念。数值类型之间的转换可以分为两种:无信息丢失的转换和可能有精度损失的转换。无信息丢失的转换是指小类型的值可以...
标题中的“浅谈Java字符串Java开发Java经验技巧共11页”表明这是一份关于Java编程,特别是关于Java字符串处理的深度技术文档。在Java中,字符串是编程中经常遇到的基本数据类型,对于任何Java开发者来说,理解和掌握...
例如,不应该将`nextInt()`的结果转换为负数后再取模,而应该直接让`nextInt()`返回非负整数,然后取模。 总的来说,Java提供了多种生成随机数的方式,从基本的`Math.random()`到更高级的`Random`和`...
4. Native-protocol纯Java驱动:数据库厂商提供专用的JDBC协议,使得Java应用程序可以直接与数据库通信,无须中间层转换,提高了效率。 Java在数据库应用中的优势在于其跨平台特性、面向对象的设计以及安全性。在...
* 有自动类型转换功能,但不支持 java.util.Date 类型 * 支持为 null 的场景 第二种:使用 BeanUtils.copyProperties() 使用 BeanUtils.copyProperties() 方法可以将一个 bean 中的属性拷贝到另一个 bean 中。这个...
- 可以通过`new java.sql.Date(new java.util.Date().getTime())`将`java.util.Date`转换为`java.sql.Date`。 - 在数据库查询中,通常使用`getTimestamp()`方法获取`java.sql.Timestamp`,因为SQL的Date类型可能...
Java学习系列(二):Java注释、标识符、基本数据类型及其转换易错点详解 本章节主要讲解Java的注释、标识符、基本数据类型及其转换。Java中的注释包括单行注释、多行注释和文档注释。标识符是Java程序中用来命名...
Java中的流分为两大类:字节流和字符流,每种类别又分为输入流和输出流。字节流处理单个字节的数据,如8位的ASCII编码;字符流处理Unicode字符,如16位的UTF-16编码。字节流主要包括InputStream和OutputStream两个...
- **无泛型支持**:Hashtable属于旧版集合框架,不支持泛型,这意味着在使用时需要进行类型转换,容易引发ClassCastException。 - **不支持迭代器**:与HashMap等新集合框架相比,Hashtable不支持foreach循环,使用...
此外,该类还提供了`nextInt()`、`nextFloat()`、`nextBoolean()`等方法取得使用者的输入,并转换为正确的数据类型。例如: ```java int score; Scanner sc = new Scanner(System.in); System.out.println("请输入...
例如,二维点文件记录内容的说明表详细阐述了记录中的每个字段的数据类型和含义,这对于开发转换程序是必不可少的。 另外,文档指出,地理信息系统(GIS)软件,例如ArcGIS,常被用来进行地理数据的编辑和分析。...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储、管理和处理提供了丰富的类和接口。这个框架包括了数组、链表、队列、堆栈、映射等多种数据结构,极大地提高了开发效率和代码的可读性。在本文中...
3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...
在Java开发中,将对象转换成JSON格式是常见的操作,特别是在与前端交互时。然而,当我们处理包含大数字的对象时,可能会遇到数字精确度丢失的问题。这个问题主要体现在两个方面:一是超过15位数字的整数会出现精度...
### 浅谈Python数据类型及类型转换 在Python编程语言中,掌握数据类型及其相互之间的转换至关重要。数据类型是程序设计的基础,理解每种数据类型的特性和用途可以帮助开发者更好地组织和处理数据。本文将深入探讨...
- **转换器和验证器**:为了处理数据类型转换和输入验证,JSF提供了转换器和验证器机制。 #### 7. 多核时代考验Java代码编写习惯 随着多核处理器的普及,Java编程面临新的挑战和机遇。多核环境下,需要特别注意...
浅谈java基本数据类型的范围 Java是一种面向对象的编程语言,它有八种基本数据类型,每种类型都有其特点和范围。了解这些类型的范围和特点对于 Java 开发者来说至关重要。本文将详细介绍 Java 的八种基本数据类型...
在Java的I/O包中,根据处理数据的不同类型,可以将流分为两大类:字节流和字符流。字节流主要包括`InputStream`和`OutputStream`,而字符流则有`Reader`和`Writer`。每一类都有其特定的用途和子类。 - **字节流** ...