`

记两次踩到的坑-Long类型赋值与比较

阅读更多
通过对象属性获取Long类型数据t,与常量Long类型比较时,

应判断t是否为空


第二次的坑(最近的一次)
public class LongCompareStringTest {
	public static void main(String[] args) {
		Long data = 0l;
		
		System.out.println(data.toString());
		
		/*if ("0".equals(data)) { // 得到false1
			System.out.println("true1");
		} else {
			System.out.println("false1");
		}
		
		if (0l == data) { // 得到true2
			System.out.println("true2");
		} else {
			System.out.println("false2");
		}*/
		
		Long t = null;
// 抛异常================================================

		if (0l == t) {
			System.out.println("00");
		}
	}
}



半年前的坑见<java条件表达式陷阱>

public class LongCompareStringTest {
	public static void main(String[] args) {
		Long data = 0l;
		
		System.out.println(data.toString());
		
		/*if ("0".equals(data)) { // 得到false1
			System.out.println("true1");
		} else {
			System.out.println("false1");
		}
		
		if (0l == data) { // 得到true2
			System.out.println("true2");
		} else {
			System.out.println("false2");
		}*/
		
		/*Long t = null;
		if (0l == t) {
			System.out.println("00");
		}*/
		
		boolean flag = true;
		Long t = null;
// 抛异常================================================
		Long tt = flag ? t : 0l;
		System.out.println(tt);
	}
}


这段代码编译后再反编译如下:
import java.io.PrintStream;

public class LongCompareStringTest
{
  public static void main(String[] args)
  {
    Long data = Long.valueOf(0L);

    System.out.println(data.toString());

    boolean flag = true;
    Long t = null;
    Long tt = Long.valueOf(flag ? t.longValue() : 0L);
    System.out.println(tt);
  }
}
分享到:
评论

相关推荐

    powerbuilder

    参数printjobnumber:用PrintOpen()函数打开的打印作业号fontnumber:指定赋给当前定义字体的编号,有效值在1到8之间 facename:string类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”height:...

    C++出错提示英汉对照表

    Redefinition of ''xxx'' is not identical ------------------- xxx的两次定义不一致 Register allocation failure ------------------寄存器定址失败 Repeat count needs an lvalue ------------------重复计数...

    Arduino编程语言参考大全(官方网站).pdf

    - 位与后赋值(&=) - 位或后赋值(|=) 二、变量(Variables) 2.1 常量 - HIGH、LOW:描述数字引脚的高低电平。 - INPUT、OUTPUT、INPUT_PULLUP:描述数字引脚的模式。 - true、false:布尔型常量。 2.2 数据...

    Java 基本数据类型及表达式

    - 整型:包括byte(1字节,-128到127),short(2字节,-32,768到32,767),int(4字节,-2^31到2^31-1),以及long(8字节,-2^63到2^63-1)。整型可以使用十进制、八进制或十六进制表示。例如,`int a = 23;`,`...

    精髓Oralcle讲课笔记

    --与66题的写法是一样的,但是不推荐使用using : 假设条件太多 --------------------------------------/非等值连接------------------------------------------/ 68、select ename,grade from emp e join ...

    PL-SQL用户指南与参考(译)

    ### PL-SQL用户指南与参考(译) #### 第一章:PL/SQL一览 ##### 一、理解PL/SQL的主要特性 **1、块结构** PL/SQL使用块结构来组织程序,每个块可以独立运行,也可以组合在一起形成更复杂的程序结构。一个基本的...

    The C Cheat Sheet - An Introduction to Programming in C

    - C语言中有多种整型数据类型,如`short int`、`int`、`long int`等。 - 这些类型默认是有符号的,即可以存储负数。 - **2.2 无符号整型** - 类似于有符号整型,但不存储负数,因此可以存储更大的非负数值。 - **...

    组态王数据类型.docx

    STRING 数据类型是 128 个字符长度,类似一般程序设计语言中的字符串变量,用于记录一些有特定含义的字符串,如名称、密码等,该类型变量可以进行比较运算和赋值运算。 在组态王系统中,变量可以分为内存变量和 I/O...

    数据类型转换数据类型转换

    - `CString`对象转换为`char*`需要两次转换:先转为`const char*`,然后转为`char*`。 - `BSTR`、`CComBSTR`和`_bstr_t`都是用来处理Unicode字符串的,它们之间的转换可以通过特定的转换函数完成,如`_...

    day02_变量、运算符.pdf

    Java中的运算符包括算术运算符(如加减乘除)、比较运算符(如等于、不等于)、逻辑运算符(如与、或、非)以及赋值运算符(如 `=`、`+=` 等)。理解并熟练运用这些运算符是编写高效代码的关键。 在编程实践中,...

    java SE(入门知识4)原生数据类型使用陷阱.docx

    在Java编程语言中,原生数据类型(primitive data type)是程序设计的基础,包括了byte、short、int、long、float、double、char以及boolean这八种。它们各自有不同的存储大小和取值范围,每种类型都有其特定的用途...

    Scala语言规范

    在Scala中,整型字面值默认为`Int`类型,但可以通过附加后缀来指定其他类型,如`L`表示`Long`类型。 - **1.3.2 浮点型字面值** - 浮点型字面值用来表示带有小数部分的数值。默认类型为`Double`,但可以通过附加`f`...

    Java基础知识

    - 这些类型在与`int`类型进行运算时会自动转换为`int`类型。 #### 运算符和表达式 - **1.7 运算符和表达式** - **1.7.1 使用%运算符** - `%`运算符用于求余数。 - **1.7.2 使用“++”和“--”运算符** - 这些...

    编程语言java日记.pdf

    - 自动类型提升,例如int类型赋值给double类型。 - 强制类型转换,使用强制类型转换运算符进行显式转换。 3. 流程控制语句: - if-else条件语句用于基于条件执行不同的代码块。 - for循环用于执行重复的代码块...

    宋劲杉--Linux C编程一站式学习2009.3.13版本——-免积分!!!

    - **整型**:int、short、long等不同类型。 - **浮点型**:float、double等类型。 - **类型转换**:在不同数据类型之间转换。 - **Integer Promotion**:某些情况下自动提升较小的整数类型到int。 - **Usual ...

    java中的数据类型,变量使用规则,自动类型转换

    2. **类型大小**:目标类型必须至少与源类型一样大。例如,`double` 类型可以接收 `int` 类型的数据,因为 `double` 类型的容量更大,反之则不行。 通过以上内容,我们可以看出Java在处理数据类型方面有着严格的...

    实验3 Java的基本数据类型和流程控制结构.doc

    Java是一种广泛使用的面向对象的编程语言,其语法和特性与C++和C#有诸多相似之处,但在数据类型和流程控制结构上具有自己的特点。在实验3“Java的基本数据类型和流程控制结构”中,我们将深入理解这些核心概念。 1....

Global site tag (gtag.js) - Google Analytics