mo9 2年java面试总结

mo9是一家做数字货币交易所的公司,在4月份的时候自己去mo9参加了java开发的面试。mo9的面试更加注重基础,问了很多java基础方面的知识。下面将面试的一些问题做个记录,以供大家参考。

在面试的过程中,面试官会根据你的回答来不断的深入问你,来考察你对知识理解的深度。

java基础相关问题

  1. String s1= ‘abc’ 和 String s2 = new String(‘abc’);共创建了几个对象,两种写法有什么区别。
  2. 然后又聊到怎么判断两个对象相等,equals和hashcode的区别和用法。
  3. 根据hashcode又拓展到了hashmap,问了关于hashmap的一些特性和put方法、扩容、重新序列化等关键操作的具体实现。如果key是null的时候,put会是什么样的操作。jdk1.7和jdk1.8中hashmap的一些变化,1.8版本的hashmap会涉及到红黑树。

多线程

  1. 如何实现线程安全的hashmap?
  2. synchronized和lock的区别?lock常见的一些实现,重入锁的使用的实现方式。
  3. java里面实现线程的方式有哪几种?
  4. Thread中run方法和start方法的区别?怎么停止一个线程,Thread类中各个api的用法,常用的四种线程池有哪些?
  5. 生产者消费者有哪些实现方式。
    使用wait和notify怎么实现,使用阻塞队列实现生产者消费者,使用lock和condition实现生产者消费者等。
  6. wait和notify为什么必须要在synchronized中写呢,实现原理?
  7. 悲观锁和乐观锁。乐观锁优化,比如账户中只有100元,分别在3个不同的商家中购买了3种不同的商品,每个商品40元,需要同时扣款,怎么样可以做到效率最高。

jvm

类加载器和类加载机制。

java框架类

Spring的AOP的实现原理?jdk动态代理和cglib动态代理的区别?

数据库

  1. 事务的隔离级别
  2. 事务的传播机制

自己在多线程这块有些欠缺,有些问题不太懂,然后答得也不太好,基本是没戏了。在面试完后,得知面试官比我大一届,同时也给我许多建议。
他让我注重基础,多去想一些底层的东西的实现原理。而不是去关心一些新技术,去写一些框架的demo,这样的话对自己提升其实是没太多用处的。特别感谢面试官大哥对我一些建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值