浦发银行社招面试--java开发工程师(上)

浦发银行面试--java开发工程师

1.自我介绍

基础部分:

2.java集合框架说一下,常见的有哪些?

3.hashMap和ConcurrentHashMap的区别,以及底层的数据结构是什么?对于具体的改变在

哪个版本回答的比较模糊,其他部分回答的还可以,面试官也没有细问HashMap和

ConcerrentHashMap的put和get过程,没有问扩容、缩容等问题,需要重点去关注一下这

部分?

4.因为说ConcurrentHashMap的时候说到了synchronized和ReetrantLock,说一下Synchronized

和ReentrantLock的区别?这部分对synchronized的锁的优化没说上是在哪个具体的版本改

进的?但是区别还是说的比较好?

5.说一下synchronized 的锁升级过程?这部分说回答的也挺好的?

6.说一下CAS?CAS是什么?用来解决什么问题?底层用的是那个类?回答的还可以,但具体细节还有待细化。

7.CAS的使用会有什么问题?怎么解决该问题?ABA问题,原子类里面的AtomicStampedReference可以解决该问题,带一个时间戳,除了当前值和期望值外,还有当前时间戳和预期时间戳。

6.String s = new String("abc"),创建了几个对象,每个对象分别在什么位置?注意分别回答,s

在栈中,new String对象在堆中,常量在1.7之前在永久代中,字符串常量池在永久代中;

在1.7之后,常量abc在堆中,因为字符串常量池在堆中,通过直接指针的方式连接。

7.由于上面问题提到了堆栈,说下jvm内存结构,每一部分的作用是什么?

8.是不是看过深入理解java虚拟机?我说看过一部分,类文件结构没有看完,其他大概看过了,也没有问类加载的问题

9.jvm 调优部分:实际工作中有调过优吗?JVM 参数设置,STS调优经验,这部分回答的不

是太好,因为确实实际工作中用的比较少,但是作为面试,还是要准备一下相关问题

10.工作中用到过多线程吗?用的是哪些线程池?每种线程池有哪些缺陷?底层所使用的的

队列分别是什么?

11.线程池工作原理部分有了解吗?说一下线程池工作原理?

12.CycliBarrier 用来干什么?CycliBarrier的最后命令由那个线程执行?是主线程还是最后一

个到达的线程?是最后一个到达的线程,可以在CyclicBarrier的构造函数中设置最后要执行的代码,在此之前可以打印出来当前线程的线程名称查看;

13.CountDown 有了解过吗?CountDown和CycliBarrier的区别是是什么?在使用上有啥区别?

#浦发银行##面经##社招##java工程师#
全部评论
你是什么时候面的?
点赞 回复
分享
发布于 2021-06-24 12:24

相关推荐

2 24 评论
分享
牛客网
牛客企业服务