面试基础题系列(三)java, int最大值问题

先贴出一道最近去某公司的面试题,不知道出自哪里?有哪位见多识广的仁兄可以告知一声,不胜感激!

public class test (
  2. public static void main (String args[]) {
  3. int i = 0xFFFFFFF1;
  4. int j = ~i;
  5.
  6. }
  7. )
  What is the decimal value of j at line 5?
  A. 0
  B. 1
  C. 14
  D. –15
  E. An error at line 3 causes compilation to fail.
  F. An error at line 4 causes compilation to fail.
  Answer: C

选项是英文给我的印象很深,让我一下子穿越到了英语四级的考试现场,让我赶紧画一些关键字~~ 得意


大家是不是开始在草稿纸上算起来了,大家可以先猜猜是什么答案!反正这道题我是选的E、F,题目要求也没有要求是单选。。

结果,结果我就悲剧了,回来立马运行了下面的程序,事实胜于雄辩!


class Test{  
public static void main(String args[]){  
    int i=0xFFFFFFF1;  
    int j=~i;
    int max  = Integer.MAX_VALUE ;  
    int min   = Integer.MIN_VALUE ;  
System.out.println("int   i     value= " +  i +  
                   "         hex value   " + Integer.toHexString(i) );  
System.out.println("int   j     value= " +  j +  
		"          hex value   " + Integer.toHexString(j) );  
System.out.println("Integer.MAX_VALUE= " +Integer.MAX_VALUE +  
                   "  hex value   " + Integer.toHexString(Integer.MAX_VALUE ) );  
System.out.println("Integer.MIN_VALUE= " + Integer.MIN_VALUE +  
                   " hex value   " + Integer.toHexString(Integer.MIN_VALUE ) );  
}  
}  

输出结果:


好了,看到输出的那一刻,才发现我的答案应该是什么了!

Tips:遇到拿不准的问题,最好的解决途径就是上手调试,这样你会马上得到答案!




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值