java求职面试指南

1.Object的常用方法(回答至少6个)
clone()
notify()、notifyAll()
equals()、hashCode()
toString()
wait()
finalize()

2.String和StringBuffer的区别
1)String类被final修饰,不可重写
2)StringBuffer是一个长度可变线程安全执行速度比String类快,也因为线程安全,损失了一定性能,因此StringBuilder的执行效率又比StringBuffer高。

3.Vector,ArrayList, LinkedList 的区别
1)Vector和ArrayList的底层实现都为数组,LinkedList为链表。
2)Vector线程安全,其他两个线程不安全(什么是线程安全?在并发环境下,能够正确处理多个线程之间的共享变量)。
3)Vector的插入、删除效率高,ArrayLIst和LinkedList的查找效率高。
4)Vector在容器满后,自动扩充100%,ArrayList在容器满后扩充50%,因此ArrayList更加节省空间。

4.HashTable, HashMap,ConcurrentHashMap区别
1)HashTable线程同步,key、value均不允许为空(一个桌上上不能没有东西,即不能没有key和value);HashMap非线程同步,key、value均可以为空。(什么是线程同步?当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作)
2)

5.Equals()和HashCode()的作用
equal用来判断两个对象是否相等,HashCode是一个散列码,用来在散列存储结构中确定对象的存储地址。
HashMap和HashSet在存储对象的过程中需要用到它们的地址,而hashCode就是用来做这个的。

equal和hashCode存在默契关系:
1.相等的对象,hashCode一定相等。
2.hashCode相同,这两个对象不一定相同。

6.Sleep()和Wait()区别
1)wait()是Object中的类方法,sleep()是线程Thread类中的一个静态方法。
2)

7.IO和NIO
IO就是输入输出流,而NIO全名是NEW IO在IO的基础上新增了许多特性。
1)IO是面向的,NIO是面向缓冲区的。(javaIO面向流意味着从流中读取一个字节或多个字节,直到读完所有字节,他们没有被缓存到任何地方。)
2)java IO各种流是阻塞的。当一个线程调用read()和write时,该线程被阻塞,直到一些数据被写入,Java NIO采用的非阻塞模式
3)

8.Synchronized 和 Lock 区别和用法
1)Lock更加灵活,且提供公平锁,(java当中有哪些锁?公平锁/非公平锁、互斥锁/读写锁、乐观锁/悲观锁、自旋锁)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值