前言

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

青书一面 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. mysql常用函数详解

    1. Mysql内置函数分类及使用范围 数学函数: 这类函数只要用于处理数字.这类函数包括绝对值函数.正弦函数.余弦函数.获取随机数函数等. 字符串函数:这类函数主要用于处理字符串.其中包括字符串连接 ...

  2. 题解 P4819

    前言: 看到目前的题解当中没有并查集做法,于是写一篇水水. 题目描述: 给定一张图,一个图中有黑白两种颜色,已知黑色的点有且只有一个,且每个点是黑色的概率相等,然后点 \(u\) 与点 \(v\) 之 ...

  3. 轻松一刻|Walrus CLI与CI/CD工具集成,轻松部署2048游戏

    Walrus 是一款开源的基于平台工程理念.以应用为中心.以完整应用系统自动化编排交付为目标进行设计开发的云原生应用平台,简化和自动化应用部署与发布流程并与现有的 CI/CD 流水线无缝集成.今天我们 ...

  4. springCore完整学习教程2,入门级别

    上集说到:2. 3,咱们从2.3集开始 2. Externalized Configuration 2.3. External Application Properties Spring Boot会自 ...

  5. Linux笔记03: Linux常用命令_3.4文件和目录共用命令

    3.4 目录和文件共用命令 3.4.1 rm命令 ●命令名称:rm. ●英文原意:remove files or directories. ●所在路径:/usr/bin/rm. ●执行权限:所有用户. ...

  6. 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题

    问题描述: 在windows平台上安装opencv后,测试一张图片时,出现了debug error abort()has been called的问题 环境: vs2015 windows 10 op ...

  7. Scrapy创建项目、爬虫文件

    创建项目 执行命令 scrapy startproject <项目名> 项目结构 创建爬虫文件 方式一:通过命令生成 scrpay genspider <爬虫名(必须唯一)> ...

  8. pycharm设置Ctrl+鼠标滚轮放大缩小字体

    方式一: File --> setting --> Editor-->General,勾选. 方式二: 放大的设置 File --> setting --> Keymap ...

  9. 在 Walrus 上轻松集成 OpenTofu

    OpenTofu 是什么? OpenTofu 是一个开源的基础设施即代码(IaC)框架,被提出作为 Terraform 的替代方案,并由 Linux 基金会管理.OpenTofu 的问世为应对 Has ...

  10. MYSQL事务篇(高级篇)

    1.事务介绍: 一般是指要做的或所做的事情. 在计算机 术语 中是指访问并可能更新数据库中各种 数据项 的一个程序 执行单元 (unit) 2.数据库事务具有ACID四大特性. ACID是以下4个词的 ...