前言

已经工作近半年时间了,最近突然翻到这份面经,于是想整理一下一些面试的经验,大中小公司都有

青书一面 50min

数据库、java基础。

Cas机制。

Tcp/udp区别

堆排序介绍,答错了,弄成桶排序了,面完才想起java有个优先队列是用堆排序。

算法是二叉搜索树转双向链表,没写出来。

这是自秋招后春招第一场面试,八股什么的都没好好准备。

同花顺一面 40min

1、 项目介绍,如何实现,MQ在项目中的作用

2、 Redis集群、哨兵、内存淘汰策略

3、 Java锁的区别,锁的用法

4、 Spring里用到哪些设计模式,以及介绍。答单例模式、模板模式(容器refresh)、工厂模式、责任链模式、代理模式、观察者模式

5、 线程安全注意哪些问题、有序性、可见性、原子性介绍一下。

6、 用过哪些线程安全的类atomic、cyclicbarrier、countdownlatch、semaphore。

7、 Java多线程、进程理解(每个面试必问!

8、 算法是斐波那契数列

同花顺二面 40min

1、 画架构图,MQ的使用。为什么使用RocketMQ,rabbitMQ特点呢。20分钟

2、 场景设计题,设计股票搜索,在java本地设计,实现前后中部分内容输入的搜索。只想到字典树,说了字典树,面试官问实现和搜索,把字典树的实现讲了一下,搜索只想到用dfs进行深度遍历。这里面数字的话最终的数据都是存在树的最底层,如果是拼音的话在拼音缩写结束那一层节点需要补上数据。问我优化搜索,想不到。面试结束后想到,可以用map,如果是数字搜索,六位股票代码,那么树就是六层高,把每一层都放到一个map,然后key是数字,value是树的结点,其次每个value节点都要有最底层所有节点的指针,这样方便搜索的时候从当前层跳到最后一层拿出数据。如果是拼音的话同理,但是不用存最底层数据的指向。

3、 问我抓过tcp包没有,也没有使用socket编程,答没有抓过,只在计算机网络实验课干过,只写过demo。讲一下抓包的时候会看到什么。脑里只想到了计算机网络考试的时候抓包数据是16进制的格式,就说每个包都是16进制的数据,后来查证应该是包头数据是16进制。问我聊不了解stream流,介绍一下,说是http2.0为了实现多路复用。然后设计一下stream流。。。磕磕绊绊讲了一会,实在没啥思路

4、 问实习时间

5、 反问他字典树方案可行吗,他说可以,只是需要优化。

以为挂了,后面通知hr面了,hr面后排序挂

滴滴一面 55min

面试官好评,是个年轻小伙,全程都有引导并且和我一起探讨,个人感觉是我遇到过的面试体验最好的!

1、 介绍一下java锁、锁机制、锁种类

2、 介绍AQS。从AQS实现底层state/队列、公平、非公平、以及其实现类lock cyclicbarrier、countdownlatch、semaphore讲。

3、 如何实现多个线程执行,另外一个线程等待线程执行。答cyclicbarrier/join实现

4、 问我AQS缺点,想了想lock的话要显示解锁,他笑了和我说你不觉得他实现很复杂吗。

5、 说我们来讨论一下spring的ioc和aop,以及应用。我介绍了ioc,实现控制反转。他问底层实现,答bean单例、反射、依赖注入。再问了aop的应用,事务、日志、实现,答jdk动态代理和cglib动态代理。

6、 讲一下计算机网络吧。Tcp/udp特性、tcp拥塞控制如何实现。问三四次握手挥手过程,为什么要四次挥手。为什么要time_wait。

7、 好像还有线程池的运行,答先核心,后放队列,之后new新线程直到MAX,然后按abortpolicy处理,有discard(不会抛出异常)/discardOldest/callerRuner/abort(会抛出异常。

8、 还有些项目的题、同样是讲MQ、redis、MySQL、项目的架构

9、 40分钟了,叫我写个算法题。环形链表,很快解决

10、 反问。结束面试

滴滴二面 60min

一面十分钟后就通知通过了,约二面了。

1、 面试官是leader面,上来就问我没有实习吗,答没有。直接写算法题,第一道是最大子数组的和,并且写出初始下表和结尾下表。力扣原题,写出来了,但不知道怎么处理初始下表。

2、 换了一道题,叫我写移动0的位置,同样leetcode原题,写出来了,但是他一直在做谜语人,说我题都读不懂,看了半天,原来是写测试用例验证逻辑正确性,之前没接触过这个名词,下意识没有想那么多。心态有点崩了,我说我来补测试用例像用junit那样子,他说不用了,你都知道了就没用了。然后又问我你不觉得这个代码有什么问题吗。我说没有。然后叫我用语文议论文的方式,用论点+论据来论证如何优化代码的方法,我说了时间复杂度和代码可读性。然后又问我如何优化,我说改变量名,然后他说还有吗,我说没有。结束的时候跟我说你没有把方法拿在main外面。。。诶,我以为只要输出结果正确就好了这种题,上个面试官直接叫我写在main里面就行了,有点无语,而且很多面试的时候,面试官都没那么多要求,一般写main函数里面就好了。

3、 给了道数据库设计题和写sql语句,太久没有写了,语法有点问题,但是写出来了。他看了后问你确定这样就好了吗,我说是。我没有给字段建索引,以为单单是建表出来就行了,结束的时候才意识到问题,在结束的时候也跟他讲了优化。

4、 就三道题。他说他一直在纠结要不要让我通过这次面试。我balabala了说机会很难得,自己也准备了很多,然后他想了想说,让我去小厂历练两年再来滴滴。说我这没有实习,基础不扎实,他自己说我可能也确实是因为我转专业这种情况导致没实习,说这也没办法。最后把我挂了

总结就是谜语人,中间还问我高考语文分数多少,质疑我的理解能力。

确实是挺可惜的,距离大厂第一次这么近。

天纵游戏技术面 20min

1、 java类加载机制

2、 spring注解的使用

3、 如何看待spring封装给新手带来的利弊。

4、 Redis简单问题、Mysql简单问题。

5、 为什么要有多线程、进程。

一家游戏技术面 60min

1、 bio/nio是什么,nio是buffer/channel/selector,一个线程轮询,通过channel传输数据,数据在缓冲区进行交换

2、 如何查找java死锁,不会。答案是jstack指令看线程状态。Jstat可以查看Jvm内存状态,垃圾处理状态

3、 感觉也没有什么值得记录的问题。996 有时候还9117 小公司不值得。

小天才安卓一面 30min

你确定你要安卓,前面几个面试的人都说是java后端,反复确认后他们放弃了这次安卓面试,你确定你要吗,我说确认。问java基础

1、 进程、多线程区别——线程是用栈内存,每个线程单独一个栈帧

2、 Java一般你如何使用锁、aqs/synchroninzed区别

3、 Tcp/udp区别

4、 https、http区别、https过程(客户端发起请求、携带支持的加密方式,服务器回应数字证书和选一个非对称加密、客户都验证证书,选一个随机数字,就是会话密钥,用公钥非对称加密,发给服务器,服务器解密,拿出密钥,这时候就跟客户开始建立对称加密。用密钥加密并且hash,发送给客户都。客户都解密,并hash验证hash值是否一样,一样则安全,之后进行对称加密通过。

非对称加密有RSA、对称加密有DES。

某上市公司:

1、 socket和http编程的区别

2、 路由器和交换机

3、 继承、多态、封装?静态多态、动态多态?

4、 创建线程池的方式

5、 介绍堆排序?插入、删除时间复杂度? nlogn

6、 怎么找出top10数据?

7、 频繁某个ip访问?攻击。加拦截器orFilter?

创业公司:

1、 抽象类。接口差别,为什么要这么设计

三星广州研究院:

1、 最长连续递增子序列。

2、 多个有序数组,对他们进行合并

3、 平衡二叉树、搜索二叉树、满二叉树、完全二叉树

4、 Topk数值?

面试通过了,但是需要线下笔试,且岗位是安卓,于是后面拒了。三星是WLB,入职就有第一年是12年假,满一年14,加班费周中1.5倍,周末双倍,严格遵守劳动法,只可惜是安卓岗,后面也经常惋惜,虽然是安卓岗,但是生活质量会比现在高很多。

23年校招Java开发同花顺、滴滴等面经的更多相关文章

  1. 知名互联网公司校招 Java 开发岗面试知识点解析

    天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...

  2. 2015网易校招Java开发工程师(技术架构)在线笔试题

    1.  程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...

  3. 2015年网易校招Java开发工程师(技术架构)在线笔试题

    1.  程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...

  4. 世纪龙校招java开发一、二面 面经

    头一天做的笔试,涉及到计组基本知识,还有几道智力题.java部分很简单(真的很简单有点基础就划过了) 第二天收简历 在隔壁教室等 叫到你 你就去面试 一面:先自我介绍 1 == 和 equals区别( ...

  5. 阿里巴巴 Java 开发手册 1.4.0

    一.编程规约(一) 命名风格1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $name / name_ / name$ ...

  6. java开发中的23中设计模式详解--大话设计模式

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  7. Java开发中的23种设计模式(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  8. java开发中的23中设计模式

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. 0. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  10. Java开发中的23种设计模式(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

随机推荐

  1. STM32F103 CAN通信波特率的计算方法

    前言 以下的波特率计算和实例仅针对 STM32F1系列 最近看一下CAN通信,翻出来之前做过的STM32 CAN通信的项目代码,有些概念比较模糊了,如波特率是怎么计算的. 最近接触rt-thread比 ...

  2. SyntaxError: Non-ASCII character 与 Cannot decode using encoding "ascii" 错误解决

    转载请注明出处: python调试时遇到的两个相同的编码错误进行总结: 1.错误:Cannot decode using encoding "ascii", unexpected ...

  3. .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth

    前言 我相信做开发的同学应该都对接过各种各样的第三方平台的登录授权,来获取用户信息(如:微信登录.支付宝登录.QQ登录.GitHub登录等等).今天给大家推荐一个.NET开源好用的.全面的.方便第三方 ...

  4. Atcoder abc 221 E - LEQ

    原题链接:E - LEQ 思路: 题目要求对于从数组1~n找出所有符合开头数字小于等于结尾数字的子序列,\(A' = (A_1', A_2', ... , A_k')\),满足\(A_1' \leq ...

  5. nmap命令说明

    目录 主机发现 扫描技术 端口规格和扫描顺序 服务/版本检测 脚本扫描 操作系统检测 时间和性能: 防火墙/IDS的逃避和欺骗 输出 杂项 平时看到别人的nmap命令都是一大串,根本看不懂为什么,自己 ...

  6. 3款高评价的.Net开发的WMS系统推荐

    本文简介 WMS仓库管理系统是一款专业的仓库管理系统,旨在帮助企业实现仓储管理的智能化.信息化和自动化.通过该系统,企业可以实现对仓库的进货.出货.库存等各个环节的全面把控,提高仓储管理水平,降低运营 ...

  7. Android学习day01【搭建Android Studio】

    是Google开发的操作系统 Android开发是移动应用开发的表现形式之一 还有很多的开发形式,就不一一列举了 完整项目精简的开发流程 开发工具 Android studio(强烈建议) Andro ...

  8. extern关键字的用法

    extern关键字的理解 extern是C/C++语言中的一个关键字,用于声明一个变量或函数具有外部链接性(external linkage),即这些变量或函数可以被其他文件访问. 在C/C++中,如 ...

  9. 手机成绩分析软件排行榜TOP10下载

    随着智能手机的普及和移动应用的快速发展,手机成绩分析软件越来越受到学生.家长和教育机构的关注.这些软件可以帮助用户方便地记录.分析和管理学生成绩,提供个性化的学习指导和反馈.在本文中,将详细介绍202 ...

  10. GHOST 系统安装教程 轻松一键,系统恢复到最佳状态

    硬盘安装系统 安装前准备 1.保证能够正常进入系统: 2.下载Ghost系统镜像文件: 3.下载镜像安装器: 安装步骤 1.下载Ghost系统镜像"Win7_x64_Pure_5.07.GH ...