当前位置: 首页 > 面试经验 >

阿里一面凉经 | 4.6

优质
小牛编辑
134浏览
2023-04-06

阿里一面凉经 | 4.6

面试形式:电话面,时长50min

主要内容:Java 相关、项目相关、开放性个人问题、逻辑题、反问

Java相关

  • 自我介绍
  • Java 关键字, final
  • 补充问场景: 一个声明为 final 的 ArrayList 对象是否还可以进行 add、remove 操作? (是可以的但是不能进行重新赋值)
  • 如果要将其设置为不能进行add、remove要怎么做(不太会)
  • 结束后进行查询:
  • 要将一个声明为 final 的 ArrayList 对象设置为不能进行 add、remove 操作,
  • 可以使用 Collections 类的 unmodifiableList() 方法来实现。该方法返回一个只读的 List,无法进行修改操作,包括 add、remove 操作。
  • Collections.unmodifiableList() 方法创建的一个只读的readOnlyList。最后尝试在 readOnlyList 上进行 add、remove 操作,结果都会抛出 UnsupportedOperationException 异常。
  • 如何实现深拷贝?(序列化、反序列化)
  • serializable 接口的意义(就是一个标记接口,来标记类是否可以被序列化)
  • 若 对象中一个属性 不想被序列化 可以使用什么关键字:(transient )
  • 还有什么?(想不起来了)
  • 可以使用 static 关键字来控制属性的序列化。被 static 修饰的属性不会被序列化,因为 static 属性属于类级别,不属于对象级别。因此,即使对象被序列化为字节流,static 属性也不会被包含在内。
  • HahsMap原理以及扩容机制
  • 线程池线程池核心参数:
  • 补充场景题:线程池设计核心线程5个,最大线程20,任务队列长度40,请问当任务数小于任务队列长度,大于核心线程数时,是直接创建非核心线程进行执行,还是加入任务队列?为什么?
  • ThreadLocal 是什么?用来干什么?
  • 补充场景题:若一个耦合很强的类中有几个方法在创建的时候漏了几个参数?可以怎么通过不修改原方法的前提下进行补救?
  • (答得是 方法重载;但是面试官说,这虽然是一种方法,但是因为方法所在耦合度高,因此可能涉及大量的类都要进行修改,所以不是很建议 )
  • 建议对漏掉的参数设置到 一个ThreadLocal 对象中:在方法中将要传递的参数设置到ThreadLocal对象中。可以使用set()方法设置参数值。在需要访问参数的方法中,从ThreadLocal对象中获取参数值。可以使用get()方法获取参数值。在使用ThreadLocal时应该在使用完毕后调用remove()方法来清除ThreadLocal中的值,避免内存泄漏。
  • 说一说乐观锁?说一说CAS?CAS在Java中的运用?说一说原子类?
  • sleep 与 wait 的区别?阻塞线程怎么唤醒?
  • StringBuilder、StringBuffer

项目相关:

  • 简要介绍项目?
  • 开发项目时是如何规划的?
  • 优化的点 ......
  • 做项目的出发点?
  • 意义?项目难点与解决?
  • 小插曲:
  • 中间穿插问了一个『秒杀 』场景的设计,
  • 因为做的是『 论坛类型』项目,也没有想到会问「秒杀」,属于是“猝不及防”:
  • 假如你的论坛里要做一个秒杀抢票的模块,怎么设计?
  • 怎么解决超买超卖?
  • 怎么解决下单未付款?
  • ....因为确实没怎么准备这个,所以其实就是根据自己的理解去说了一下思路,orz...

开放性问题:

  • 自动化专业与软件开发
  • 如何学习Java?
  • 你导师与同学对你的评价?

逻辑题:

  • 3点15分 时,钟表指针与分针的夹角

反问:

  • 对学习的建议
  • 评价
  • 流程

总体感受:

其实面试官总体还不错,除了猝不及防的『 秒杀』,其他的感觉答得其实不算太差,面试官也很耐心引导,总体感觉还好,不管怎样也算是积累经验了。

写完这篇面经时再去官网查看状态,已经 红××了,还没到俩小时啊.....

哎,继续加油吧。

#我的实习求职记录##春招##面经##阿里##实习#
 类似资料: