Java面试题汇总

Java面试题汇总

1.long(8)与float(4)的取值范围谁大谁小
回答:float的计算方式与long类型不一样
float=(-1)s*M*2E,E的取值范围可以取到127
long的最大值为2^63-1,float的指数比long大,所以float的取值范围大。

s是符号位,E是指数位,M是值
float类型计算方法为:M2^E
M可取值带入
E指数的取值范围为0~255,根据IEEE 754规定 0表示0,255表示无穷大,因此还有1~254可用,共254个数可用,因此取值范围为-127到127为E的取值范围
long的取值为M
2^63
float的取值为M*2^127
因为float的指数大于long的指数所以float的取值范围大
在这里插入图片描述
2.Java语言中的字符char可以存储一个中文汉字吗?为什么?
可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占用两个字节,utf-8编码是unicode中的一种编码,所以,java中的字符可以存储一个中文汉字
3.看下面的程序是否有问题,如果有问题,请指出并说明理由?
short s=1;s=s+1;
short s=1;s+=1;
s=s+1不能把int转成short,需要强制类型转换s=(short)(s+1);
s+=1;自动帮强制类型转换
总结:扩展运算符会帮忙自动进行强制类型转换。
4.请自己实现两个整数变量的交换(不需要定义第三方变量)
考点:位异或运算符特点:
^的特点:一个数据对另一个数据位异或两次,该数本身不变
int x=1;
int y=2;
x=x^y;// x=1^2
y=x^y;//y=1 ^2 ^2=1
x=x^y;//y=1 ^2 ^1=2
System.out.println(“x=”+x);
System.out.println(“y=”+y);
运行结果:x=2
y=1

5.最有效率的算出2*8的结果
2*2^3
System.out.println(2<<3);
6.byte可以作为switch的表达式吗
可以
7.long可以作为switch的表达式吗
可以
8.String可以作为switch的表达式吗
可以,但是必须jdk1.7以后支持
9.return和break以及continue的区别?
return是结束方法,return后面的代码都不执行
break是跳出循环,循环外面的代码还是会执行
continue是终止本次循环继续下个循环
break和continue只能用在循环结构语句中
return ,不仅可以用在循环结构中,也可以用在循环结构外
10.java中到底是传值还是传地址
1).既是传值也是传地址。基本数据类型传递的是值,引用数据类型传递的是地址
2).java中只有传值,因为地址值也是值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值