`

Java解惑--整数类型深入

    博客分类:
  • Java
阅读更多
问题1、
public class LongDivision{ 
  public static void main(String args[]){ 
    final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000; 
    final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000; 
    System.out.println(MICROS_PER_DAY/MILLIS_PER_DAY); 
  } 
} 

输出:5
如想打出预期结果1000,则需做如下处理:
public class LongDivision{ 
  public static void main(String args[ ]){ 
    final long MICROS_PER_DAY = 24L * 60 * 60 * 1000 * 1000; 
    final long MILLIS_PER_DAY = 24L * 60 * 60 * 1000; 
    System.out.println(MICROS_PER_DAY/MILLIS_PER_DAY); 
  } 
}


问题2、
public class JoyOfHex{ 
  public static void main(String[] args){ 
    System.out.println( 
      Long.toHexString(0x100000000L + 0xcafebabe)); 
  } 
} 

输出:cafebabe
如想打出预期的1cafebabe,则需做如下处理:
public class JoyOfHex{ 
  public static void main(String[] args){ 
    System.out.println( 
      Long.toHexString(0x100000000L + 0xcafebabeL)); 
  } 
} 


问题3、
public class Multicast{ 
  public static void main (String[] args){ 
    System.out.println((int)(char)(byte) -1); 
  } 
} 

输出:65535
小记:有一条很简单的规则能够描述从较窄的整型转换成较宽的整型时的符号扩展行为:如果最初的数值类型是有符号的,那么就执行符号扩展;如果它是 char,那么不管它将要被转换成什么类型,都执行零扩展。了解这条规则可以使我们很容易地解决这个问题。 
分享到:
评论

相关推荐

    java解惑(源代码+教程)

    《Java解惑》是一本由Google工程师编写的经典教材,旨在帮助开发者解决在实际编程过程中遇到的困惑和误解。这本书通过一系列精心设计的“Java谜题”,揭示了语言中的一些不直观特性和陷阱,从而提升读者对Java深层...

    Java解惑(中文+书签).pdf

    Java是一种广泛使用的编程语言,它有许多特性需要程序员深入理解才能有效避免编程中的一些陷阱和冷僻问题。从给定的文件内容中,我们可以提炼出以下几个知识点: 1. 取余操作符(%)的特性与陷阱 在Java中,取余...

    java疑难解惑(提高篇)

    Java编程语言中的“疑难解惑”常常涉及到对语言特性的深入理解,特别是在处理特定问题时。本篇文章将探讨两个常见的Java谜题,涉及取余运算符 `%` 和浮点数精度问题。 首先,我们来看“表达式谜题”。在Java中,`...

    java解惑 中文版

    ### Java解惑知识点详解 #### 一、表达式谜题概览 本书《Java解惑》专注于探索Java编程语言及核心类库中的复杂细节。作者通过一系列精心设计的谜题来帮助读者深入理解Java中的一些棘手问题。本书共包含了95个谜题...

    java 解惑.pdf

    ### Java解惑知识点详解 #### 一、表达式谜题 **谜题1:奇数性** - **描述**:程序看似应该返回一个布尔值,表明一个数字是否为奇数,但结果却出乎意料。 - **解惑**:在进行模运算时,需要注意负数的情况。当输入...

    JAVA解惑.pdf

    在《JAVA解惑》这本书中,包含了大量关于Java编程语言的陷阱和缺陷,通过具体的谜题形式,帮助读者理解并避免这些潜在的问题。接下来,我将对书中提到的一些重要知识点进行详细说明。 首先,我们来了解关于Java...

    Java解惑中文版(带索引)

    ### Java解惑中文版(带索引)知识点详解 #### 一、理解Java中的奇数检测方法 在Java中,判断一个整数是否为奇数是常见的编程需求。本章节介绍了一个具体的例子来探讨如何正确地实现这一功能。 **原始方法实现**:...

    Java解惑 PPT1

    【Java解惑PPT1】深入探讨Java编程中的常见迷惑 在Java编程中,了解语言的细微之处至关重要,因为这可能会导致意想不到的行为。本PPT主要涵盖了五个有趣的Java谜题,帮助开发者理解Java的一些核心概念。 **谜题1:...

    java解惑 java 表达式谜题 java 字符谜题 java 循环谜题 java 异常谜题

    此外,Java是强类型语言,不同类型之间的转换需要特别注意,比如整数与浮点数混合运算时的隐式转换。 ### Java字符谜题 Java中字符以Unicode编码,因此处理字符时需要理解Unicode的特性。例如,`'\u0061'`表示字符...

    Java解惑.pdf

    ### Java解惑:深入理解Java中的谜题与陷阱 #### 表达式谜题:奇数判断误区 在探讨Java编程中的谜题时,我们首先遇到的是关于奇数判断的一个常见陷阱。根据“Java谜题”一书的中文版描述,一个简单的函数`public ...

    iava解惑,深入剖析java

    《深入剖析Java》一书旨在帮助Java开发者解决在编程过程中遇到的困惑,通过一系列精心设计的谜题,深入探讨Java语言的核心概念、语法特性和易错点。以下是对部分谜题的详细解析,以加深对Java的理解。 谜题1:奇数...

Global site tag (gtag.js) - Google Analytics