• java程序员面试应该具备的一些基本技能


    这里列举一些Java程序员面试应该要具备的一些基本技能,仅当参考。

    1.基本语法

    包括static、final、transient等关键字的作用,foreach循环的原理等等。越简单的问题越能看出一个人的水平,别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的,切记。

    2.集合

    非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。

    3.设计模式

    面试中关于设计模式的问答主要是三个方向:你的项目中用到了哪些设计模式,如何使用;知道常用设计模式的优缺点;能画出常用设计模式的UML图。

    4.多线程

    这也是必问的一块了。问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的,出乎意料地,几次面试几乎都被同时问到了一个问题,问法不尽相同,总结起来是这么一个意思:

    假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?你对这个问题是否有答案呢?不难,java.util.concurrent下就有现成的类可以使用。

    另外,线程池也是比较常问的一块,常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?实际一些的,会给你一些具体的场景,让你回答这种场景该使用什么样的线程池比较合适。

    最后,虽然这次面试问得不多,但是多线程同步、锁这块也是重点。synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等...

    5.框架

    一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。

    6.数据库

    数据库十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了,比较重要的就是数据库性能的优化,如果对于数据库的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。

    7.数据结构和算法分析

    数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。

    8.Java虚拟机

    谈谈Java虚拟机中比较重要的内容:Java虚拟机的内存布局、GC算法及几种垃圾收集器、类加载机制,也就是双亲委派模型、Java内存模型、happens-before规则、volatile关键字使用规则。也许面试无用,但在走向大牛的路上,不可不会。

    9.Web方面的一些问题

    现在的Java主要面向Web端,因此Web的一些问题也是必问的。我碰到过问得最多的两个问题是:谈谈分布式Session的几种实现方式、讲一下Session和Cookie的区别和联系以及Session的实现原理。

    这两个问题之外,web.xml里面的内容是重点,Filter、Servlet、Listener,不说对它们的实现原理一清二楚吧,至少能对它们的使用知根知底。另外,一些细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都可能会被考察到。

    "错过了太阳的时候,请你不要哭泣,因为如果你哭了,就会错失接下来的月亮和漫天星辰。"

  • 相关阅读:
    0302 随想
    1231递归下降语法分析程序设计
    《构建之法》1、2、3章读后感
    复利计算总结
    操作系统实验0
    学习进度条
    0302思考并回答一些问题
    评论
    c语言文法
    词法分析
  • 原文地址:https://www.cnblogs.com/yanggb/p/11043915.html
Copyright © 2020-2023  润新知