Java面试宝典每日更新三

11、"=="和equals方法究竟有什么区别?

他们的区别主要存在在引用数据类型上

==为比较两侧的对象是否同一对象,是用内存地址来比较的

 

equals是对象的方法,默认是用内存地址比较,重写后,主要是用来比较两侧的对象的值是否相同,和equals方法中的实现有关

==是运算符,可以两侧都为null,但equals左侧的引用指向的对象不能空,不然有NullPointerException

 

除非需要比较两个引用指向的对象是同一对象,一般都使用equals方法进行比较。尤其是String之类的值对象,另外,常量尽量放在比较的左侧

12、静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

13、是否可以从一个static方法内部发出对非static方法的调用?

不可以。非static方法即实例对象方法,是属于某个对象的,必须在对象被创建后才能被调用,成员方法的内部其实隐藏着一个this引用;而static方法是属于类对象的,不属于实例对象,因此static方法在执行时,不能获得当前对象的this引用,从而不能直接调用实例对象的方法。

14、Integer与int的区别

int是java提供的8种原始数据类型之一,占用4个字节,直接存值;

Integer是引用数据类型,是int的封装类。

1. 默认值:int的默认值为0,Integer的默认值为null。例如考试成绩为0,表示参加了考试,但成绩为0分,但null意味未参加考试。

2. JSP开发中,Integer的默认值为null,在EL表达式时,文本框显示的值为空白;如果使用int默认值为0,文本框显示的值是0。int不适合在展示层使用。

3. 在Hibernate中,如果将自增ID字段设置成Integer类型,如果值为null,则表示临时对象,保存时,会自动升成ID值。而使用int类型,则需要在hbm映射文件中,设置unsaved-value属性的值为0。

4. Integer提供了许多跟整数运算相关的操作方法,例如与字符串的转换,还定了一些整数的最大值和最小值的转换。

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

Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。


Math类提供了三个与取整有关的方法:ceil、floor、round

方法名^英文意思^功能^示例

ceil^天花板^向上取整^ceil(11.5)=12; ceil(-11.5)=-11

floor^地板^向下取整^floor(11.5)=11;  cell(-11.5)=-12

round^圆形^四舍五入^Round(11.5)=12; round(-11.5)=-11

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 12,140评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 8,718评论 1 2
  • 双胎妊娠有家族遗传倾向,随母系遗传。有研究表明,如果孕妇本人是双胎之一,她生双胎的机率为1/58;若孕妇的父亲或母...
    邺水芙蓉hibiscus阅读 9,069评论 0 2
  • 晴天,拥抱阳光,拥抱你。雨天,想念雨滴,想念你。 我可以喜欢你吗可以啊 我还可以喜欢你吗可以,可是你要知道我们不可...
    露薇霜凝阅读 5,002评论 1 2