zoukankan      html  css  js  c++  java
  • 2016年Java服务器端开发面试总结

          因为一些个人原因,陆陆续续参加了一些校招补招、社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S。下面罗列一些我复习中的要点,如果能以此为一个参考,做好充足的准备,国内BAT这些公司的基础技术笔试和面试应该没什么问题。当然对于一些大公司,基础知识可能不是最被看重的,关键是学习能力,独立解决问题的能力,是否是一个"灵性"的人,我一直觉得我们程序员是在创造一个新的世界。

          当然有一些技术老人,也可以看看这个,当作一个复习点,温故知新。

    Java 常见基础知识面试点:

    • Hashcode()和equals(), 明白背后的原理,包括hashcode()的用法,各自的区别,如何,何时覆盖,为何覆盖
    • 区别new String()和"" 申明的字符串的区别,String不变量,堆上创建,何时栈上创建,传递变量时候的按值传递
    • Comparable 接口,Comparator类,用来做比较,主要是用于集合中,排序,插入等等
    • 类初始化,变量初始化,静态变量,静态区,常量区等等
    • 继承多态需要知道的有super, this, 相应的可能涉及到的设计模式
    • Java的内部类,有哪几种声明方式,有没有static的区别
    • 集合,collection,array。 set, list, queue这些接口间的区别,set不可重复, arraylist的实现和linkedlist的实现区别,HashMap, HashTable。涉及到各种效率问题等,里面最好阅读一下源码
    • 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一个元素,然后size是否变化等等问题
    • JAVA垃圾回收,内存结构
    • 异常的种类
    • Object类,哪些方法
    • 文件读取, 字节流和字符流, 流的概念, reader, stream等; NIO(通道,缓冲区,选择器)

    Java常见多线程面试点:

    • thread, start(), run()
    • 多线程里面的关键字,wait, notfiy, 锁(synchronized), lock接口
    • 线程状态,上下文切换,守护线程
    • 消费者和生产者的几种实现方式,优缺点
    • 进程间通信
    • 同步容器类,并发容器类之间的区别
    • 几个重要的数据结构,需要了解详细,最好能看过关键代码, copyOnWrite容器, ConcurrentHashMap
    • 信号量, CountDownLatch, CyclicBarrier等类的使用
    • 还有一些Future框架等等(这块我也知道的不多)

    Java Web 方向的面试点:

    • Servlet init() service() post, get等方法区别
    • 重定向,请求转发,跨域什么的
    • Http各个端口号,返回码
    • Spring框架中的东西 spring MVC Spring web

    Java高深一点的东西:

    • 反射机制
    • Java类加载机制,四种类加载器,加载过程,检查过程
    • 依赖注入
    • Spring框架
    • AOP面向切面编程

    数据结构方向的面试点:

    • 数据结构,线性列表,二叉树,完全二叉平衡树,B+树,图的表示。
    • 树的先序,中序,后序,层序遍历。能手写代码,递归和循环实现。 栈的使用
    • 排序 常用的排序算法, 选择,冒泡,快排,堆排序,归并等。能手写代码,知道时间和空间复杂度,能做一些代码上的改进。
    • 动态规划和分治的区别,能根据题目想到这方面,简单的例子能写出来
    • 图的算法
    • 最好去leetcode上系统的刷一下题,不需要全部刷完,但是基本的类型都刷到,很有帮助,代码能力也能提高

     数据库方面的面试点:

    • MySQL数据库的几种引擎,不同数据库间的比较
    • 数据库的封锁协议,各种读写锁
    • Java里面的数据库连接,driver等等
    • SQL语句,insert,select, truncate, drop等
    • 索引,联合索引,自增主键的优劣。 
    • NoSQL和MongoDB, Redis的概念,它的恢复机制,两种模式(内存快照和命令保存)

    计算机网络和操作系统方面的面试点:

    • 拥塞控制,网络七层模型,各层各种应用,tcp/udp, IP,DNS, FTP. 举例访问网站经过的步骤等
    • 操作系统里面的内存替换算法,LRU等
    • 网络安全方向的,数据安全,数字签名等等

    不错的网站介绍:

     leetcode 刷算法题的好地方,但是现在题目越来越多了。都400多道了,看个人能力了

     Simple Java 一个讲解Java面试中常问到的一些点,误区等等,适合基础入门用

     阿里中间件官方博客 有蛮多框架上的东西和一些实际工作的经验总结,可以长长知识

    还有好多个人收藏的网站,你们在搜索上面的知识点的时候差不多都能找到

  • 相关阅读:
    Java设计模式—模板方法模式
    STM32 常用GPIO操作函数记录
    GPIO 配置之ODR, BSRR, BRR 详解
    STM32F4先设置寄存器还是先使能时钟
    LDR指令的格式:
    printf函数重定向
    stm32F4各个库文件的作用分析
    STM32F4时钟设置分析
    STM32F407存储器和总线架构
    SPI移位寄存器
  • 原文地址:https://www.cnblogs.com/tonylp/p/6083717.html
Copyright © 2011-2022 走看看