您的位置:首页 > 职场人生

那些隐藏的比较深的JAVA基本功装逼姿势,要面试的来看看

2016-06-30 22:08 525 查看
float f=3.4;是否正确?
答:不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。


访问修饰符public,private,protected,以及不写(默认)时的区别?
答:

修饰符	当前类	同 包	子 类	其他包
public	√	√	√	√
protected	√	√	√	×
default	√	√	×	×
private	√	×	×	×


按位与		a & b    相同位的两个数字都为1,则为1;若有一个不为1,则为0。
按位或		a | b    相同位只要一个为1即为1。
按位异或	a ^ b    相同位不同则为1,相同则为0
按位取反	~a       内存中的0和1全部取反
左移		a << b   乘a * 2的b次方
带符号右移	a >> b   a除以2的b次方(取整)</span>
无符号右移	a>>> b
是否可以继承String类?
答:String 类是final类,不可以被继承。

补充:继承String本身就是一个错误的行为,对String类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

String s = new String("xyz");创建了几个字符串对象?
答:两个对象,一个是静态区的"xyz",一个是用new创建在堆上的对象。


解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
stack: 通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间
heap: 而通过new关键字和构造器创建的对象放在堆空间
Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: