非科班面试题分析

基本情况:水利类专业,Java开发,从2018年10月份以来开始慢慢摸索Java的学习,从Java基础学到JavaEE,到数据库,计算机网络,操作系统这些知识,然后又学习并发,Java虚拟机,学的东西越来越多,忘的也多。

身旁没一个人学这些,学起来也是慢慢的摸索,去论坛搜,技术群问,去啃书,本以为可以按照这种进度,19年上半年再刷刷算法,多刷刷面经就可以好好备战秋招了。可是实验室突然来了项目,还是去外地出差做系统,这一出差就是从3月份到8月份,基本上所有的系统后台都是大师兄和我承担的,任务重,导致算法只断断续续刷了剑指offer 2遍。

7月份面了两家,字节跳动和顺丰,都是一面挂。那时候还不需要笔试,虽然知道仅仅刷剑指并不够,可是还是没有认真去刷leetcode。来到8月,面了阿里,一面至今没消息了,oppo本来提前批是个好机会,可是在外出差参加不了面试,也错过了。 还面了中兴,9.11号现场综合面。面了趋势科技,结果hr面挂了。面了虎牙直播,结果直接拉入人才库。面了美团,至今没二面消息。面了远景智能,拿到offer。面了科大讯飞,说是下周二面,还面了龙湖,也说中秋节过后终面。刚刚还电话面了招银网络科技,还没结果。

更多的是对笔试的无奈,猿辅导、字节、拼多多、贝壳、商汤科技、大疆、华为(本以为至少能进华为,真是讽刺,笔试都过不了)全挂,携程、旷世、oppo、爱奇艺、360笔试到现在还没消息。

现在的状态就是不想学习,学了又忘。不想刷算法,刷了笔试还是不会。

估计,到最后还是得回到我的水利行业,希望水利对我友好吧。附上面经

 

总结 ,现在Java开发涉及的知识特别多,而且还要刷算法题,即使有基础,非科班准备时间在一年左右,完全零基础需要两年左右(校招)。算法题LC属于必刷内容,保底300道以上,但又不能只刷LC,还需要结合基础知识和工程能力。

现在的笔试难道普遍高于Leetcode中等难度,为ACM简单到中等难度,尽可能通过内推方法,直接面试。

 

 

0 字节跳动

7.17 一面视频挂
原因:sql语句没写出来

SQL 语句有时间必看

0 顺丰

原因:一面手撕算法没写出来

1. 趋势科技

一面 8.12
技术面 一个面试官 30分钟左右

  1. mybatis中 # 和 ¥ 的区别,sql注入问题
  2. blob类型的使用
  3. delete truncate 区别
  4. sql 语句:将两个订单中的信息统计到一个表中
  5. JDBC 的大致流程

框架和数据库。。。


  1. redis 内存回收策略
  2. redis过期键的处理方式
  3. redis 主从复制
  4. redis 持久化
  5. redis 的底层数据结构
  6. redis 的单线程为何快?

redis题目


  1. Thread.start() ,run() 区别,sleep(),wait()区别
  2. Collection 和 Map 架构区别
  3. HashMap 的 put()和 get()方法底层
  4. 算法题,不用实操代码,只说大致思路
  5. 对笔试题的回顾

Java多线程并发题目。


二面 8.12
技术面,两个面试官 30分钟左右

  1. 项目经历与细节
    • 亮点
    • 难点
  2. 自定义线程池中各参数怎么确认
  3. 读写锁的实现方式
  4. 创建线程的两种方式对比
  5. java中几种同步方式

Java 并发题目


  1. 高并发的常用技术-缓存、消息队列简单讲讲

  2. Redis 的6中数据结构-着重讲了跳跃表

  3. GitHub上最满意的一个项目给介绍下?

  4. 最满意的一篇博客给介绍下?

  5. 随便聊聊

并发和redis

其实整体就是根据项目涉及到的知识点来问,自己还得深入了解 。


三面 8.13
hr面 30分钟左右

  1. 个人基本情况与工作意向城市
  2. 在项目开发中,遇到和leader不一致时,怎么处理?
  3. 在项目开发中最大的提升是哪方面
  4. 怎么保持在更新迭代快的开发领域的竞争力(我回答的是学习能力)
  5. 可以举一两个例子体现下自己学习能力么
  6. 对工作的几个最关注的点
  7. 有什么问题想问我的么

hr面挂

2. 虎牙直播

一面挂
一面 8.13
电面 45分钟左右

  1. 首先谈基本情况和项目谈了25分钟
    1. 同步服务同步的方式,为什么不可以每分钟的同步
    2. 如何解决跨节点的join关联查询
    3. 表结构设计的事项
      1. 堆排序概念
      2. Java的四大基本特性-封装、继承、多态、抽象
      3. Java内存模型-主内存和工作内存
      4. Java如何保证线程安全(这里自己只答了互斥同步,忘了说非阻塞同步了)
      5. Jvm中堆和栈的概念
      6. 自学能力体现在哪(下次回答对JVM的学习吧,别往算法上靠了)

结果:被拉入公司人才库


3. 远景智能

8.23现场面,共四面,只记得大概问题了

  1. 分布式系统需要考虑哪些方面要素
    高性能、高可用、可伸缩、可扩展、安全
  2. 了解或者知道的分布式系统

4. 中兴

