挖财Java岗社招面试经历
1、先是简单自我介绍,然后是谈最近的项目。
2、然后聊一些JAVA基础的东西,会问的比较细节,比如java实现同步的几种方式,各自的优缺点;说几个常用的设计模式;
3、java GC过程?
答:
(1)新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC,将存活的对象放入另一个survivor区中,然后清空Eden和之前的那个survivor区的内存。在某次GC过程中,如果发现仍然又放不下的对象,就将这些对象放入老年代内存里去。
(2)大对象以及长期存活的对象直接进入老年区。
(3)当每次执行minor GC的时候应该对要晋升到老年代的对象进行分析,如果这些马上要到老年区的老年对象的大小超过了老年区的剩余大小,那么执行一次Full GC以尽可能地获得老年区的空间。 从GC Roots搜索不到,而且经过一次标记清理之后仍没有复活的对象。 新生代:复制清理; 老年代:标记-清除和标记-压缩算法; 永久代:存放Java中的类和加载类的类加载器本身。
4、JDK里用到装饰模式的地方。
答:Java 的IO库。
5、有大数据操作经验吗?
6、为什么要使用静态方法?修饰符有哪些、他们的作用域是什么样的?
7、redis用过吗,用来做什么?
8、缓存是怎么放进去的,怎么取出来的?
#挖财##社招##Java工程师##面经#