idea离线安装 Appuim环境搭建 WEB视频自适应 微信小程序实战教程 arraylist uiview menu linktosql jboss jvm Seajs EaselJS vue下载 vue网页 vue基础教程 vue入门 vue请求 python查看数据类型 base64转16进制 移动端上传图片插件 python爬虫包 安装mysql python多线程编程 python对象 python循环语句 python实战 python等待10秒 java的string java程序实例 java接口实现 java中class java数组输出 java获取数据类型 java中map java文件输入输出 如何强行退出小米账号 手机主题之家 lol体验服转换器 无法打开搜索页 自动答题软件
当前位置: 首页 > 学习教程  > 编程语言

58面试题

2020/9/19 15:13:45 文章标签:

一面

1.介绍一下自己(5分钟)

基本信息-教育-项目-奖励-英语水平

2.LinkedList与ArrayList的区别

LinkedList双向链表、ArrayList单向链表

3.HashSet判断元素是否被包含的时间复杂度是多少

0(1)

4.说一说JVM GC

垃圾回收算法:标记清除(碎片),复制(浪费空间),标记整理(),
分代清除(年轻代新生区向存活区1标记整理,存活区1向存活区2复制、年老代)

5.Tcp与Udp的区别

Tcp:可靠、面向连接、一对一对象、字节流、20-60字节
Udp:无连接、对象任意、数据报、8字节

6.秒杀场景(单机,多机,最后用数据库解决我说不知道,面试官提示悲观/乐观锁)

二面

1.介绍一下自己
2.说一说反射

反射奠定java的动态性,他可以获得类的私有方法,不太安全,破坏单例模式

3.spring Aop实现原理

面向切面编程,将切面织入对象,主要作用于同一操作,如登陆验证、日志处理等

3.一个分析时间复杂度的题目

时间复杂度的计算主要是计算循环,如加减乘除操作不计
主要考虑n的量级,不考虑常数量级

4.了解模板设计模式吗

不知道

5.场景题:有100个门100个人,编号都是1-100,每个人过一遍门,如果门编号是人编号的整数倍,改变门状态,门一开始是关闭的,问最后哪些门打开。

一面(18min)

topK问题(扩展大数据量的TOPK)

快排解决,减枝

找到链表的中间节点

两指针,步长两倍

两个数组分别取一个数之和等于sum,求所有符合的数

两层循环+判断

Concurrenthashmap的同步原理

局部锁,底层数据结构与hashmap一致,插入数据时这个节点就

垃圾回收算法,优缺点

标记清除(碎片)、复制(内存消耗)、标记整理()

young代使用什么回收算法

新生代到存活代1:标记整理,存活代1到存活代2:复制(保证存活代2为空)

cpu负载高的原因,如何排查解决

可以查看实时进程的资源消耗

linux查看哪个进程cpu占用率高的命令

top指令

反问

二面(30min)

TCP连接过程中如果server的ip地址或者端口号错了,会出现什么错误

由于没有回复, 客户端反复重新连接

如果ip地址或者端口号错了,TCP的三次握手会进行到哪一步

第一步不成功

一个client到一个server可以建立多少个TCP连接

同一时间

固定一个server,那么可以有多少个client可以跟这个server建立TCP连接

数据库的索引结构

B+树

为什么选择B+树

结构矮胖,相对于二叉排序树,容易形成链表,平衡二叉树,插入、删除左旋右旋复杂
查询效率很高, 相对于B树增加有向链表,区间查询更快

B+树的节点更新

这里是引用

别的索引实现方式?

哈希索引:缩短命中时间,失去
全文索引: varchar、blob这种

数据库引擎的区别

innodb:支持行锁、外键,聚簇索引
myisam:支持表锁、不支持外键 ,非聚簇索引

算法题:N个节点的二叉排序树可以组成多少种不同的树

一面(是个小姐姐30min)

  • 自我介绍
  • 项目中遇到的困难
  • 为什么需要用到序列化?

深拷贝

  • 说说了解的设计模式

单例模式,饿汉式、懒汉式、dcl懒汉式

  • MySQL索引的作用、数据结构

缩短查询次数,在磁盘寻地址移动需要花费时间,b+树

  • TCP三次握手、为什么要三次握手、四次挥手

