以下题目搜集于面试过程中,主要适用于 1-3 年工作经验的开发者,当然个人以为工作3-5年后,还是会问这些个问题,只是面试官会揪着某一个知识点往深入里面问下去,就看被面试者自身的能力。
java 基础类
- HashMap 和 HashSet 区别?HashMap 和 HashTable 的区别?HashMap 和 TreeMap 以及LinkedHashMap 的区别?各自底层的数据结构是什么?HashMap、ArrayList 等数据结构的扩容倍率?HashMap 底层为什么要用数组?HashMap扩容机制?
- HashMap的数据结构是什么?数组加链表,那取值时如何从链表里面取到希望的value呢?
- Try…catch…return的返回值判断?执行顺序?return 加在 try 代码块里面之后的顺序?
- CurrentHashMap的实现原理?与 HashMap 相比而言,改进在哪里?如何实现的?
- 设计模式用过哪些?单例模式的几种写法?JDK 里面有哪些典型的API 是你刚才列举的常用的设计模式?
- 单例模式的判断,即给出一个类似单例模式的代码段,指出里面的错误的地方?懒汉 vs 饿汉,两者的区别?
- JDK 动态代理和 cglib 代理的区别?
- 关于时间复杂度的计算和推导是否熟悉或者了解,ArrayList的时间复杂度,各种排序算法的时间复杂度是多少?Spring 框架里面有哪些设计模式应用?
- JVM的结构图?ClassLoader原理以及示例图?两个类是否可以互为父ClassLoader?
并发和并行区别? - 线程之间的通信方式?创建线程的几种方式?wait()和sleep()的区别?
- 用过哪些多线程API,在什么样的场合下选择使用这个API?还知道其他一些API吗?有什么区别?
- 关于多线程,ThreadPoolExecutor 的几个重要参数,分别是什么意思?举一个现实中的实例,加以说明最好。
- synchronized关键字和juc锁的对比区别?
- 现实问题如OOM或者死锁的排错思路?
- Checked Exception 和 Unchecked Exception 的区别是什么?已经有 checked exception 的情况下,JDK 为什么还要提供 unchecked exception?
- 关于序列化,是否implements Serializable,关键字transient,然后是修饰符private和public,问哪个属性可以序列化到文件?
- 运算符的优先级(不常见)
- Java堆的划分?
- 垃圾回收机制以及算法?相互引用的两个独立对象如何被垃圾回收器回收?垃圾回收判断可达的出发点是什么?
- Equal和==的区别?equals() 和 hashCode() 方法?什么时候需要重写?
- java.io.* 包的熟悉程度;字节流与字符流的区分(如选择题)?进一步,nio 的理解,其使用场景。
- SPI的思想?SPI的应用场景?
- Java调用外部程序的方法?比如dll文件等;
- 如何用Java自带的API写程序导出Dump文件?(应该是没记错的)
- 如何查看每一行Java程序代码的内存消耗?
- 实现一个线程安全的阻塞队列?
- 网络socket有了解不?进一步,Netty?
JVM
- 内存屏障?JVM?JMM?
- Volatile以及CAS原理?
计算机网络
- 七层网络协议
- TCP/UDP
框架类
值得一提的是,其中的核心框架,无论是Spring ,还是Spring boot,亦或是Spring cloud,都可以拿出很多问题来考查。
Spring
- Spring中有哪些设计模式?有没有单例模式?Spring bean 是不是单例模式?或者直接问 Spring 中 bean 的生命周期是什么?
- 简单论述一下Spring IoC?IoC的种类?IoC容器的启动过程?Spring web的核心作用?Spring的几种bean的作用域?@PostConstruct & @PreDestroy两个注解的作用,结合Spring 来讲?
- 讲讲 Spring!!spring的启动过程?你对Aop的理解,ApplicationContext 和 BeanFactory 两个类的区别? AOP的使用场景?
- 对 spring 事务控制的理解?7种传播?4种读的理解?
spring boot
- spring boot 的优势所在?spring boot 如何做到自动配置的? spring boot 开发中并没有 web.xml 文件,你对这个缺失文件的理解?如何做到的?bootstrap.yml 文件的使用场景?application.properties 和 application.yml 文件的区别?
Spring cloud
- Spring cloud各组件的基本使用和了解?Feign的重试机制,Eureka的保护机制,Zuul的路由机制等?
- Spring cloud与Dubbo的区别?与微服务的区别?
ORM
- ORM的思想?懒加载如何配置以及意义?级联如何配置,什么时候应该使用级联?一级缓存:Session级别的缓存?@Version的使用:数据库的乐观锁?
- MyBatis 如何实现连接不同的数据库,并且做到统一适配?(不明白什么意图?测试环境使用MySQL数据库,但是生产数据库不仅仅是MySQL,还有oracle等。一套代码!!!不是多数据源。
- MyBatis如何实现分页?自带的插页功能性能不好,可以使用PageHelper;如果让你设计实现 mybatis 分页,如何实现?那数据库层面的话,是如何支持分页查询?
- Hibernate 的 get() 和 load() 方法的区别? Hibernate 的 lazyload 和 session 啥的区别?
Tomcat
双亲委托类加载机制,以及相关调优参数。
调度
- 调度框架你有用过吗?在什么样的场景下会需要使用调度框架?quartz的使用?quartz的数据(需要存储哪些任务job的数据?)存储有几种方式?quartz与spring或者spring boot的集成如何实现?cron表达式可知道?Quartz框架如何实现动态改变Cron表达式,来实现动态执行Spring定时任务?
- 你们的系统是不是微服务形式,或者是分布式部署形式?那分布式情况下的调度如何实现?
- 开源的分布式调度中心框架,你知道哪些?可看过源码?
其他
- SocketTimeOut以及connectionTimeOut的区别?(apache 的http client)
web 开发
HTTP
- HTTP四种方法?
- 大致讲解一下 HTTP 协议?
- HTTPS 和 HTTP 区别,加密算法有哪些?
Nginx
- 解释反向代理、正向代理。正向代理和反向代理的区别?
- Apache和Nginx的区别?
- 常用的负载均衡算法:ip_hash ,轮询,weight,fair。
- 配置动静分离。
RESTful
- RESTful API 的理解以及其实现方式?
- restful http通信与RPC通信的对比?耦合性,通信性能,异构系统的互信各个角度对比。
- Session与cookie的区别?cookie的作用?cookie存于什么地方?session的创建以及销毁时机?session存在什么地方,能否持久化?session共享是什么意思?
其他
- 如何防止表单的重复提交?
- 如何保证表单的前后台编码的统一?
数据库
- 数据库的横表转纵表,反过来,纵表转横表?对横表和纵表的区别和理解以及使用场景等。
- 关于数据库索引,如何设计?
- Union all operator 和union区别?
- left join,right join等区别?
- 数据库引擎有哪些,区别是什么?
- 如何定位一个慢查询?
- 数据库查询如何建立索引?索引优化?加索引为何能够提高查询速度?存储引擎是什么?SQL 优化手段有哪些?数据库的读写分离?由此带来的延迟问题如何解决?什么情况下会发生索引失效的问题?
- 给出三张数据库表,如何联合查询?联合主键是什么?
- 给出一个查询语句:
select like ''
,能不能对索引进行优化? - 数据库如何进行版本升级?答:两台IP server,使用内网域名而不是各自的 IP 解耦合,DNS 配置,数据迁移工具,域名指向新的IP。
- 死锁是什么?死锁的产生条件?如何避免?
- 乐观锁与悲观锁?
缓存
说到数据库,肯定会问你除了CRUD之外,更进一步索引的设计以及优化,进一步分库分表的实现等,还有哪些问题之类。肯定会提到请求量过大的解决方法,话题就不经意之间转移到缓存这方面来。又是一个相当大的话题!
大而范之,关于缓存的问题:
- 缓存的应用场景?写缓存的时机?
- 缓存雪崩,缓存失效,缓存穿透,预热等。
Redis
仅以Redis来说的话,问题包括但不限于:
- Redis的常用数据结构。
- Redis的持久化策略,RDB和AOF的使用场景,如何实现持久化的?
- Redis的发布订阅。
- 列举Redis的使用场景;除了主要功能缓存之外,还包括session共享,基于Redis的分布式锁,简易的消息队列等。
Redis的集群和哨兵机制。 - Redis实现流量控制?
- Redis开源客户端:Jedis,redission……
消息中间件
- MQ的使用场景?
- 使用多哪些消息中间件?
- RabbitMQ?
- Kafka?
分布式
- 分布式了解不?锁并发的理解?分布式锁的实现方式以及优缺点?Redis分布式锁如何实现?和数据库锁有何区别?
- 分布式最根本的问题?一致性
- CAP和BASE原理。
- 一致性哈希算法?
- 分布式,最基本的节点?节点的角色?节点如何实现负载均衡?服务提供者如何实现高可用?
- 节点之间的传输协议是什么,http/tcp/udp?tcp和udp的区别?
- RPC框架的性能的关键点是什么?
- 分布式链路跟踪。Dapper论文,Trace,Span,Annotation,埋点等基本概念的含义?Zipkin,Spring Cloud Slueth?
- 分布式事务。二阶段提交,三阶段提交,Paxos,TCC?分布式事务框架?
- 熔断与降级的概念和对比?Hystrix可有了解?
数据结构与算法题
- 100000张试卷,抽取试题,每套试题100道,单套试题不能有重复的题目,两套试题之间最多有一个试题允许重复,问实现结果的数量级?如何最优化实现?
- Top k 问题的解决思路?进一步,如果限制内存 256M,对一个4G 的文本文件进行排序,如何实现?你这个方法的时间复杂度是多少?参考
- 给定一个字符串,如何实现倒序输出?输入字符串,空格切割,反转单词组成的字符串?
- 如何 trim 字符串里面两个以上的空格?
- 时间复杂度和空间复杂度的计算?给定任一算法,分析其复杂度?
- 给定一个数组,实现这样的排序:奇数在前,偶数在后;改进算法有没有?改进时间、空间复杂度等;
- 已排序数组的给定数字的第一个索引的出现位置?
- 给定一个表达式,如何校验其有效性?提示:可以考虑前缀、中缀、后缀表达式?逆波兰啥的?
- 给定中序遍历和后序遍历,求前序遍历;编程算法实现呢?
- 有环的链表,两个指针,不同步长,问最少需要共同走多少步才能相遇;深入一点,如何判断一个链表有环?编程算法实现呢?
- 链表的反转;
- 已排序数组求出其中某个数字(出现不止一次,也可以0次;当然考题不会说明得这么详细,这是编码设计时应该要考虑到的)的起始终止索引;
- 哈夫曼树;
- 递归实现二项分布;
- 二叉树的反转?
- 求矩阵的平均值?比如给定一个3*3的二维矩阵,元素值是灰度值0或1,求平均值,如左上角的平均值是周围四个元素的平均值。
- 三个连续的整数,其中两个是质数,证明第三个是6的倍数。参考
- 遗传算法,粒子群算法讲讲?
编码题
- 给出一大串集合操作,将其转换为 java8 的 stream 流式操作。
- 取一个给定路径下面的最大的n个文件的全路径名;
- 实现一个消费者-生产者模型,producer、consumer。
- SmartPhone,iPhone,Android,Windows Phone,以及由此而生的带有brand信息的Phone,怎么设计?
Linux
- 平时用Linux多吗?最基本的Linux命令行可知道?
- 一个系统访问日志,比如nginx.log,统计访问次数最高的10个IP?
- 对文本进行排序并取前十个?
sort xx.txt | tail -n 10
- Linux下的IO模型,epoll和poll的区别等;
微服务
- 微服务定义与概念?设计原则?与SOA的区别是什么?SOA的设计原则?
- 服务的注册中心是什么?如何实现一个注册中心?
docker
- docker的概念?优势何在?为什么如此火?如何看待这门新技术(可以作为开放性问题考查)
kubernetes
- Kubernetes异常状态有哪些?
论述题
可以说是简单题,有让写纸上的,也有直接口述的,也有让画设计图或者架构图之类的,等等。
- 设计一个高并发的抢红包系统,确保金额的快速即时从A账户转到B1,B2,Bn等?
- 抛一枚硬币,正面朝上的概率是60%,反面朝上的概率是40%,问如何实现50-50的概率,即抛多少次才能实现?
- 如何设计秒杀系统?如何设计限时购系统?限时购与秒杀的区别?
- 购物车设计?锁库存如何实现的?如何避免库存超卖的问题?
- 系统登录模块的用户名/密码验证?简单系统和复杂系统的登录模块的区别是什么?SSO知道吗?LDAP知道吗?SSO与LDAP的区别是什么?放在微服务环境下,如何做鉴权?再者,401 和 403的错误码是什么意思,两者的区别是什么?
非技术性问题
- 怎么看待加班问题?
- 给你一个小模块,你能不能独立完成实现功能?
- 讲述项目经历,如何解决一个困难的问题?
- 看过哪些开源项目?可否讲解一下其核心原理?为什么选择这个开源项目等?
- 项目遇到什么问题?怎么解决?
- 近在看什么书?
- 业余时间学习什么技术?这个技术有没有反过来用于工作中?
- 有没有对产品提出什么建议或者意见?
- 如何看待新技术?你知道现在开发领域有哪些新的技术吗?无论是语言,开发工具,框架,还是践行方式理念等?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142373.html