要想通过java面试,怎么能少得了平时的面试题积累!多积累一些,就能提高面试的命中率,那么下面我们就给大家分享一些关于java中高级面试题及答案给大家参考!
一、wait和sleep的区别是什么?
1、sleep()方法是属于Thread类中的,而wait()方法,则是属于Object类中的。
2、sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。所以在调用sleep()方法的过程中,线程不会释放对象锁。
3、调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。
二、数组在内存中如何分配?
1、简单的值类型的数组,每个数组成员是一个引用(指针),引用到栈上的空间(因为值类型变量的内存分配在栈上)
2、引用类型,类类型的数组,每个数组成员仍是一个引用(指针),引用到堆上的空间(因为类的实例的内存分配在堆上)
三、mybatis如何处理结果集?
MyBatis的结果集是通过反射来实现的。并不是通过get/set方法。在实体类中无论是否定义get/set()方法,都是可以接收到的。
四、接口有什么用?
1、通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
2、通过接口可以指明多个类需要实现的方法。
3、通过接口可以了解对象的交互界面,而不需了解对象所对应的类。另:Java是单继承,接口可以使其实现多继承的功能。
五、memcache的分布式原理是什么?
memcached 虽然称为 “ 分布式 ” 缓存服务器,但服务器端并没有 “ 分布式 ” 功能。每个服务器都是完全独立和隔离的服务。memcached 的分布式,则是完全由客户端程序库实现的。这种分布式是 memcached 的最大特点。
这些都是java中高级面试题,大家可以将其收藏,有空研究一下增加自己的相关知识,提高面试通过率!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。
推荐阅读: