关于java基础

  1. String,StringBuilder,StringBuffer区别是什么?底层数据结构是什么?分别是如何实现的?
  2. HashSet的底层实现是什么?它与HashMap有什么关系?
  3. Java 的并发包里面有那些知识点?
  4. HashCode与HashMap的关系?
  5. 哈希函数的理解?
  6. map在put()的做了哪些事?
  7. 如果发生hash碰撞,有什么方法可以解决?
  8. 各种类型的锁?
  9. synchronize和lock?
  10. hashTable的数据结构?
  11. 线程安全的map即HashTable和CurrentHashMap,底层的线程安全是如何实现的?
  12. hashCode的原理?
  13. 什么情况下需要重写类的hashCode()方法?什么时候需要重写equals()方法?
  14. hashmap添加元素,如果通过hash值得到的位置如果有元素,哪一种情况会取代所在的元素?
  15. HashMap添加元素,如果是所得的桶数组的位置有值。该值则被添加到链表尾端,为什么会是尾端?
  16. ArrayList和hashmap底层结构,以及CurrentHashMap解决了什么问题;
  17. Hashmap的是否线程安全?为什么是安全或者不安全?
  18. HashMap、HashTable以及ConcurrentHashMap的区别;
  19. volatile关键字的理解;用在哪些场景?
  20. 线程的理解以及其实现方式;
  21. 线程池的参数有哪些?实现原理;
  22. 线程同步方法有哪些?
  23. 缓存的原理?为什么要用缓存?为什么会比数据库查询快?
  24. 反射机制的理解;
  25. Object中的方法;
  26. String的toString()方法的实现?底层原理?
  27. NIO与IO的异同;
  28. 垃圾回收机制的理解;
  29. java8的新特性有哪些?如何使用?
  30. static关键字的场景和意义;(拓展:final)
  31. 如何理解事务?
  32. 虚拟机的内存结构;
  33. 动态代理的两种实现方式;
  34. 悲观锁和乐观锁的区别
  35. 如何解决跨域问题?
  36. xml文件解析方式有几种
  37. synchronize的锁的类型
  38. 秒杀系统的设计
  39. 分库分表
  40. Spring底层是如何实现的;
  41. Tomcat容器启动的时候,spring的启动流程;
  42. SpringAop除了动态代理,还用了其余的什么原理?
  43. rpc框架
  44. 事务的隔离级别和传播机制
  45. docker
  46. 高峰期如何进行分流

高并发

  1. 造成线程安全的主要因素有哪些:
  2. 互斥锁是什么?java锁如何分类?
  3. 关于锁名词的分类
  4. 线程的创建方式;
  5. 三种创建方式分别有什么区别?(最终可以追究到最底层)
  6. 线程池的核心参数是哪些?分别表示什么意义?
  7. 通过线程池创建线程的流程是什么?
  8. Lock接口;
  9. synchronize和volitile的区别?
  10. 设计一个高并发的网站通用的技术有哪些?
  11. CAS是什么?
  12. JUD是什么?

分布式

  1. 关于分布式的一些基本概念
  2. springboot与spring相比优势是什么?
  3. springboot自动配置的原理是什么?
  4. 如果自己集成一个jar包到springboot中,该如何做?
  5. 如何解决分布式事务问题?

web

  1. servlet的实现以及其中的方法;

  2. token生成的原理;

常用的设计模式

关于前端

  1. 闭包的理解;
  2. js函数的理解;
  3. 如何优化前端?

关于框架

spring

  1. springIOC的理解;

  2. spring是如何通过xml配置或者注解配置生成实例对象的?

  3. springIOC的java底层原理;

    反射

  4. springAOP的理解;

  5. springAOP的底层的实现原理;

  6. spring如何解析视图;

  7. spring的常用注解;

  8. springmvc和Struts2的差异;

  9. 如何控制事务;

  10. 事物的隔离级别和传播机制;

  11. Spring BeanFactory与FactoryBean的区别;

  12. springAOP的应用场景;

mybatis

  1. mybatis的结构?

  2. 配置文件如何配置?

  3. mybatis处理多个参数的几种方式?

  4. 占位符有几种?区别是什么?

  5. 一级缓存和二级缓存的区别?

  6. Mybatis的类型转换器?

  7. mybatis接口没有实现类,他是如何操作数据库的?

hibernate

  1. mybatis 与hibernate的对比;优势,劣势,原理,如何选择;
项目 Mybatis Hibernate
开发效率 较容易上手;需要手动管理sql 较难上手;无需管理sql,专注业务
入门 简单 较难
灵活性 sql更加灵活 几乎不用写sql,封装性较大
性能 相对较高 相对较低
日志系统 除了基本记录功能外,功能薄弱很多 志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等
优化 更容易 更难
自动性 半自动 全自动
缓存 有更好的二级缓存机制
移植性 移植性低(绑定了sql) 移植性高
适用场合 1.有复杂的查询业务;2.无hibernate实践经验的 1.无复杂的查询业务;2.能够熟练应用hibernate的

SpringBoot

  1. springboot与springmvc最大的优势在哪?
  2. 一个加了事务注解的“新增方法”,抛出异常,数据有没有添加成功?

关于工具的使用

  1. git和svn的区别以及各自优势
  2. Jenkins的搭建和配置;
  3. maven是如何管理jar包版本的;

​​​

关于数据库

关系型数据库

  1. limit关键字从0到10与从100000到200000效率相差几个数量级,为什么?
  2. mysql的架构;
  3. 索引的原理;

  4. 索引的选取原则(通用):
  5. 为什么索引导致查询效率高?操作数据效率低?
  6. 索引的底层结构是什么?是如何实现的?
  7. 哪些查询会用到索引?哪些查询用不到索引?
  8. 索引类型?
  9. 聚集索引和非聚集索引
  10. 聚集索引的优缺点
  11. mysql索引的数据结构
  12. 数据库的隔离级别分别是什么?
  13. sql的优化方案;
  14. left join 与 inner join的差别;
  15. mysql的存储引擎MyIsam和InnoDB的区别;
  16. 主键和唯一索引有啥区别?
  17. 唯一索引能不能为空?

非关系型数据库

  1. 常用哪些非关系型数据库?哪些场景会用到?
  2. redis如何进行持久化?

关于网络协议

  1. UDP与TCP的异同;
  2. http的理解;
  3. webSocket编程;
  4. 什么是ajax?原生的ajax如何写?
  5. 比较get请求和post请求的异同;

关于linux操作

  1. 常用的文件操作命令;
  2. 查看线程信息的命令;
  3. 查看内存的命令;
  4. 部署项目的命令;
  5. mac与Linux服务器文件传输命令;

关于算法

  1. 常用的排序算法有哪些,分别如何实现(原理)?
  2. java中有哪些排序方式?原理是什么?
  3. 两个按降序排序的数组,用效率最高的算法组合成一个按降序排列的新数组;
  4. 回文字符串的个数;
  5. 一个若干字符串中括号的对数;
  6. 斐波那契的实现;
  7. 单向链表反转?
  8. 台阶问题?
  9. 输入一个字符串,输出一出现频率最高的字符,如果出现频率相同,则输出第一个字符;

​ ​

关于数据结构

  1. 常用的数据结构;

  2. hashmap是什么数据结构?

  3. 堆、栈、队列的特性是什么?

  4. 树的应用场景是什么?

  5. 二叉树与红黑树的理解;

关于所做项目

  1. 读写如何设置同步和异步;

  2. 如何处理排他处理?

    思路:数据库中存一个时间戳字段,每次加载页面的时候将时间戳带到页面隐藏域。向后台发送请求的时候将该时间戳与数据库中所存的时间戳对比,如果一致的话说明该数据没有被他人更新,如果不一致说明数据被他人更新了。

  3. 如何判断用户是否重复操作;

    可以有如下几种方案:

    ​ 1) 数据库层面:添加唯一性约束,通过账号、名称等信息进行唯一性约束;

    ​ 2) 页面层面:可以对操作按钮进行点击限制;

    ​ 3) 后端层面:提交时生成的token(一般是时间戳),存与session,提交到后端与之对比;

  4. 如何实现实时显示大计算的结果?

  5. 如何防止重复支付或者重复退款?

  6. 项目中如防止重复生成订单?

  7. 项目中遇到什么难题?是如何解决的?

  8. 下单时,如果在支付的时候,反馈给用户的是失败,然而调用第三方是成功,如何处理?

  9. 首先要缕清所有的流程,然后再拿出对应的数据表结构

关于分布式

  1. 分布式框架有哪些?

  2. dubbo和spring cloud的比较;

  3. Restful风格的接口的理解;

  4. rpc框架有哪些?如何使用?

  5. rpc和http的对比;

  6. 负载均衡的理解;

  7. 常用的mq的种类;(补充)

  8. RabbitMQ的作用?

