Java面试题目总结

        今年的面试我个人感觉是非常不好的,没有准备好,况且之前一直在关注微服务,分布式中间件什么的,没有深究底层和源代码,面试的并不理想,目前已经入职,这里仅提供一些我面试中遇到的部分问题,不提供答案,虽然只提供面试题不写答案是很不地道的做法,但请理解我的初衷,如果你看了这些都不想动手去找答案,去理解分析,那你还不如不看来的爽快,还有就是我对这里的一些问题的理解也不是很充分,不想误人子弟。

一.Java基础

  1. 请介绍一下你自己?(说明一下为什么要把这个问题放在这里,你必须先介绍一下你的应聘职位,教育经历,工作项目经历.很多公司的面试官是极其不负责任的,事前并没有查阅你的简历,过去就是随便跟你怼,这样真是浪费彼此的时间)

  2. 接口和抽象类的区别是什么?

  3. 请描述一下集合框架体系以及他们的区别?(这里主要说说ArrayLIst,LinkedList,HashMap,HashSet等常用的工具,讲讲他们的区别和性能)

  4. 多线程了解吗?同步和异步的区别?同步方法和同步代码块分别如何使用?

  5. 请从代码层面和数据库层面描述一下锁?

  6. 并发包你用过吗?他在Java中的哪个包下?都有哪些常用的工具请简单介绍一下?

  7. 如何解决高并发问题?

  8. 给你100W条用户数据,你使用什么方式存储在数据库中效率最高?

  9. 一个类从创建到运行中间有哪些过程?(JVM的类加载机制)

  10. JVM的内存模型了解么?简单聊一下?(Z...)

  11. Cookie与Session的区别和联系?

  12. 算法和数据结构有看过吗?简单聊一下

     

二.Java框架

  1. SpringMVC中后端如何接受前端传递的List数据?

  2. SpringMVC的工作流程是什么?

  3. SpringMVC中使用的设计模式有哪些?分别描述一下

  4. Spring中的事务管理?

  5. 简单介绍一下ORM?

  6. MyBatis中如何解决SQL注入的问题?(我工作中基本上都是注解式开发,前端传递的数据在Service封装校验完毕,再交给持久层处理,所以这一块我回答的让面试官并不满意)

  7. MyBatis中如何判断数据为null的情况?

  8. MyBatis和JDBC的区别和联系?(要谈到性能效率问题)

  9. Dubbo用过吗,简单介绍一下?

  10. Dubbo底层了解吗,请描述一下?(架构?协议?设计艺术?)

  11. Dubbo如果没有了Zookeeper的支持,如何手工实现?(就我目前的知识储备来看,临时无解)

  12. Dubbo的内容提供者和服务消费者在配置文件中如何配置?(我居然也没回答出来)

  13. Dubbo的分组用过吗?为什么要使用分组?

  14. SpringBoot和Dubbo的区别是什么?(网贴中很多都是谈论SpringCloud和Dubbo的区别,这里说明一下,SpringCloud是基于SpringBoot的,这样问没问题)

  15. SpringCloud中常用的服务组件有哪些?各自的业务场景是什么?(Eureka、Fegin、Ribbon、Zuul、Hystrix?)

  16. SpringCloud中常用的注解有哪些?分别有什么作用?

  17. SOA和微服务架构的区别是什么?

     

三.中间件

  1. 集群中Session共享如何配置?

  2. Redis和Memcache的区别是什么?

  3. Redis和MongoDB的区别是什么?业务场景说一下?

  4. Redis的持久化方式有哪些以及他们的区别?

  5. 用户数据为什么要用MySQL存储而不用MongoDB?

  6. MQ用过吗?业务场景说一下?

     

四.前端

  1. JavaScript中如何取出一个Class中的值?有哪几种方法?

  2. 前端数据如何跟后端交互?

  3. 如何解决跨域问题?

  4. Vue中跟后端通信的常用组件有哪些?

  5. 前后端分离如何保持用户的登录状态?

  6. Freemarker如何进行静态化?

     

五.运维

  1. Nginx有哪些常用的模块,简单说明一下?(SSL?Proxy?Log?)

  2. Nginx如何配置负载均衡?

  3. Nginx如何配置静态资源访问?

  4. Nginx反向代理的系统中,如何在服务容器中获取用户真实IP?(电话面试,不知道)

  5. Linux中查看日志有哪几种方式?

  6. 如何进行热部署?(布吉岛啊)

     

六.开发工具

  1. Maven中如何依赖一个工具包?

  2. Maven中如何解决jar包冲突?

  3. Git中如何进行版本回滚?回滚到指定版本号

  4. Git初始化一个仓库之后如何将已有的项目代码上传?

  5. Git如何合并开发分支?

  6. Jenkins中常用的插件有哪些?

  7. 你以往公司的项目部署流程是什么?

 

结束语:

       这次的面试总结了一点就是,底层很重要,基础很重要,我个人涉猎比较广泛,喜欢玩的技术很多,但是发现很多都不了解底层,实属惭愧,去了两家大公司,浪费机会了/难过。吐槽的一点就是,现在的公司,就算你面的很好,聊的很愉快,他们也让你回去无限期的等通知,不会考虑到一个求职者的不易。顶着太阳,冒着雨坐了1个多小时的公交去面试,结果什么回应都没有。当然也有遇到好的面试官,会给你指出你的不足,给你讲解技术点。

 

转载于:https://my.oschina.net/vechar/blog/1673050

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值