java面试题 14 -20

来源:互联网 发布:mac怎么看系统版本号 编辑:程序博客网 时间:2024/04/29 07:41

14、Integer与 int的区别

int 是 是java提供的8种原始数据类型之一,Java为每个原始类型提供了封装类,Integer 是java为int提供的封装类,int的默认值为0,integer的默认值为null 。integer可以区分为负值和赋值为0的情况,而int无法区分这种情况。例如 ,要想表达出没有参加考试和考试成绩为0的区别只能用integer。

在 jsp中 ,integer 的默认为null,所以用el表达式在文本框显示时,值为空白字符串。int默认为0,所以用el表达式在文本框显示时,值为0.所以int不适合作为web层的表单数据类型。

在Hibernate中,如果将OID定义为integer类型,那么Hibernate就可以根据其值是否为null,来判断这个对象是否是临时的,如果将OID定义为int类型,还需要再hbm映射文件中设置unsaved-value的属性为0.

另外,Integer提供类多个与整数相关的操作方法,例如:将一个字符串转化为整数,integer还定义了表示整数最大值和最小值的常量。

15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

 Math 类中提供了三个与取整相关的方法,ceil ,floor ,round 分别表示向上取整,向下取整和四舍五入。round 的取整和 floor(X+0.5)相同。

 所及 Math.round(11.5) = 12 Math.round(-11.5) = -11

16 .下面的代码有什么不妥之处?

1. if(username.equals(“zxx”)){}
2. int x = 1;
return x==1?true:false;


1.比较的时候,最好把可能为null放后面,否则可能会报错。

2. x==1 本来就是boolean类型 后面都是多余的。 


17. 请说出作用域 public,private,protected,以及不写时的区别

 private 作用域 为当前类,不写 (friendly) 作用域为 当前类,同一个package

 protected 作用域为 当前类 ,同一个package ,子孙类  public 作用域 为 当前类,同一个 package ,子孙类,其他package

18.Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型?

 1.Overload 重载表示同一个类型中可以有多个名称相同的方法,但这些方法的参数列表各不相同。(即参数个数或类型不同。)

 Override 重写表示子类中的方法可以与父类中的方法名称和参数完全相同,通过子类创建的实例对象来调用这个方法是,将调用子类中的定义方法,相当于将父类中的那个完全相同的方法给覆盖了。这也是面对对象编程的多态性的一种表现。

子类覆盖父类的方法时,只能比父类抛出更少的异常,或者抛出父类抛出的异常的子异常,因为子类可以解决父类的问题,不能比父类有更多的问题。

子类的访问权限只能比父类的更大,不能更小。如果父类发热方法是private类型,那么子类则不存在覆盖的限制,相当于子类中增加一个全新的方法。

2.①如果几个重载的方法的参数列表不一样,他们的返回值类型可以不一样。

   ②如果两个方法的参数列表完全一样不能通过让他们他们的返回值不同实现重载 ,因为调用一个方法是可以不关心返回结果。java不知道你想调用哪个方法。

19.jdk 中哪些类是不能继承的?

 用final 关键字修饰的类 都不能继承 例如 System,String,StringBuffer。

20.在eclipse 中调试时,怎样查看一个变量的值。

 加断点,debug起来选中变量,右键选debug as -》Java Application 打开debug透视图,在Variables界面就能看到当前变量的值了。

0 0
原创粉丝点击