写点什么

Java 大神需要掌握的技术,java 开发技术教程,字节大牛教你手撕 Java 学习

用户头像
极客开源
关注
发布于: 刚刚

阿里巴巴 Java 岗面试题分享

1.HashMap 的内部结构?内部原理?和 HashTable 的区别,假如发?了 hash 碰撞,如何设计能让遍历效率??


2.讲一讲讲讲 ConcurrentHashMap 吧。


3.讲一下 JVM 虚拟机内存结构,以及它们的作?。


4.讲讲 JVM 的类加载过程 &&双亲委派模型。


5.谈谈 Java 的垃圾回收算法。


6.谈谈 Java 垃圾回收的触发条件。


7.synchronized 和 Lock 的区别。


8.volatile 的作?,为什么会出现变量读取不?致的情况,与 synchronized 的区别?


9.++i 在多线程环境下是否存在问题,怎么解决?


10.讲一讲 Thread.sleep() 和 Thread.yield() 区别?


11.讲讲常?的容器类?


12.如何去除 ArrayList 的重复元素?


  • 直接采? HashSet 即可。作为它的参数,然后再 addAll。但这种?式不能保证原来的顺序,如果要求顺序,可以使? LinkedHashSet 即可。


13.讲讲 Java 的泛型擦除,泛型主要是为了解决什么问题?如何?泛型做 Json 的解析的?


14.谈谈 Java 的 Error 和 Exception 的区别联系。


  • Error 和 Exception 均集成? Throwable,但 Error ?般指的是和虚拟机相关的问题,?如系统崩溃,虚拟机错误,OOM 等,遇到这样的错误,程序应该被终?。? Exception 表示程序可以处理的异常,可以捕获并且可能恢复。


15.说一下软引?和弱引?的区别?


16.成员变量和静态?法可以被重写么?重写的规则是怎样的?


17.内部类访问局部变量的时候,为什么变量必须加上 fifinal 修饰符?


  • 因为?命周期不同。


18.什么情况会造成内存泄漏?


19.什么是线程死锁,如何解决?


20.十亿条淘宝购买记录,怎么获取出现最多的前十个 ?


  • 这是一道典型的有限内存的海量数据处理的题目。一般这类题目的解答无非是以下几种:

  • 分治,hash 映射,堆排序,双层桶划分,Bloom Filter,bitmap,数据库索引,mapreduce 等。

  • 具体情形都有很多不同的方案。这类题目可以到网上搜索一下,了解下套路,后面就基本都会了。


21.说一下 Innodb 和 MySIAM 的区别


22.说一下 jvm 内存模型,介绍一下你了解的垃圾收集器


  • 其实并没有 jvm 内存模型的概念。应该是 Java 内存模型或者 jvm 内存结构,这里面试者一定要听清楚问的是哪个,再回答。


23.如何访问链表中间节点


  • 对于这个问题,我们首先能够想到的就是先遍历一遍整个的链表,然后计算出链表的长度,进而遍历第二遍找出中间位置的数据。这种方式非常简单。

  • 若题目要求只能遍历一次链表,那又当如何解决问题?

  • 可以采取建立两个指针,一个指针一次遍历两个节点,另一个节点一次遍历一个节点,当快指针遍历到空节点时,慢指针指向的位置为链表的中间位置,这种解决问题的方法称为快慢指针方法。


23.HR 问


  • 从技术角度来说,你觉得你跟前同事比怎么样?

  • 说一下自己的个人优势。

  • 工作中觉得哪方面欠缺?

  • 为什么想来阿里?阿里的什么方面吸引了你?

读者福利

分享一份自己整理好的 Java 面试手册,还有一些面试题 pdf


不要停下自己学习的脚步




本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

极客开源

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java大神需要掌握的技术,java开发技术教程,字节大牛教你手撕Java学习