zoukankan      html  css  js  c++  java
  • 转:大神提出来的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面试中常问到的一些点,误区等等,适合基础入门用

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

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

  • 相关阅读:
    WHERE col1=val1 AND col2=val2;index exists on col1 and col2, the appropriate rows can be fetched directly
    MySQL 交集 实现方法
    MBProgressHUD的使用
    Xcode4 使用 Organizer 分析 Crash logs(转)
    SimpleXML 使用详细例子
    PHP的XML Parser(转)
    iPhone,iPhone4,iPad程序启动画面的总结 (转)
    Pop3得到的Email 信件格式介绍
    yii总结
    隐藏Tabbar的一些方法
  • 原文地址:https://www.cnblogs.com/blackiesong/p/6145708.html
Copyright © 2011-2022 走看看