一段有趣的代码

今天一个同事说他遇到了意见很有趣的代码,说JVM出现问题了,代码如下:

public class Test {
    public static void main(String[] args) {
       int i=40;
       int j=040;
       System.out.println(i==j);
    }
}

打印结果是false

猛一看 是挺奇怪的 怎么可能出现这种情况,40和040肯定是相同的哇,于是我将i和j的值一并打印出来

代码如下:

public class Test {
    public static void main(String[] args) {
       int i=40;
       int j=040;
       System.out.println(i==j);
       System.out.println(i);
       System.out.println(j);
    }
}

运行结果如下

false
40
32
于是乎 恍然大悟 原来是JVM里面已0开头的是八进制的数据,两个值当然不同了,看来细节还是灰常重要的,另外我们写程序也真的需要注意规范,不要瞎胡加一些东西,有时候会出现一些奇怪的问题!

不过也蛮好,下次也会多注意点,呵呵!

时间: 2024-10-19 07:47:49

一段有趣的代码的相关文章

关于线程的synchronized,wait,sleep,notify的一段有趣的代码

首先进入正题,来看代码: public class MultiThread { public static void main(String[] args) { new Thread (new Thread1()).start(); try{ Thread.sleep(10); }catch(InterruptedException e){ e.printStackTrace(); } new Thread(new Thread2()).start(); } private static cla

实在忍不住了,发一段神级代码,大家瞻仰瞻仰

跟这样的函数比起来,顿觉日月无光,天昏地暗,飞沙走石! 完全一派末日景象啊! 另外命名什么的就先无视吧……跟这么强大的封装比起来,命名算个屁啊! ----说下背景吧-------------- 上述代码是我强调了多次,MVC必须要用Model,然后要注意封装,结果这姐姐(工作2年多了都)就封装成这个德行了 -------------------- 同样一个函数,既能返回一个对象,还能返回这个对象中的某个属性啊服了工作这么多年第一次见这样的神级代码 .到处new,new你妹啊new! ------

c#实现每隔一段时间执行代码(多线程)

总结以下三种方法,实现c#每隔一段时间执行代码: 方法一:调用线程执行方法,在方法中实现死循环,每个循环Sleep设定时间: 方法二:使用System.Timers.Timer类: 方法三:使用System.Threading.Timer: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

一段有趣的函数

#include<iostream> using namespace std; void a(){ cout<<"a\n"; } void b(){ cout<<"b\n"; } int c(int* val){ cout<<"c "<<val<<" "<<*val<<endl; return *val; } void main()

Web开发者的福利 30段超实用CSS代码

1.花式连字符(&) 这个类应该在span元素里使用,并且里面包括&字符.它使用经典的serif字体和斜体来增强&符号. .amp { font-family: Baskerville, 'Goudy Old Style', Palatino, 'Book Antiqua', serif; font-style: italic; font-weight: normal;} 2.段落首字符下沉 通常,这种效果会出现在印刷媒体上,如报纸或书籍.同样,如果网页布局合理,它也可以使用在We

php中禁止单个ip与ip段访问的代码小结

1.禁止单个IP <?php //IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown

一段简单的代码告诉你什么叫内存溢出

#include <stdio.h> int FooArray[4] = {1, 1, 1, 1}; int VeryImportantValue = 7; void main() { printf("%d\n", VeryImportantValue); for (int i = 0; i <= 4; i++) { FooArray[i] = 4; } printf("%d\n", VeryImportantValue); } 这是个很简单的内存

js正则实现从一段复杂html代码字符串中匹配并处理特定信息

js正则实现从一段复杂html代码字符串中匹配并处理特定信息 问题: 现在要从一个复杂的html代码字符串(包含各种html标签,数字.中文等信息)中找到某一段特别的信息(被一对“|”包裹着),并对他进行加粗.加下滑线处理. 解决思路: 1.用正则匹配“|”出现的次数,处理刚好出现2次的(html字符串中一般不会含有这个字符) 2.使用正则分组,获取“|”之间的内容,并进行替换(添加样式) 代码: function specialDeal(){ htmlStr = htmlStr.replace

给大家分享一段启动模式代码

============问题描述============ 给大家分享一段启动模式的代码 @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressWarnings("unused") @Override public void onCreate() { if (Config.DEVELOPER_MODE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBRE