zoukankan      html  css  js  c++  java
  • 秋招面经.md

    秋招面经

    我就不分开公司写了,都写在一起,直接来点干货比啥都实在,这里只指出学习的方向,主要还是得自己有动手能力,自己找着学习

    一、框架

    框架这个是真分公司,有的公司问有的公司一点都不问(我猜,公司问可能是公司在用这个框架所以才会问,如果不用就不会问),但是这个不是很重要,把核心原理会说就行

    1. Spring (IOC、AOP)这个是每个公司基本上都会问的,要求熟练到源码底层是怎么实现的,然后能对应的举例子说明,例如AOP引用事务处理之类的然后展开说。

    框架最主要的靠你不光是原理最主要的是框架下使用的设计模式,这也就引入了设计模式的考点,例如AOP使用了动态代理(cglib、jdk)然后展开说,记住不管怎么说,一定要挑自己会的说,千万不要因为炫耀,而瞎说,这样只会越来越跑偏,最后与offer失之交臂,设计模式在后面进行举例

    1. MyBatis、Hibernate这两个框架的区别了解就好,主要也是要了解里面的设计模式,面试官不做重点考察

    二、Java 基础(重中之重)

    秋招主要还是看学生的基础,这个是最主要的,所以基础一定要打牢,同时面试官看重的是你解决问题的能力和思考方式,所以在面试的时候如果碰到不会的不要懵,也不要紧张,把会的写上,然后把思路写上,不一定全会再回要你,主要看重你的思考问题的能力和学习能力

    基础都包括(线程安全、网络编程、集合、异常和泛型、流)

    • 线程安全(面试官最愿意问的就是线程问题)
    1. CMS
    2. synchronized(优化)
    3. volatile关键字

    这三个一定要学透了,底层的原理jdk1.8前后的区别,CMS是最重要的都是以他为基础的

    1. 线程池也要回底层的原理模型,的知道线程池的创建的整个底层过程是如果实现的,自己的能简单的把核心功能写出来

    网络编程

    网络编程最主要的就是靠你服务器的部署那一套,然后就是协议了

    1. TCP:三次握手,四次挥手一定的知道为甚么
    2. UDP

    这两个协议的区别以及底层实现

    1. HTTP :超文本传输协议,Java WEB一定要会的协议,这个主要要知道他的传输结构、以及一些常用的状态码例如:500/404/301/302等等。

    集合(老生常谈,一定的会常用的)

    ArrayList、LinkedList、Hashmap(最重要没有之一,HashMap涉及到的都要会)底层实现一定要会,我建议我读源码,万变不离其中。

    异常处理、泛型

    异常主要考常用的异常类型,RuntimException等,一定的知道异常在什么时候用,怎么用、常用的异常之间的区别,泛型就是jdk的一种语法糖了,这个自己网上了解吧,这里主要指方向

    各种文件流的区别和应用场景一定要会

    NIO和AIO还有NIO的区别一定要知道,原理并且能举例进行说明

    进阶 (操作系统、JVM、加密)

    • 操作系统
    1. 处理机管理(处理机的调度、进程通信、进程调度、死锁等)
    2. 内存管理(页面置换算法、缓存之类的),cache算法用java实现(LinkedMap或者LinkedList+HashMap)
    3. 文件管理(各种分配算法,自己网上查吧,的能说出来)
    • JVM(重点中的重点)
    1. 内存模型那几块一定的熟(本地方法栈区、JVM栈区、JVN堆区、程序计数器等)
    2. JVM 的设置参数要把常用的弄熟
    3. JVM 的线程模型
    • 加密

    对称加密算法、非对称加密算法等、MD5加盐之类的,自己找资源吧,别怕动手,能找到资源并且会用才是你的资源

    c语言(一般都是笔试的时候用)

    这个就多刷牛客的题吧,左成云的面试指南书上的一星和二星的一定要回手写,一般的手写算法都是在那上面的,就算没有也是哪里的变形,多加练习,例如 链表的问题(单链表反转,多链表的顺序拼接之类的,重点是基础(二八原则))

    设计模式

    1. 单例模式:一共有7中写法(懒汉、饿汉、双检索、枚举、类加载等)
    2. 工厂模式:会简单工厂模式就行
    3. 建造者模式
    4. 命令模式
    5. 代理模式:静态代理和动态代理模式
    6. 观察者模式等

    设计模式不光要知道是什么模式,还要知道在什么场合用,怎么用都的会

    数据库

    关系数据库

    MySQL、Oracle

    数据库要知道事务的级别,然后索引,索引是重中之重呀,底层的B+树一定要会,还有索引失效的几种情况一定要会,例如like查询%不能开头之类的,再有就是MySQL与Oracle的区别。

    内存数据库

    Redis等

    Redis内存数据库也是常考察的,基本的数据类型,和底层的数据结构的实现,以及两种持久化方式(RDB、AOF)直接百度吧

    数据结构与算法

    要想拿到高薪offer,算法和数据结构一定要好,这是考官最看中的了

    • 数据结构:链表、队列、栈、树(二叉树、多叉树、平衡二叉树、红黑树、字典树、B+Tree)树的几种遍历方式深度和广度《递归和非递归都要会写》哈希表这些都会,这些是前面的基础一定要回
    • 算法:排序(插入、冒泡、快排、归并、堆排序,主要考时间复杂度和优化,一定的会手写) 查找 (哈希查找、二分查找)这些一定要都会手写

    Linux的常用的命令

    chmod、TELNET、ifconfig、ps、netstat、tail等知道是怎么用的并且能写出来

    扩展 大数据、云计算

    这个是现在的趋势,就算是人工智能也都的以这个为基础,所以没事的时候多看看这方面的数据,不要吝啬买书,多看书,增长知识面,尽量不要看盗版,因为每个人都不容易,另一方面,是因为你不花钱,就不知道,事情的重要性,你就不会上心(个人见解,不同意观点不要紧,每个人都不一样)

    最后祝大家都找到自己的心仪工作,不忘初心!
  • 相关阅读:
    利用 localStorage 储存css js
    实现图片延迟加载的一些 库
    less 应用
    vue 问题集合||
    一个简易的登录框
    python_协程方式操作数据库
    爬取知名社区技术文章_分析_1
    python_爬百度百科词条
    python_爬校花图片
    python_猜年龄
  • 原文地址:https://www.cnblogs.com/Mrbelong/p/7699933.html
Copyright © 2011-2022 走看看