记一次java面试(小黑鱼)
一、hashMap与hashTabel的区别:
1、线程是否同步
HashMap不是线程安全的,HashTable是线程安全,他们之前的方法基本上都是相同的,HashMap的效率明显要比HashTabel快。
2、扩容(基于JDK1.8)
上面是我回答的,有点紧张许多知道的点没说,
例如:当getmap中的值首先用hashcode比较如果相等时接下来会比较用equals比较值。
接下来问我我会怎么实现一个同步的map,然后我想到了ConcurrentHashMap
说了一下concurrentHashmap是多段上锁,当时后面说了一句没看过源码具体不知怎么实现的,现在想来该说一下concurrentHashmap相率回避HashTable快,concurrentHashmap只有在调用size的时候会锁住整个表。没把自己知道的说出来。
二、问了redis应用场景、MQ应用场景
redis说了session持久化,以及做查询缓存。
然后问了用的时候遇到的坑,整个没答好。
现在想起来做缓存的时候,redis如果命中不了会以下字把压力压向数据库,会造成数据库雪崩,这里之前我在腾讯课堂里面听过解决方案,就是对查询上try lock锁,让一个请求去请求数据库,请求完其他的能继续从缓存中获取。
MQ我讲了之前我用MQ+log4j实现的日志系统。现在想来应该再说一下MQ的好处:如:削峰、解耦等。
然后问了主流MQ的区别如何选择:
这个知识点之前在文章中看过,但是说实话没记住,只是模糊的记者事务、持久化这些但具体到就忘了。
RabbitMQ、ActiveMQ、Kafka:
数据可靠性
- RocketMQ支持异步实时刷盘,同步刷盘,同步复制,异步复制
- 卡夫卡使用异步刷盘方式,异步复制/同步复制
总结:RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统Crash,导致数据丢失。Kafka同步Replication理论上性能低于RocketMQ的同步Replication,原因是Kafka的数据以分区为单位组织,意味着一个Kafka实例上会有几百个数据分区,RocketMQ一个实例上只有一个数据分区,RocketMQ可以充分利用IO组Commit机制,批量传输数据,配置同步Replication与异步Replication相比,性能损耗约20%~30%,Kafka没有亲自测试过,但是个人认为理论上会低于RocketMQ。
性能对比
- 卡夫卡单机写入TPS约在百万条/秒,消息大小10个字节
- RocketMQ单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节
总结:Kafka的TPS跑到单机百万,主要是由于Producer端将多个小消息合并,批量发向Broker。
RocketMQ为什么没有这么做?
参考:http://jm.taobao.org/2016/03/24/rmq-vs-kafka/
三、用AOP做了什么
我回答咱们项目中都会用它来做事务;我用AOP做过日志,横切的service层,service方法中入参回参打印日志,减少开发人员工作量。
然后问我AOP的坏处,我没想到,然后说会影响性能,然后就想起来反射影响性能。
四、quart
因为简历上有写quart,然后就说了一下quart有两种配置一种XML一种注解,具体的方法记不住了。后面又说了一下我用quart做了定时统计这个。
------------------------------------------------------
大约问了以上技术问题。
下面简单说一下面试过程,面试过程大约一个小时
1、第一个面试官主要是问了一些之前做的项目,问了一些业务。
(自己的回答不是很满意)
以后需要好好回想一下自己做过的项目
2、问的技术主要是细节基础的
3、第三个面试官也是问了许多技术但是没问细节
感觉自己面试悬,因为回答的不是很满意后面也没提待遇等等其他问题,只是说今天先这样。
欢迎关注技术公众号,一起学习
记一次java面试(小黑鱼)相关推荐
- 分享几个Java面试小技巧,建议收藏!
Java可谓编程界的元老,其资深地位无人撼动.那么学习Java的你,在面试时过五关斩六将还顺利吗?通常来讲,程序员的逻辑思维很清晰,在表达自我方面直接,但这在面试中可行不通,毕竟面试涉及到人际交流,所 ...
- GitHub上最火的两份Java面试小册,Star已经超百万
大家好,给大家带来两份GitHub上Star超百万的Java面试小册,独家整理!! Java面试小册内容涵盖Java.MyBatis.ZooKeeper.Dubbo.Elasticsearch.Mem ...
- 备战金九银十!【Java 面试小抄】涵盖当下最时新热门技术点,学完 offer 得拿到手软~
面试的重要性: 最近替公司面了几个应聘者,结果给我整抑郁了,9 点的面试 9 点 10 分才到!!!这还不是最重要的,重要的是穿着一眼就让人看出来没有对这场面试很重视的感觉!!但是小编还是面完了,很多 ...
- 【Java面试小短文】HashMap是如何解决Hash冲突的?
欢迎关注Java面试系列,不定期更新面试小短文.欢迎一键三连! 文章目录 什么是Hash算法? 什么是Hash表? HashMap是如何解决Hash冲突的? 什么是Hash算法? Hash 算法, ...
- 【Java面试小短文】当任务数超过线程池的核心线程数,如何让它不进入阻塞队列直接启用最大数量的线程去执行任务?
欢迎关注Java面试系列,不定期更新面试小短文.欢迎一键三连! 当任务数超过线程池的核心线程数,如何让它不进入阻塞队列直接启用最大数量的线程去执行任务? 当我们提交一个任务到线程池,它的工作原理如下: ...
- 记浙江大华校招Java面试
我是收到了电话,短信,邮件通知,让我在12月7日下午去面试.由于人不在杭州,那天早上早早的赶火车去了杭州.下了1号线,抬头看到的是海康威视,再看看地图,大华离1号线还挺远的. 到了大华之后,门卫还要面 ...
- 记一次Java面试中遇到的三个问题及感悟!
作者:温安适 my.oschina.net/floor/blog/1841962 1. http get问题影射思维问题 与面试官的交流如下: 面试官:"一个http 请求,接受json数组 ...
- 阿里首席技术官上传一份“面试Java面试小抄”,下载量突破百万
前言 再过一周,马上将迎来新的一年,希望大家在2021年"牛气冲天,牛年大吉",一起迎接春暖花开之时. 金三银四马上就到了,很多粉丝朋友希望我出一篇面试专题或者分享面试相关的笔记来 ...
- Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子,java面试经验技巧
/*简单,时间复杂度也低*/ # include < iostream > using namespace std; ` <一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解 ...
最新文章
- 压缩工具gzip,bzip2,xz,zip,tar
- R语言绘制核密度图实战(Kernel Density Plot)
- 生产环境可以用吗_小型熔喷布设备可以生产出好的熔喷布吗?
- caffe 加入 cudnn编译
- C#实现多态之一抽象
- 从0开始学习 GitHub 系列之「03.Git 速成」
- CSDN,CNBLOGS博客文章一键转载插件 终于更新了!
- 数字加密c语言程序_国外程序员整理的 C++ 资源大全
- php windows共享内存,给PHP开启shmop扩展实现共享内存
- 【报告分享】2022戴森品牌社媒营销分析报告:搭“消费升级”快车,走“升维打击”路线.pdf(附下载链接)...
- flask 上传excel 前端_flask 笔记
- 产品经理处理问题“五步法”模板
- 四大顶级开源网络管理工具详解
- bootice工具修复linux,bootice工具怎么修复引导win7
- 从有到优:百度前端接入技术的升级之路
- PHPWAMP开启SSL,PHPWAMP配置ssl证书
- HTML5期末大作业:商城网站设计——小米商城官网首页(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码...
- 使用Java写入Excel下拉选择框选项过多不显示问题
- 从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件
- js室内地图开发_微信小程序室内地图导航开发-微信小程序JS加载esmap地图