java中最常见的面试问题<1>

1.switch语句能否作用在byte上,能否作用在long,能否作用在String上:

        在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型

由于byte  short  char都可以隐含转换为int,所以,这些类型以及这些类型的包装类也是可以的,显然,long   String类型是

不符合switch的语法规定.

2.short s1=1; s1 =  s1+1;有什么错? short s1=1; s1+=1; 有什么错?

       对于short s1=1; s1=s1+1;  由于s1=s1+1运算时会自动提升表达式的类型,所以结果是int类型,在赋值给short类型s1

时,编译器将会报告需要强制转换类型错误.

       对于short s1=1; s1+=1;  由于+=是java语言规定的运算符,java编译器会对他进行特殊处理,因此可以正确编译.

3.char型变量中能不能存储一个中文汉字?为什么?

       char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以是可以的,不过呢,如果某个特殊

的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊的汉字.

       补充说明,unicode编码占用两个字节,所以,char类型的变量也是占用.

4.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

       指的是引用的变量不能变,引用变量所指向的对象中的内容还是可以变的,例如:

       final StringBuffer a = new StringBuffer("immutable");
        a = new StringBuffer("");  //编译报错
        a.append("broken");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值