面试 -- 基础篇 -- JAVA基础


1. final, finally, finalize 的区别

final 可以用来修饰类,变量,方法。final 类不可以被继承;final 变量必须初始化,且不可以再修改;final 方法不可以被覆盖重写; 同时final 和 static 结合起来修饰变量,即为常量。

finally 是 异常处理语句(try catch ) 的一部分,表示不论是否有异常,都会执行 finally 的代码。常用作IO资源的关闭。

finalize 是 Object 类的一个方法,在垃圾搜集器清除这个对象的时候总会回调此方法。可以在其中整理系统资源或者关闭文件资源等。

2. int 和 Integer 的区别

Integer是int的包装类,int 是java的一种基本数据类型。

Integer的默认值为null, int的默认值为0。

Integer必须实例化后才能使用,而int不需要。

Integer变量实际上是对一个Integer对象的引用,通过new出来的任意两个Integer对象都不想等(因为地址不同)。

Integer与int进行比较,只要值相等,则为true。(因为在比较时会对Integer进行拆包装,实际上比较的是两个int)

非new生成的Integer对象与new Integer 对象,是不相等的。(因为 非new生成的Integer对象指向常量池中的对象,而new出来的对象是java堆中的对象)

两个非new生成的Integer对象,如果值在 -128 ~ 127 之间是相等的,否则不等。JAVA对值在-128 ~ 127 的Integer有缓存策略,用来节省内存和提高性能(对象重用),所以非new生成的 -128 ~ 127Integer对象都是Integer常量池中的。

Integer缓存请参考  Integer缓存池(IntegerCache)及整型缓存池

3. 什么是标记接口(Marker interface)?

标记接口是一个不含任何成员变量和成员方法的空接口,它用来表示特殊的目的。

Serializable:该类可以被序列化。

RandomAccess:JDK4,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值