A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huburt 中级黑马   /  2016-5-23 20:50  /  938 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面试题1:看下面的程序是否有问题,如果有问题,请指出并说明理由。
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;

答:从两方面去回答这个题
    b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
    byte类型的变量在进行运算的时候,会自动类型提升为int类型

byte b4 = 3 + 4;

    3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了

面试题2:看下面的程序是否有问题,如果有问题,请指出并说明理由。
short s=1;s = s+1;
     出错,1是int类型的,所以右边s+1也是int类型的,不能赋给short类型,需要强转;

short s=1;s+=1;
     正确,s+=1 底层是 s=(short)s+1;

面试题3: 两个整数变量的交换,不使用第三方变量
第一种方法:
  1.    x = x+y;
  2.    y = x-y;     //弊端:可能超出int取值范围
  3.    x = x-y;  
复制代码

第二种方法:
  1.    x = x^y;
  2.    y=x^y;
  3.    x=x^y;
  4. //^的特点:一个数据对另一个数据位异或两次,该数本身不变。
复制代码


面试题4: switch支持的数据类型?
   switch可以支持:byte,short,int,long,  JDK7新增了 枚举 和 String

4 个回复

倒序浏览
这是什么面试题啊
回复 使用道具 举报
这个不会考吧。。。感觉
回复 使用道具 举报
不明觉厉  先收藏了
回复 使用道具 举报
long你妹啊,没有long有char
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马