赞
踩
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当中有哪些锁?公平锁/非公平锁、互斥锁/读写锁、乐观锁/悲观锁、自旋锁)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。