2020 社招 JAVA面试题总结
目录
Java基础
JVM
计算机网络
设计模式
MySQL
spring
redis
dubbo
zk
mybatis
算法题:
应用
最后说些感想:
Java基础
最常考的:
HashMap、ConcurrentHashMap、ArrayList、LinkedList、String、Stringbuffer、Stringbuilder、Synchronized 、Volatile、AQS、ReentrantLock、线程池。
面过几家大厂,都很喜欢把上面这些常考的知识点进行深挖。所以有源码的最好能看一下源码。Volatile、Synchronized这种要了解一下底层实现。
- 8种基本数据类型和其范围
- string的intern()方法
- String类的底层实现
- string、stringbuffer、stringbuilder的区别
- 自动拆箱、自动装箱
- final关键字
- exception和error的区别
- 运行时异常的举例
- 四种引用类型
- 反射机制
- 实现线程的方法(算上线程池一共四种)
- 线程的状态
- wait()和sleep()的区别
- 线程池参数、拒绝策略、
- 线程池的原理 (先是核心数 超过核心数 进阻塞队列 等...)
- 线程池有几种(最好把参数也说一下)
- AQS(队列同步器)的实现 和内部原理
- volatile的原理:原子性、指令重排、JMM最好都说到
- Synchronized的原理、锁升级
- Synchronized和LOCK区别
- reentrantReadWriteLock相关的知识
- threadLocal的原理(看源码)
- NIO的原理
- 集合类的架构。集合类相关的东西、了解的越多越好。源码吃透了最好。
- hashmap:高频考点。建议看源码,了解的越多越好。
- hashmap 负载因子为啥是0.75.
- hashmap put()函数的过程,
- hashmap node内部类的实现
- HashMap为啥头插法会出现循环
- 某公司还让我手写过hashmap 的 put函数和node内部类。
- concurrentHashmap(1.7和1.8的区别)数据结构
- ArrayList 和LinkedList的区别
- 页面跳转的两种方式(重定向和转发)
- 为什么重写equals一定要重写hashcode?
JVM
- 运行时数据区 或者叫内存模型
- 垃圾回收算法
- 垃圾收集器
- 双亲委派
- OOM问题
计算机网络
网络基础差的可以看一下《网络是怎样连接的》
- http状态码 2** 3** 4** 5**
- TCP和UDP的区别
- 三次握手,四次挥手,为啥是握手三次
- HTTP请求、响应消息的内容,可以举例说明
- DNS
- https的原理(这个被问了好多次)
设计模式
- 说说单例的几种实现方式,
- 饿汉和懒汉模式,哪个是线程安全的(饿汉)
- 单例中双检锁模式怎么实现的
- 观察者模式的思想
- 动态代理模式的实现原理
MySQL
- myisam和Innodb区别
- 事务的定义
- 事务隔离机制
- 索引的数据结构(hash、B+树)两种数据结构的索引使用场景,为什么使用B+树
- 聚簇索引和非聚簇索引
- 索引覆盖
- 索引下推
- 联合索引
- 索引的缺点、设计索引的时候应该注意什么
- 索引优化
- MVCC
- undolog、redolog日志
- 写一个sql实现死锁
spring
因为springcloud没用过没在简历上写,也没人问过
- spring常用注解
- spring中bean的作用域,Singleton和prototype的区别
- spring中有哪些扩展点
- spring如何解决循环依赖(三级缓存)
- springBean的生命周期
- spring IOC AOP
- spring中有哪些设计模式
- spring事务、和spring事务传播机制
- springMVC的原理(就是dispatcerServlet的那个图)
- spring容器怎么感知到注解
- springBoot自动配置
redis
- AOF、RDB。
- 数据类型
- redis大key问题
- 雪崩、穿透、击穿的场景和解决办法。(雪崩解决方法一般都会回答布隆过滤器,然后还会接着问布隆过滤器咋实现的)
- redis慢指令(keys )
- redis分布式锁的实现
- redis为什么是单线程的
- 哨兵模式
- redis的拒绝策略
- redis的过期键删除策略
- redis集群中槽是怎么分配的
- 跳跃表咋实现的
- redis的应用场景
dubbo
- dubbo的组成(Customer、Provider、Monitor、Registry、Container)
- dubbo的协议
- dubbo的分层
- 注册中心挂了可以继续通信吗
- RPC框架的原理
- dubbo负载均衡策略 RandomLoadBalance随机(缺省)、LeastActiveLoadBalance最小活跃数、ConsistentHashLoadBalance一致性hash、RoundRobinLoadBalance轮询
- dubbo配置域生效的优先级
zk
- zk的通知机制
- zk服务器某个节点不可用会发生什么
- Znode
- ZK集群节点数量为什么要是奇数个?
mybatis
经过多次面试发现mybatis问的其实不多
- #{}和${}的区别
- 一级缓存和二级缓存
算法题:
- 最小路径和 https://leetcode-cn.com/problems/minimum-path-sum/
- 整数反转 https://leetcode-cn.com/problems/reverse-integer/
- 仅仅反转字母 https://leetcode-cn.com/problems/reverse-only-letters/
- 快排的思想 (让基准值回到他正确的位置)
应用
- 工作中有没有遇到OOM,OOM的工具
- 如何保证接口的幂等性
- 如何接口限流
- 简单设计一个秒杀系统
- 工作中SQL优化的案列
- 如何设计一个数据库;很发散的一道题,考察的也很全面。索引、数据类型的选用、三范式。数据库相关的会啥就说啥就行了。
- 如何保证redis和MYSQL数据的一致性
最后说些感想:
1.找工作是持久战(自己水平不高,遇到了很多挫折)。
不要轻易放弃,尤其是在今年这样不好的大环境下,更有做好持久战的准备。其实有些坎儿,扛过去了人就上了一个台阶儿。就像很多NBA球员,经历过一次总决赛、拿了次总冠军之后,在下赛季往往能打出更好的表现。一是更自信了,二是经历了挫折的洗礼,人得到了成长。所以在面对挫折实在坚持不下去的时候,告诉自己咬牙再坚持一下。
2.适当拔高简历。
简历是入场券,是获得面试机会的钥匙。没有面试机会,一切都是扯淡。
所以如果你有对自己的评价60分,最开始的时候可以把简历写成80分。80分的简历,大概率面试机会不会少。然后面试官就会拿80分的水准来考你,这样的面试如果运气好过去了,捡到了。
大概率是过不去的。过不去也不怕,至少你知道了一场80分的面试是什么样的,这样面试之后就有了方向,也认识到了自己的不足,按照这个方向学习。总会有达到80分的那一天。反正就是要勇敢些,不要怕面试官的黑脸。
3.接触更多优秀的人。
老东家给力,裁了些校招生,有的直接回老家了,有的卧薪尝胆几个月,最后去了比原来更好的互联网公司。说来也巧,我有两位大学同样离开了校招的公司,但是他们都通过自己的努力找到了更好的公司。有他俩在我之前做榜样,我的动力和信心也增加了不少。我想起在18年我校招的时候,几个同学一起学习、面试,一起总结经验。没有他们的鼓励和陪伴,我现在啥样真的不好说。所以,真的要接触更多优秀的人。
4.人活着脸皮一定要厚啊!
要有一种说干就干的精神。比如不要惧怕任何大厂的面试,不要怕面试官的黑脸。路是走出来的,不是想出来的。有些事筹划着筹划着,就不是你的了,有时候再等等,再等等,汤都没得喝。实践是最好的学习方法,实践和认识是纠缠在一起的。不要害怕实践,不要顾及脸面。
5.持续学习。
首先很多知识都是需要经常复习,且常读能够常新的。很多东西,时常拿出来复习一下,再面试的时候就能够节省很多时间。
大厂都考编程题,编程题一般都是需要日积月累的,LeetCode要日常刷一刷。
2020 社招 JAVA面试题总结相关推荐
- 阿里巴巴社招Java面试题做题记录
阿里巴巴社招Java面试题 1.String和StringBuffer的区别 运行速度和线程安全两方面: 运行速度:StringBuilder >StringBuffer >String ...
- 邮储社招Java笔试题_2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套
2019年及历年中国邮政储蓄银行社招笔试题和参考答案6套 目录: 1.2016年中国邮政储蓄银行社会招聘笔试题和参考答案 2.2019年5月中国邮政储蓄银行社会招聘笔试题和参考答案 3.2019年中国 ...
- java北大青鸟试题_10个常见2020春招Java面试题及注意事项!
春招开始啦,在面试Java工程师的时候,同学们会经常会遇到一些很困扰的问题:感觉自己的Java技术能力还不错,甚至是游刃有余,但是到了面试的时候就凉凉:对面试官提出的问题感到迷惑,不理解面试官到底是想 ...
- java重写paint方法时怎么样不覆盖文字_美团十月社招Java面试题合集,JVM+Spring+Spring,看了答案其实也不难...
欢迎关注专栏<Java架构筑基>--专注于Java技术的研究与分享! Java架构筑基zhuanlan.zhihu.com Java架构筑基--专注于Java技术的研究与分享! 后续文章 ...
- 社招java阿里_阿里社招Java面试题总结一
面试题 1.String和StringBuffer的区别 2.gc的概念,如果A和B对象循环引用,是否可以被GC? 3.Java中的内存溢出是如何造成的 4.String s = "123& ...
- 阿里巴巴java社招面试_阿里社招Java面试题总结——面试官分享
面试题 1.Java中的内存溢出是如何造成的 2.gc的概念,如果A和B对象循环引用,是否可以被GC? 3.Error.Exception和RuntimeException的区别,作用又是什么? 4. ...
- 阿里2020春招Java实习生笔试题
阿里2020春招Java实习生笔试题 第1题 第2题 今天上午参加了阿里实习笔试,2个编程题(60分钟),做的简直是惨不忍睹,一个都没出来.虽然和面试无缘了,但希望能帮到后面笔试的同学,所以将题目大概 ...
- 网易社招Java面试(附详细答案)
今天看到网易社招Java岗位的面试题,大致浏览了下,发现还没有答案出来,所以自己就搜索整理下,将答案分享出来,由于水平有限,如发现错误或者疑问,欢迎斧正和讨论,大家一起进步 1. redis有哪几种数 ...
- 美团社招Java开发一面,二面,三面,四面合并面经
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 美团点评社招java一面 1.做一下自我介绍吧,简单说一下你的项目? 2.有遇到过内存泄漏吗?你们是怎么解决的?这个前阵子确实遇到过一次, ...
最新文章
- python可以做什么有趣的东西-python能做哪些生活有趣的事情
- 99行不用指针 c语言贪食蛇,关于C语言指针的问题
- android高德地图截屏,地图截图功能
- 菊安酱的机器学习实战
- 解决无线路由器无法进行账号认证上网的问题
- python自行实现支付宝证书签名验签全流程
- JS实现浏览器菜单命令
- simplest tensor core gemm sample
- MATLAB实现混淆矩阵
- 暴露自己IP地址有危险吗?
- Natural number
- 计算机组成原理简单模型机实验,CPU 与简单模型机设计实验
- YV12和I420的区别 yuv420和yuv420p的区别
- 功能测试---正交实验法
- 2021年上海会展行业发展现状及重点企业对比分析:展览面积为1086万平方米,同比减少1.97%[图]
- 多台FX5U之间无线MODBUS组网通讯步骤详解
- 0030铁道部花大价钱打造的12306订票网站的核心模型设计思路其实胜过无数网站
- 宣传片拍摄过程详细解析
- 互联网日报 | 4月28日 星期三 | 创维汽车品牌正式发布;Redmi正式进军游戏手机;网宿科技旗下云计算业务独立运营
- 口才技巧|应对不同的人的口才技巧
热门文章
- python操作pdf与图片相互转换
- 如何安装java-jdk
- 关于Error in render: TypeError: Cannot read property '0' of null问题的解决方法
- chrome 导入html书签,怎么把谷歌浏览器书签导出来?怎么将书签导入到别的浏览器中?...
- CC3200之ADC引脚使用+ad转换器的基本原理
- javascript制作钟表
- Centos7 常用的命令
- python中的bisect模块与二分查找
- 漂浮广告是什么?漂浮广告如何设置
- 活的恬淡宁静 萃取生命真谛