谜24

byte是有符号的。范围是-128 - 127。

而0x90是int类型。

比較的时候。不相等。

假设想让其相等,须要进行类型转换:(byte & 0xff) 或者 (byte)0x99。

谜题25

自增运算符对循环的影响。j = j++,先赋值。

谜题26

Integer.MAX_VALUE加一之后会变成Integer.MIN_VALUE。这对循环会有影响。

能够考虑使用long来表示i变量,或者使用效率更高的i != Integer.MAX_VALUE。

谜题27

(-1 << 32)的结果是-1而不是0。

对于int型的数据移位运算总是取右端数转换成2进制的低五位。

对于long型的数据移位运算总是取右端数转换成2进制的低六位。

32取低五位是0。因此结果是-1。
假设右边的数是负数,相同保留低五(六)位,将其转换为正数。

谜题28

while(i == i + 1) {

}

当浮点数i足够大时候, i = i + 1。

相邻浮点数之间的距离被称为ulp(unit int the last place),一旦ulp超过2。加一将不会产生不论什么影响。

二进制浮点数算术仅仅是一种近似。

谜题29

while(i != i) {

}

IEEE 754浮点算术保留了一个特殊的值:NaN(not a number)。

double i = 0.0 / 0.0。double i = Double.NaN,

不论什么浮点数操作,仅仅要一个或多个操作数为NaN,那么结果是NaN。

NaN不等于不论什么浮点数,包含它自身。NaN  != NaN 。

谜题30

while(i != i + 0) {

}

i != i + 0,假设i是String类型。此时的+就不是算术加号了,被重载为字符串的连接。

谜题31

while(i != 0) {

i  >>>= 1;

}

还是在讲类型转换。

当i为short类型的-1的时候,i >>>= 1,仍旧是-1:首先将short转换为int。然后在截取低位16。

short,byte的不论什么负数终于都会转换为-1。而char不会,char是无符号的。

谜题32

Integer i = new Integer(0);

Integer j = new Integer(0);

while(i <= j && i >= j && i != j){

}

包装类,当使用==运算符时候,并非推断值相等,而是引用(兼容性考虑)。

<=或者>= 都是值推断。

谜题33

while(i != 0 && i == -i) {

}

整数的边界问题

0x8000 0000 表示最小的负数(Integer.MIN_VALUE),对其求相反数,仍是其本身。

谜题34

		final int START = 2000000000;
int count = 0;
for (float f = START; f < START + 65; f++) {
count++;
System.out.println(START + 65);
}
浮点数精度问题
START+50与START相等,当使用浮点数表示的时候。50比START的ulp距离(128)的一半还小。

当超过ulp的距离的一半的时候,无限循环。

谜题35

取余和乘除具有同样的优一年级。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Java常见问题3:周期之谜的更多相关文章

  1. java类生命周期详细解析

    (一)详解java类的生命周期 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前 ...

  2. Java线程生命周期

    当你需要使用Java线程在多线程环境下进行编程时,理解Java的线程周期与线程的状态是非常重要的.通过实现Runnale接口或者继承Thread类,我们可以创建线程,为了启动一个线程,我们需要创建一个 ...

  3. Java实现生命周期管理机制

    先扯再说 最近一直在研究某个国产开源的MySQL数据库中间件,拉下其最新版的代码到eclipse后,启动起来,然后做各种测试和代码追踪:用完想要关闭它时,拉出它的STOP类想要运行时,发现这个类里赫然 ...

  4. 转自52 梦回凉亭的她 Java常见问题,面试题

    收集整理分享# 相关概念## 面向对象的三个特征封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象.## 多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不 ...

  5. java类型生命周期

    开始阶段 装载:把二进制形式的java类型读入jvm中. 1)通过该类型的完全限定名,产生一个代表该类型的二进制数据流:2)解析这个二进制数据流为方法区内的内部数据结构:3)创建一个表示该类型的jav ...

  6. Java线程的周期及五种状态

    线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌握了 ...

  7. java对象生命周期概述复习

    最近看了下java对象的生命周期做个笔记复习复习,很多不同的原因会使一个java类被初始化,可能造成类初始化的操作: 1)  创建一个java类的实例对象. 2)  调用一个java类中的静态方法. ...

  8. Java 线程生命周期

    |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此 ...

  9. Java常见问题分析(内存溢出、内存泄露、线程阻塞等)

    Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代.老年代.持久代) 1.3 GC分类 1.4 GC过程 Java应用内存问题分析 2.1 Java内存划分 2.2 J ...

随机推荐

  1. 移植ffmpeg到VC环境心得

    所有想学习ffmpeg的网友有福了,大名鼎鼎的ffmpeg,移植到Windows的VC6版本全部开源,编译环境为VC6+SP5+VCPP5.别忘记了顶贴哦. 移植ffmpeg到windows,主要的修 ...

  2. 安卓MP3播放器开发实例(1)之音乐列表界面

    学习安卓开发有一年了,想想这一年的努力,确实也收获了不少.也找到了比較如意的工作. 今天准备分享一个以前在初学阶段练习的一个项目.通过这个项目我真正的找到了开发安卓软件的感觉,从此逐渐步入安卓开发的正 ...

  3. stm32 ARM中的RO、RW和ZI DATA

    一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将 ...

  4. IOS获取来电去电来电归属系统通知达到效果(一)

    这里的原理是获得到呼叫系统通知,然后根据本地呼叫电话号码,相应的电话联系. 一世.   来电显示是不是在地址簿中的联系人, 这是当第一个加入一个临时的联系人在您的电话簿(它是创建一个新的接触,并保存相 ...

  5. 线段树 [成段更新] HDU 1698 Just a Hook

    成段更新,需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候. 此处建议在纸上模拟一遍. Problem Descript ...

  6. SE 2014年5月6日

    如图配置: 三台交换机两两相连接,构成一二层环路,同时为了保证链路的较为可靠,使用双线链接 请用自己的语言描述以上拓扑搭建的优劣势:并使用哪些技术较为合理,请描述并实施 SW3为接入层交换机,下链接三 ...

  7. malformed or corrupted AST file。。。module file out of date&#39;

    今天打开了曾经用的一个项目,(曾经的程序是对的)弹出了两个红框 malformed or corrupted AST file...module file out of date'. 这种结构. 解决 ...

  8. C++ STL源代码学习之算法篇

    ///因为篇幅太长,因此,删去了非常多接口,仅仅分析了内部实现,算法对迭代器的要求也被删去 /// search. template <class _ForwardIter1, class _F ...

  9. 如何通过shell脚本操作MongoDB

    通过shell脚本对MongoDB进行自动化操作 运行写好的 ./show.sh 脚本 发现能够建立mongo链接 #!/bin/sh mongo WordPress --eval "sho ...

  10. SharePoint采用BCS开发第一个应用程序(两)

    SharePoint采用BCS开发第一个应用程序(两) 创建外部数据源 在本章中,我们使用AdventureWorksLT2008 SQL Server数据库作为外部数据源.下图显示了表SalesLT ...