2019-09-07

1. 谈谈final, finally, finalize的区别

finalfinallyfinalize
是修饰符在try catch中和switch中使用是一个方法,在垃圾收集器将对象从内存中清除出去之前做必要的清理工作
修饰变量或方法:可以保证它们在使用中不被改变。变量被修饰必须赋予初值,方法不能被重载。
修饰类:不能被继承,所以一个类不能和abstract同时使用

2. HashMap和Hashtable的区别

都是Map接口的类,都是以键值对的形式存储

HashMapHashtable
无序的无序的
允许一个 null 键和多个 null 值不允许 null 键和 null 值
是Map的异步实现,是线程不安全的是Map的同步实现,所以是线程安全的

3.String s = new String(“xyz”);创建了几个String Object?

两个对象,一个是new String的时候创建的对象,一个是String s的时候创建的对象,后一个对象会指向前一个对象

4. sleep() 和 wait() 有什么区别?

sleepwait
出身sleep方法属于Thread类中的静态方法wait属于Object的成员方法
定义让某个线程停止一段时间wait()是线程交互时,如果某个对象调用了wait(),则该线程就会被暂停
唤醒时间到了之后不一定会马上进入运行状态,其他线程可能正在运行,恢复线程需要点时间一旦一个对象调用了wait方法,必须要采用notify()和notifyAll()方法唤醒该线程

共同点:在sleep/wait的过程中有可能被其他对象调用它的interrupt(),产生InterruptedException异常,如果你的程序不捕获这个异常,线程就会异常终止,进入TERMINATED结束状态,如果你的程序捕获了这个异常,那么程序就会继续执行catch语句块(可能还有finally语句块)以及以后的代码。

5.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1 错误,因为s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值