71.Restful好处#
=============
(1)客户-服务器:客户-服务器约束背后的原则是分离关注点。通过分离用户接口和数据存储这两个关注点,改善了用户接口跨多个平台的可移植性;同时通过简化服务器组件,改善了系统的可伸缩性。
(2)无状态:通信在本质上是无状态的,改善了可见性、可靠性、可伸缩性.
(3)缓存:改善了网络效率减少一系列交互的平均延迟时间,来提高效率、可伸缩性和用户可觉察的性能。
(4)统一接口:REST架构风格区别于其他基于网络的架构风格的核心特征是,它强调组件之间要有一个统一的接口。
72.Tomcat,Apache,JBoss的区别#
==========================
Apache:HTTP服务器(WEB服务器),类似IIS,可以用于建立虚拟站点,编译处理静态页面,可以支持SSL技术,支持多个虚拟主机等功能。
Tomcat:Servlet容器,用于解析jsp,Servlet的Servlet容器,是高效,轻量级的容器。缺点是不支持EJB,只能用于java应用。
Jboss:应用服务器,运行EJB的J2EE应用服务器,遵循J2EE规范,能够提供更多平台的支持和更多集成功能,如数据库连接,JCA等,其对Servlet的支持是通过集成其他Servlet容器来实现的,如tomcat和jetty。
73.memcached和redis的区别#
======================
(1)性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
(2)内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
(3)Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
74.如何理解分布式锁#
============
参考文章:
http://blog.csdn.net/zheng0518/article/details/51607063
http://blog.csdn.net/nicewuranran/article/details/51730131。
75.你知道的开源协议有哪些#
===============
常见的开源协议有GPL、LGPL、BSD、Apache Licence
vesion 2.0、MIT,详细内容参考文章:
http://blog.jobbole.com/44175/、http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html。
76.json和xml区别#
==============
XML:
(1)应用广泛,可扩展性强,被广泛应用各种场合;
(2)读取、解析没有JSON快;
(3)可读性强,可描述复杂结构。
JSON:
(1)结构简单,都是键值对;
(2)读取、解析速度快,很多语言支持;
(3)传输数据量小,传输速率大大提高;
(4)描述复杂结构能力较弱。
77.设计模式#
========
参考文章:http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html#_Toc281750445。
78.设计模式的六大原则#
=============
参考文章http://www.uml.org.cn/sjms/201211023.asp。
79.用一个设计模式写一段代码或画出一个设计模式的UML#
=============================
参考文章http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html#_Toc281750445
80.高内聚,低耦合方面的理解#
================
参考文章http://my.oschina.net/heweipo/blog/423235。
81.深度优先和广度优先算法#
===============
推荐看书籍复习!可参考文章:
http://blog.163.com/zhoumhan_0351/blog/static/3995422720098342257387/
http://blog.163.com/zhoumhan_0351/blog/static/3995422720098711040303/
http://blog.csdn.net/andyelvis/article/details/1728378
http://driftcloudy.iteye.com/blog/782873
82.排序算法及对应的时间复杂度和空间复杂度#
=======================
推荐看书籍复习!可参考文章:
http://www.cnblogs.com/liuling/p/2013-7-24-01.html
http://blog.csdn.net/cyuyanenen/article/details/51514443
http://blog.csdn.net/whuslei/article/details/6442755
83.排序算法编码实现#
============
参考http://www.cnblogs.com/liuling/p/2013-7-24-01.html
84.查找算法#
========
参考http://sanwen8.cn/p/142Wbu5.html
85.B+树#
=======
参考http://www.cnblogs.com/syxchina/archive/2011/03/02/2197251.html
86.KMP算法#
=========
推荐阅读数据复习!参考http://www.cnblogs.com/c-cloud/p/3224788.html
87.hash算法及常用的hash算法#
====================
参考http://www.360doc.com/content/13/0409/14/10384031_277138819.shtml
88.如何判断一个单链表是否有环#
=================
参考文章:
http://www.jianshu.com/p/0e28d31600dd
http://my.oschina.net/u/2391658/blog/693277?p={{totalPage}}
89.队列、栈、链表、树、堆、图#
=================
推荐阅读数据复习!
90.linux常用命令#
=============
参考http://www.jianshu.com/p/03cfc1a721b8
91.如何查看内存使用情况#
==============
参考http://blog.csdn.net/windrui/article/details/40046413
92.Linux下如何进行进程调度#
==================
推荐阅读书籍复习,参考文章:
http://www.cnblogs.com/zhaoyl/archive/2012/09/04/2671156.html
http://blog.csdn.net/rainharder/article/details/7975387
93.产生死锁的必要条件#
=============
参考http://blog.sina.com.cn/s/blog_5e3604840100ddgq.html
94.死锁预防#
========
参考http://blog.sina.com.cn/s/blog_5e3604840100ddgq.html
95.数据库范式#
=========
参考http://www.360doc.com/content/12/0712/20/5287961_223855037.shtml
96.数据库事务隔离级别#
=============
参考http://blog.csdn.net/fg2006/article/details/6937413
97.数据库连接池的原理#
=============
参考http://blog.csdn.net/shuaihj/article/details/14223015
98.乐观锁和悲观锁#
===========
参考http://www.open-open.com/lib/view/open1452046967245.html
99.如何实现不同数据库的数据查询分页#
====================
参考http://blog.csdn.net/yztezhl/article/details/20489387
100.SQL注入的原理,如何预防#
==================
参考https://www.aliyun.com/zixun/content/3_15_245099.html
101.数据库索引的实现(B+树介绍、和B树、R树区别)#
=============================
参考文章:
http://blog.csdn.net/kennyrose/article/details/7532032
http://www.xuebuyuan.com/2216918.html
102.SQL性能优化#
============
参考文章:
http://database.51cto.com/art/200904/118526.htm
http://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html
103.数据库索引的优缺点以及什么时候数据库索引失效#
===========================
参考文章:
http://www.cnblogs.com/mxmbk/articles/5226344.html
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592527.html
http://www.open-open.com/lib/view/open1418476492792.html
http://blog.csdn.net/colin_liu2009/article/details/7301089
http://www.cnblogs.com/hongfei/archive/2012/10/20/2732589.html
104.Redis的数据类型#
===============
参考http://blog.csdn.net/hechurui/article/details/49508735
105.OSI七层模型以及TCP/IP四层模型#
========================
参考文章:
http://blog.csdn.net/sprintfwater/article/details/8751453
http://www.cnblogs.com/commanderzhu/p/4821555.html
http://blog.csdn.net/superjunjin/article/details/7841099
106.HTTP和HTTPS区别#
=================
参考:
http://blog.csdn.net/mingli198611/article/details/8055261
http://www.mahaixiang.cn/internet/1233.html
107.HTTP报文内容#
=============
参考文章:
https://yq.aliyun.com/articles/44675
http://www.cnblogs.com/klguang/p/4618526.html
http://my.oschina.net/orgsky/blog/387759
108.get提交和post提交的区别#
====================
参考文章:
http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
http://www.jellythink.com/archives/806
109.get提交是否有字节限制,如果有是在哪限制的#
===========================
参考http://www.jellythink.com/archives/806
110.TCP的三次握手和四次挥手#
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
4)]
最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
[外链图片转存中…(img-kkoWFof6-1712300369684)]
还有更多面试复习笔记分享如下
[外链图片转存中…(img-9A6Vw8wv-1712300369685)]
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算