PS(SongLea)

  1. 一个字符串里有多个左右括号 如何判断这些括号都是一一对应的
  2. 手写一个单例模式的代码
  3. 手写实现一个blockingqueue的实现
  4. 线程池的数量怎么确定,设多少?
  5. 手写怎样实现一个LRU的缓存
  6. lru:最少未使用算法
  7. redis与rabbitmQ部分知识
  8. 手写代码去实现一个读写锁
  9. 代理模式有什么好处,怎么实现的
  10. Linux常用命令,如查看磁盘空间,内存大小,CPU利用率,机器信息,Jvm上的内存占用信息。。。
  11. btree树,线程池,数据连接池,秒杀系统设计,回文字符串个数,线程如何变成运行态,事务的两种方式,垃圾回收机制,索引,hashmap,concurrenthashmap的结构
  12. 缓存穿透如何解决
  13. object有哪些方法,hashmap线程安全不
  14. hash一致性,JUC包与sync关键字锁的区别与理解
  15. aba的问题;
  16. 什么是乐观锁?什么是重入锁?
  17. CAS操作;
  18. 常用的集合框架的底层实现;
  19. 乐观锁和重入锁;

java开发3~5年工作经验面试题的更多相关文章

  1. 写给java web一年左右工作经验的人

      摘要 大学就开始学习web,磕磕绊绊一路走过来,当中得到过开源社区很多的帮助,总结了这些年来的技术积累,回馈给开源社区. ps:图片都是从网上盗...感谢原作者. ps:文字千真万确都是我自己写的 ...

  2. 面试 3-5年Java开发后的感受

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...

  3. 2年Java开发工作经验面试总结

    最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...

  4. java后端程序员1年工作经验总结

    java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为 ...

  5. 一位10年Java工作经验的架构师聊Java和工作经验

    从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...

  6. 一年工作经验的大专生程序员(java后台)

    1.文章前言     作为18应届毕业大专生已工作一年,相信这也是大部分同届生的现状.       那么,一个萌新进入职场一年都经历了什么呢?在校那会我是挺好奇的.       这篇文章是根据自己一年 ...

  7. 转:一位10年Java工作经验的架构师聊Java和工作经验

    黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源 ...

  8. 精干货! Java 后端程序员 1 年工作经验总结

    一.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少 东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护 和发布当救火队员的苦恼 ...

  9. 一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师,请教大神

    一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师 LZ本人想往架构师发展, 业余时间也会看一些书籍, 但是感觉没有头绪, 有些书看了,也没有地方实践 我做了4年的java开发, 在一个公 ...

随机推荐

  1. Powershell使用真实的对象工作

    Powershell使用真实的对象工作 来源 https://www.pstips.net/powershell-work-with-reallife-objects.html 每一个Powershe ...

  2. codeforces 799C Fountains

    C. Fountains time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  3. bzoj 4624 农场种植 fft

    4624: 农场种植 Time Limit: 50 Sec  Memory Limit: 512 MBSubmit: 48  Solved: 31[Submit][Status][Discuss] D ...

  4. c++(类)构造函数、复制构造函数

    复制构造函数是一种特殊的构造函数,它的作用是用一个已经存在的对象去初始化另一个对象.一般情况下不需要自行定义复制构造函数,系统默认提供一个逐个复制成员值的复制构造函数. 何时要使用呢? 1.将新对象初 ...

  5. JS模块化工具requirejs教程02

    基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出 ...

  6. Java并发(9)- 从同步容器到并发容器

    引言 容器是Java基础类库中使用频率最高的一部分,Java集合包中提供了大量的容器类来帮组我们简化开发,我前面的文章中对Java集合包中的关键容器进行过一个系列的分析,但这些集合类都是非线程安全的, ...

  7. Vijos 1232 核电站问题

    核电站问题 描述 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 现在,请你计算:对于给定的N和M,求不发生爆炸的放置核物 ...

  8. js没有重载

    javascript与其他语言(如java)不同,它没有传统意义上的重载(即为函数编写两个定义,只要这两个函数的参数类型或数量不同即可),在js中,后定义的函数会覆盖先前的函数.js中的参数在内部是用 ...

  9. 破解wifi时遇到rtl8187 - [phy1]SIOCSIFFLAGS: Name not unique on network

    当我使用我的ubuntu利用aircrack-ng套件进行wifi破解时 遇到如下问题 rtl8187 - [phy1]SIOCSIFFLAGS: Name not unique on network ...

  10. Python爬虫学习 - day1 - 爬取图片

    利用Python完成简单的图片爬取 最近学习到了爬虫,瞬时觉得很高大上,想取什么就取什么,感觉要上天.这里分享一个简单的爬取汽车之家文章列表的图片教程,供大家学习. 需要的知识点储备 本次爬虫脚本依赖 ...