java开发3~5年⼯作经验⾯试题关于java基础
1. String,StringBuilder,StringBuffer区别是什么?底层数据结构是什么?分别是如何实现的?
2. HashSet的底层实现是什么?它与HashMap有什么关系?
3. Java 的并发包⾥⾯有那些知识点?
4. HashCode与HashMap的关系?
5. 哈希函数的理解?
6. map在put()的做了哪些事?
7. 如果发⽣hash碰撞,有什么⽅法可以解决?
8. 各种类型的锁?xml加密教程
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. 索引类型?
python小游戏源码
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的实现
mysql面试题库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. 乐观锁和重⼊锁;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论