客户端向服务器发送SYN报文,服务器向客户端回复SYN+ACK报文,客户端回复ACK报文,这就是三次握手,因为至少三次握手才能保证

  • 多线程下会发生什么问题?
  • 有哪些方式可以保证线程安全?
  • synchronized锁定的对象
  • synchronized底层原理
  • (漏了一个问题)了解Linux下的IO吗?(BIO、NIO、AIO这些?了解过概念,没去实际去使用过,刚想说一些就下一题了)
  • 说说了解的常见数据结构及其特性
  • Spring AOP的原理、作用
  • 反转字符串,把能想到的方法都答出来(数组从后往前扫描追加、转成数组前后交换、栈、api)

二面(换成个中年秃头大叔,都不敢对视了,大约也是30min)

  • 自我介绍
  • 项目中遇到的困难(又来)
  • 项目中的redis解决了什么问题
  • redis单线程为什么快?
  • 什么情况下用单线程快,什么情况下用多线程快(单核CPU的情况下、多核CPU的情况下)
  • MySQL使用索引为什么能加快查询,列举索引带来的开销,如何合理地创建索引?
  • 逻辑题,8个人比赛,比赛结果具有推导性,比如A赢B,B赢C可以推导出A赢C,问最少比赛多少次可以得到前两名
  • 如何求一个数a是不是2的n次方(说了三种方法,不断地除、从1开始不断地乘2然后与a比较、把a转成二进制再判断1的个数。然后提醒了我整型内2的n次方有32个=>我又回答了把32个数放到Set里然后查找,还有一种就是a & (a - 1) == 0来判断)
  • 反转字符串,把能想到的方法都答出来
  • 看Spring源码最大的收获是什么(答了设计模式的应用。。。)

一面

1、自我介绍
2、项目介绍(非java项目)
3、项目中遇到的难题
4、进程线程怎么调度
5、synchronized底层实现
6、synchronized放方法上和放代码块上有什么区别
7、类锁对象锁有什么区别
8、springboot原理
9、数模的项目
10、研究生期间还做了什么

一面:

数据库范式
乐观锁悲观锁
数据库索引
接口和实现类区别
集合类介绍
各种集合类之间的区别

二面:

数据库锁机制
事务隔离机制
已知冰箱这个东西,如何设计他的bean结构
继承和组合区别
手写单例
设计模式
SERVLET生命周期

三面:

数据库锁机制
osi七层模型以及tcp/ip四层模型
七层和四层有什么区别
项目中遇到的问题
内存溢出和内存泄漏
Spring的特性
aop和ioc介绍

58测试,总共分为三面,前两面技术面,最后hr面,技术面都比较基础。

一面:

(1)OSI七层协议分别是什么,每一层功能
(2)TCP/UDP区别应用
(3)java中集合类有哪些,区别
(4)ConcurrentHashMap,HashTable,HashMap三者区别
(5)手写代码:给定一个字符串,将字符串中的字符装换成int型,注意非法输入
(6)对手写代码设计测试用例
(7)Java内存机制
(8)重载和重写的区别
(9)常见linux指令

二面:

(1)HTTP协议
(2)String , StringBuffer和StringBuilder的区别
(3)给定一个字符串,怎样从中找出最长的回文(联系笔试题)
(4)手写代码:用两个栈怎样实现一个队列
(5)常见算法对比,并手写堆排序
(6)怎样对百度页面进行测试
(7)MySQL中存储引擎及区别
(8)写一个sql语句,查询两个关联表中的信息,结果有多行,只输出一行
(9)完全二叉树和平衡二叉树分别是什么
(10)多叉树了解多少,讲下对红黑二叉树的理解
(11)手写代码,实现字符串中大小写字母的转换

作者:昔日阳光
链接:https://www.nowcoder.com/discuss/12736?type=2&order=1&pos=195&page=1&source_id=discuss_tag&channel=1009
来源:牛客网

1.简单介绍一下自己
2.说一说hashmap和concurrenthashmap的底层实现
3.cup调度算法,哪个最耗费资源,为什么?
4.算法二叉树的非递归实现前序
5.内存泄漏
6.详细讲一下你的项目
7.你怎么优化你的项目
8.你的密码传输过程是明文还是暗文,为什么不加密,有没有想过怎么加密?
9.100!又有几个零,现场算


本文链接: http://www.dtmao.cc/news_show_200226.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?