商汤科技Java面试题(含答案)
其他互联网大厂面试题
1:阿里巴巴Java面试题
2:阿里云Java面试题-实习生岗
3:腾讯Java面试题-高级
4:字节跳动Java面试题
5:字节跳动Java面试题-大数据方向
6:百度Java面试题
7:蚂蚁金服Java面试题-中级
8:蚂蚁金服Java面试题-高级
9:京东Java面试题-中级
10:拼多多Java面试题-电商部
11:商汤科技Java面试题
12:中软国际Java面试题-初级
13:唯品会Java面试题
14:携程Java面试题-高级
15:软通动力Java面试题
下载链接:全部大厂面试题及答案PDF
1.简历写什么问什么,注意所⽤技术产品的同类产品⽣态及对⽐。
2.kafka数据分区和消费者的关系, kafka的数据offset读取流程, kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序
1 、 kafka数据分区和消费者的关系: 1个partition只能被同组的⼀个consumer消费,同组的consumer则起到均衡效果
1.连接ZK集群,从ZK中拿到对应topic的partition信息和partition的Leader的相关信息
3.consumer将⾃⼰保存的offset发送给Leader
4.Leader根据offset等信息定位到segment (索引⽂件和⽇志⽂件)
5.根据索引⽂件中的内容,定位到⽇志⽂件中该偏移量对应的开始位置读取相应⻓度的数据并返回给consumer
kafka只能保证partition内是有序的,但是partition间的有序是没办法的。爱奇艺的搜索架构,是从业务上把需要有序的打到同⼀ 个partition。
3.cms垃圾回收机制
1、概念: CMS全称 Concurrent Mark Sweep,是⼀款并发的、使⽤标记 -清除算法的垃圾回收器,
2 、使⽤场景: GC过程短暂停,适合对时延要求较⾼的服务,⽤户线程不允许⻓时间的停顿。
i. YGC过程发⽣Promotion Failed,进⽽对⽼年代进⾏回收
ii. ⽐如执⾏了System.gc(),前提是没有参数ExplicitGCInvokesConcurrent
4.mapreduce原理
hadoop ⽂件系统 ,提供了⼀个分布式的⽂件系统,但是hadoop⽂件系统读写的操作都涉及到⼤量的⽹络的操作,并不能很好 的完成实时性⽐较强的任务。
数据分布式的存储,然后计算的时候,分布式的计算,然后将结果返回。这样的好处就是不会涉及到⼤量的⽹络传输数据。
4、缺点: mapreduce并不适合对实时性要求⽐较⾼的场景,⽐如交互式查询或者是流式计算。另外,也不适合迭代类的计算(⽐如 机器学习类的应⽤)。
1、mapreduce的启动时间⽐较长,对于批处理的任务,这个问题并不算⼤。但是对于实时性⽐较⾼的任务,其启动时间长的缺点就很 不合适了。
2、mapreduce⼀次执⾏的过程⾥⾯,往往涉及到多出磁盘读写,以及⽹络的传输。对于迭代的任务,这样很好的开销需要很多次,明显降低了效率。
3、⽽Storm和Spark,⼀个是流式计算的框架,⼀个是机器学习的框架。他们更适合解决这类型的任务。
5.nio,bio,sellector/epoll,aio,netty⾃带编解码器, netty优势, java内存模型
4、Netty提供了多种内存管理策略,通过在启动辅助类中配置相关参数,可以实现差异化的定制。
5、⾼效的 Reactor线程模型: Reactor单线程(多线程、主从)模型,指的是所有的IO操作都在同⼀个NIO线程上⾯完成
7、⾼效的并发编程: Netty的⾼效并发编程主要体现在如下⼏点:
volatile的⼤量、正确使⽤;
CAS和原⼦类的⼴泛使⽤;
线程安全容器的使⽤;
通过读写锁提升并发性能。
8、⾼效的序列化框架:
9、灵活的 TCP参数配置能⼒:合理设置TCP参数在某些场景下对于性能的提升可以起到显著的效果,例如SO_RCVBUF和SO_SNDBUF。如果设置不当,对性能的影响是⾮常⼤的。
6.akka模型
1、概念: Akka是⼀个构建在JVM上,基于Actor模型的的并发框架,为构建伸缩性强,有弹性的响应式并发应⽤提⾼更好的平台。
7.java arraylist,linkedlist区分及实现原理, hashmap和concurrenthashmap区分及实现原理, concurrenthashmap 1.7和1.8区分, 实现细节, linkedhashmap排序原理,应⽤如何保证数据幂等
1 、java arraylist,linkedlist区分及实现原理:
1. ArrayList是实现了基于动态数组的数据结构,⽽LinkedList是基于链表的数据结构;
2. 对于随机访问get和set, ArrayList要优于LinkedList,因为LinkedList要移动指针;
3. 对于添加和删除操作add和remove,⼀般⼤家都会说LinkedList要⽐ArrayList快,因为ArrayList要移动数据。
2 、 concurrenthashmap 1.7和1.8区分:
public LinkedHashMap() {// 调⽤HashMap的构造⽅法,其实就是初始化Entry[] tablesuper();// 这⾥是指是否基于访问排序,默认为falseaccessOrder
}
1 、 LinkedHashMap存储数据是有序的,⽽且分为两种:插⼊顺序和访问顺序。默认为插⼊顺序。
2 、 LinkedHashMap有⾃⼰的静态内部类Entry,它继承了HashMap.Entry,定义如下 :
Entry<K ,V> extends HashMap .Entry<K ,V> {// These fields comprise the doubly linked list used for iterationEntry<K ,V> before , after ;Entry(int hash , K key , V value , HashMap .Entry<K ,V> next)super(hash , key , value , next) ;
}
3、所以LinkedHashMap构造函数,主要就是调⽤HashMap构造函数初始化了⼀个Entry[] table,然后调⽤⾃身的init初始化了⼀ 个只有头结点的双向链表。
8.⽆穷数就top K问题,提供多个⽅案
1 、最简单且最容易想到的算法是对数组进⾏排序(快速排序),然后取最⼤或最⼩的 K个元素。总的时间复杂度为 O(NlogN)+O(K)=O(NlogN)。该算法存在以下问题:
1. 快速排序的平均复杂度为O(N*logN),但最坏时间复杂度为O(n2),不能始终保证较好的复杂度
2. 只需要前k⼤或k⼩的数 , ,实际对其余不需要的数也进⾏了排序,浪费了⼤量排序时间
总结:通常不会采取该⽅案。
1. 若Sa中元素的个数⼤于或等于k,则在Sa中查找最⼤的k个数
2. 若Sa中元素的个数⼩于k,其个数为len,则在Sb中查找k-len个数字
3、寻找N个数中的第K⼤的数,可以将问题转化寻找N个数中第K⼤的问题。对于⼀个给定的数 p, 可以在O(N)的时间复杂度内找出 所有不⼩于P的数。
总结:该算法只需要扫描所有的数据⼀次,且不会占⽤太多内存空间(只需要容纳K个元素的空间),尤其适合处理海量数据的场 景。算法的时间复杂度为O(N * logk),这实际上相当于执⾏了部分堆排序。
9.a,b,c三张表,做关联查询,如何优化,可做外键,只在c表加a表外键即可。
对于要求全⾯的结果时,我们需要使⽤连接操作( LEFT JOIN / RIGHT JOIN / FULL JOIN);
不要以为使⽤MySQL的⼀些连接操作对查询有多么⼤的改善,核⼼是索引;
对被驱动表的join字段添加索引;
10.CourrentHashMap JDK1.7和JDK1.8有什么区别?
11.线程a,b,c,d运⾏任务,怎么保证当a,b,c线程执⾏完再执⾏d线程?
12.拆分微服务应该注意哪些地⽅,如何拆分?
13.有没了解Docker, Docker和虚拟机有什么区别?
14.同⼀个宿主机中多个Docker容器之间如何通信?多个宿主机中Docker容器之间如何通信?
15.⾼并发系统如何做性能优化?如何防⽌库存超卖?
16.如何保证服务幂等性?
下载链接:博主已将以上这些大厂面试题整理成了一个面试手册,是PDF版的
商汤科技Java面试题(含答案)相关推荐
- 亚信科技java面试题及答案.doc
亚信科技 java 面试题及答案 亚信科技 java 面试题篇 1 ( 共 30 分 ) 1 . (14 分 ) 在计费系统的预处理程序中,对话单进行格式转 换时,需要使用 strcpy 函数已知 s ...
- java 字符串乱码_这份Java面试题含答案解析竟然真的让你不用在面试上“如履薄冰”...
面试题集共分为以下十部分: 一.Core Java: 1 - 95 题1 - 24 页 基础及语法: 1 - 61 题1 - 13 页 异常: 62 - 69 题13 - 15 页 集合: 70 - ...
- 2017年商汤科技前端面试题
我是10.12在现场宣讲做的笔试,好像商汤都是如此吧.过了好久,才收到面试邀请,目前看来一般商汤会有五面. 一面: 自我介绍 给各项技能html css js打个分(后面好像针对最高和最低分别问) h ...
- java笔试题含答案总结五
1.正确的是() A.LinkedList 继承自 List B.TreeMap 继承自 HashMap C.HashSet 继承自 AbstractSet D.AbstractSet 继承自 Set ...
- 商汤科技 java开发工程师 校招面经(已offer)
作者:菜鸟求SSP 内容来源:SSP面试笔记 大家一定要打好基础,基础真的超级超级重要!!面试过程有反馈,很喜欢这种感觉,给大家分享面试题: 1.自我介绍 2.java常用集合介绍 3.jvm 内存模 ...
- java笔试题含答案总结
1.下面代码输出是? enum AccountType {SAVING, FIXED, CURRENT;private AccountType(){System.out.println("I ...
- 春招面试经验系列(三)商汤科技
商汤科技 java基本上问的都是多线程的问题 一.java中int存储字节数: 1.1字节(byte)= 8位(bit) 2.整型:short 2字节.int 4字节.long 8字节 3.浮点型:f ...
- 埃森哲java开发怎么样_技术丨埃森哲Data Privacy 、商汤科技、平安科技人工智能(AI)类日常实习...
埃森哲-Data Privacy & Information Security系统实习生 岗位职责 1.Collect data assets info and assess asset ri ...
- 北大青鸟Java内侧答案_北大青鸟推荐:Java精选笔试题(含答案解析)
北大青鸟推荐:Java精选笔试题(含答案解析)如果你是计算机专业出生,但是还没有找到工作的话,你就得补补技术了,一些关于面试.笔试的题要多刷一刷.有可能你知道答案,但是由于语言组织能力有所欠缺,所以面 ...
- 数据分析真题日刷 | 商汤科技2018校招C++/算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第二场
断了大半个月没有刷题,进入「数据分析真题日刷」系列第13篇 . 今日真题 商汤科技2018校招C++/算法开发/大数据/后端/运维/测试/数据挖掘开发工程师笔试第二场 (来源:牛客网) 题型 客观题: ...
最新文章
- Attribute class invalid for tag present according to TLD
- 皮尔逊相关系数 定义+python代码实现 (与王印讨论公式)
- 权重初始化方式对神经网络迭代次数的影响
- CDH6.3.2界面配置hbase-site.xml的方法
- 回忆四班的那些事儿~
- 7年老Android一次操蛋的面试经历,挥泪整理面经
- 通用Key-Value存储系统的存储管理策略解析
- [unity3d]Assetbundle使用示例2(支持多平台)
- Event Filter Table Entry
- 超市管理系统连接服务器失败,超市管理系统应用解决超市管理难题
- html5响应式的插件,Chocolat-jQuery响应式LightBox插件 -HTML5功能
- android eclipse ddms 查看线程,android ddms中查看线程释疑
- 关于springboot无法跳转解析html,404,500无法创建实体类工厂
- 10 大开源免费的项目管理软件推荐
- uniapp APPH5端获取地理位置信息(百度地图高德地图)
- 针对开放平台的架构理解
- 时序路径(Timing path)简介
- 谷歌浏览器输入网址显示该网页无法正常运作
- STM32 AT24C64 Hal库写入错误
- 计算机内存不足 c盘快满了怎么办,电脑C盘内存快满了怎么清理垃圾