关于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. [POJ1784]Huffman's Greed

    题面在这里 题意 给出一棵\(n\)个节点的二叉查找树的中序遍历中每个节点的访问次数\(p[i]\),和相邻两节点\(i\)和\(i+1\)的访问次数\(q[i]\),构造一棵二叉查找树使得\(\su ...

  2. [Leetcode] Recover binary search tree 恢复二叉搜索树

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...

  3. transitionEnd和animationEnd的一个临时解决方案

    transtionEnd需要添加前缀,并且存在多次触发问题,animationEnd也需要添加前缀,下面是一个临时性解决方案,解决了部分问题,完美方案探索中 (function(){ var body ...

  4. Maven如何打包本地依赖包

    有的jar包,在maven中心库里面是没有的,那么,如何在项目中使用呢? 假设我们需要使用:apache-ant-zip-2.3.jar 将该jar包,放在项目的lib目录,例如: 在pom.xml里 ...

  5. Why is the ibdata1 file continuously growing in MySQL?

    We receive this question about the ibdata1 file in MySQL very often in Percona Support. The panic st ...

  6. Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)

    D. Game with modulo 题目链接:https://codeforces.com/contest/1104/problem/D 题意: 这题是一个交互题,首先一开始会有一个数a,你最终的 ...

  7. POJ2699:The Maximum Number of Strong Kings(枚举+贪心+最大流)

    The Maximum Number of Strong Kings Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2488 ...

  8. oralce的客户端sqlplus

    安装完oracle后,默认的客户端是sqlplus,还有一个公司常用的是PLSQLdeveloper 客户端软件,另外Navicat primie这个可以连接mysql.sqlserver.oracl ...

  9. eclipse tomcat 插件

    下载地址http://www.eclipsetotale.com/tomcatPlugin.html#A3

  10. [POJ1144][BZOJ2730]tarjan求割点

    求割点 一种显然的n^2做法: 枚举每个点,去掉该点连出的边,然后判断整个图是否联通 用tarjan求割点: 分情况讨论 如果是root的话,其为割点当且仅当下方有两棵及以上的子树 其他情况 设当前节 ...