23年校招Java开发同花顺、滴滴等面经
前言
已经工作近半年时间了,最近突然翻到这份面经,于是想整理一下一些面试的经验,大中小公司都有
青书一面 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开发同花顺、滴滴等面经的更多相关文章
- 知名互联网公司校招 Java 开发岗面试知识点解析
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
- 2015网易校招Java开发工程师(技术架构)在线笔试题
1. 程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...
- 2015年网易校招Java开发工程师(技术架构)在线笔试题
1. 程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 参考答案分析: 进程与应用程序的区别: 进程(Process ...
- 世纪龙校招java开发一、二面 面经
头一天做的笔试,涉及到计组基本知识,还有几道智力题.java部分很简单(真的很简单有点基础就划过了) 第二天收简历 在隔壁教室等 叫到你 你就去面试 一面:先自我介绍 1 == 和 equals区别( ...
- 阿里巴巴 Java 开发手册 1.4.0
一.编程规约(一) 命名风格1. [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $name / name_ / name$ ...
- java开发中的23中设计模式详解--大话设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Java开发中的23种设计模式(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- java开发中的23中设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 0. Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Java开发中的23种设计模式(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
随机推荐
- AtCoder F - Parenthesis Checking
原题链接:AtCoder F - Parenthesis Checking 一个全由\('('\)和\(')'\)构成的字符串,由以下两个操作: 1 l r交换字符串第\(l\)个和第\(r\)个字符 ...
- .NET 8 Video教程介绍(开篇)
教程简介 本文将简单描述视频网站教程,视频网站是一个类似于腾讯视频一样的网站,视频资源用户自己上传,然后提供友好的界面查看视频和搜索视频,并且提供管理页面对于视频进行管理,我们将使用Blazor作为前 ...
- 如何在langchain中对大模型的输出进行格式化
简介 我们知道在大语言模型中, 不管模型的能力有多强大,他的输入和输出基本上都是文本格式的,文本格式的输入输出虽然对人来说非常的友好,但是如果我们想要进行一些结构化处理的话还是会有一点点的不方便. 不 ...
- Modbus转Profinet--TS-180 网关连接西门子 PLC 和工业称重仪表
项目 随着科技的高速发展,工业自动化行业对日益多样的称重需求越来越高,上海某公司在国内的一个 工业自动化项目中,监控中心系统需要远程实时采集工业称重仪表测量的各种称重参数.该系统使用的是 西门子 S7 ...
- html字间距怎么设置?
在HTML中,可以通过CSS来设置字间距.字间距指的是字符之间的空白区域,在网页设计中,修改字间距可以改变文字的外观和排版效果.下面详细介绍如何使用CSS来设置字间距. 使用letter-spacin ...
- 运行tomcat之后报一个:"Address localhost:1099 is already in use"错误
一.解决方案 1.错误原因 "地址 localhost:1099 已在使用中",是1099程序被占用,把1099程序后台停止掉即可. 2.解决方案 1.快捷键win+R打开CMD运 ...
- Element的安装与基本使用
一.什么是Element? Element是饿了么团队研发的一套为开发者与设计师等准备的基于Vue2.0的桌面端组件库,使开发人员可以快速拼凑出一套页面 组件:组成网页的部件,例如:超链接,按钮,图片 ...
- 马云说的AI电商时代是什么
这两天非常火的就是马老师说的,我们已经进入了AI的电商时代.相信电商时代大家很容易理解,换一个简单的方式来说就是网上购物. AI相信大家已经很熟悉了,就是人工智能.早在十年前其实已经有AI人工智能的概 ...
- Java实现相似结构表算法
[产品需求] 对所有元数据进行分析,匹配出表字段相似度达到阈值的向相似结构表关系数据. 网上没有搜到相关算法实现,只能自己动手了. [算法实现] 简单点实现的话,可以轮询所有表,每张表都和其它表进行匹 ...
- Redis工具类及Redis序列化
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...