8.28 一面 电话面

  1. Token过期是怎么处理的
    token过期,就要重新获取。那么重新获取有两种方式,一是重复第一次获取token的过程(比如登录,扫描授权等),这样做的缺点是用户体验不好,每一小时强制登录一次几乎是无法忍受的。那么还剩第二种方法,那就是主动去刷新token. 主动刷新token的凭证是refresh token,也是加密字符串,并且和token是相关联的。相比获取各种资源的token,refresh token的作用仅仅是获取新的token,因此其作用和安全性要求都大为降低,所以其过期时间也可以设置得长一些。

  2. 怎么保证token的可靠传输,在传输过程中被截走了怎么办
    https安全传输协议,以及token是包含用户信息、客户端信息等,仿造很难

  3. Spring Security 的核心原理
    就是一系列的过滤器

  4. OAuth2怎么结合Spring Security实现权限认证的
    密码式授权模式

  5. Spring 了解哪些知识
    IOC AOP

  6. Redis怎么解决双写一致性问题
    两种策略,策略1:先删除缓存,再更新数据库 策略2:先更新数据库,再删除缓存

  7. 每次传入参数不同,怎么保证走缓存
    前端控制传入参数格式,后端对前端传过来的参数进行验证

  8. 影响Redis最大并发性能的主要因素
    内存,持久化策略、主从复制、带宽

  9. MySQL的两种引擎的主要区别
    锁,事务,索引

  10. 索引类别以及底层实现机制,B-Tree 索引在两种引擎中的区别
    普通,主键、唯一、聚簇、覆盖索引,B+索引和Hash索引 ,

  11. InnoDB行级锁
    共享锁、排他锁、间隙锁

  12. jvm调优有经验么,怎么指定垃圾回收算法

  13. 垃圾回收机制

9.11 综合面试

5. 美团

一面 9.4 视频面试

自我介绍时说了自己写了博客 ,结果面试官就开始问博客的内容

  1. 进程和线程的区别
    从操作系统角度 和 JVM 角度答了
  2. 协程(没听过)
  3. 进程间的通信方式
    信号、管道、消息队列、共享内存
  4. 进程间使用信号通讯方式时,如果一个进程还在处理之前信号时,又来个信号会怎样?
    没答好,我说直接丢弃信号 (信号会等待)
  1. 管道 里面的匿名管道 和 命名管道 (没听过)
    转而说了下管道的大致实现流程 pipe父子进程,fifo任意进程
  1. 浏览器输入URL 整体流程-包括网络层、链路层、物理层

  2. DNS解析原理

  3. 路由选择协议-RIP OSPF 实现原理,算法思路

  4. -可达性分析算法中,可作为根节点的类型

  5. 是否可达性分析完后,就会立即回收
    (答的不好,本来是往finalize()方法答的,自己却扯到CMS垃圾收集器上去了)

  6. 可达性分析流程以及四种引用概念,四种引用都会被根节点引用到么
    (也答的不好,只说前三种会被引用链寻找了)

  7. 类加载过程

  8. 双亲委派模型

  9. 手撕 单例模式,寻找数组K个最大值、二分查找

至今没有后序消息

6. 科大讯飞

一面 9.5号上午 现场面 武汉开发

  1. Java中的循环有几种
  2. do while 和 while的区别
  3. for循环中能否改变i的值
  4. int 和 Integer 的区别联系
  5. sql语句执行慢怎么分析
  6. 写个sql语句
  7. 向表中添加列的sql语句
  8. 项目主要业务介绍
  9. 微服务的相关组件介绍
  10. 为什么用微服务

面完说一周左右会通知二面

6. 龙湖集团

开发岗 一面 9.8上午

龙湖 9.8一面(岗位:上海,成都)

  1. 常用的数据结构
    2 . 集合体系整体架构介绍下
  2. ArrayList和 LinkedList的使用场景区别
  3. HashMap中的红黑树,为什么要用
  4. 红黑树和二叉树区别
  5. Feign中过滤器的原理(基于动态代理,手撕动态代理)
  6. Oauth2协议授权流程简单介绍
  7. Oauth2中后台token是存在服务JVM内存中,如果服务崩了的话,token失效了怎么处理(可以用Redis去实现持久化)
  8. 手撕List转Map(简单,但是面试官说会Stream么,回答说不会)
  9. 项目开发中最大的难点是什么?
  10. 反问阶段

二面 9.9 30分钟 (两个面试官,技术面和hr面同时进行)

  1. Distinct 和 Group. by
    2 replace 和 update区别
  2. 主键,唯一索引,索引区别
  3. 外键
  4. 手写单例
  5. 手撕字符串解析(四则运算和数字)
  6. Spring Cloud 和 Dubbo区别
  7. 注册中心Rureka流程解释
  8. String StringBuilder 的区别
  9. Java中的容器讲讲
  10. sleep() 和wait()区别​

中秋节过后会通知面试结果

7. 招银网络科技

开发岗 一面 9.10号上午 电话面 30min

  1. 静态内部类 和 成员类的区别
    定义方式,外部对象访问方式

  2. abstract 方法可以有static关键字么,为什么不能有
    static相当于是类对象的方法,而abstract 方法只是一种声明

  3. synchronized 能修饰 abstract方法么
    回答的能,其实是不能,因为synchronized既然是同步锁,就肯定要有锁的方式

  4. java中对象的生命周期
    jvm对象创建-对象使用-垃圾对象回收

  5. 类加载过程

  6. 事务的四个特性

  7. 常用的数据库连接池以及连接池基本原理

  8. 动态规划的基本原理,举个使用动态规划的例子

  9. 贪心算法的基本原理

  10. 动态规划和贪心算法的区别

  11. 代理模式和装饰者模式区别,分别属于什么模式
    答的不好,具体区别没答出来

  12. 结构型模式的特点

 

你可能感兴趣的:(算法)