java面试

string为何是不可变的

https://www.cnblogs.com/wuchanming/p/9201103.html

static与单例模式

https://blog.csdn.net/TCJGGSDDU/article/details/53457029

手写单例模式

https://blog.csdn.net/cuiran/article/details/52299756

设计模式

https://www.jianshu.com/p/8a293e4a888e

泛型

https://blog.csdn.net/briblue/article/details/76736356

synchronized

https://blog.csdn.net/javazejian/article/details/72828483

synchronized与Lock的区别与使用

https://blog.csdn.net/u012403290/article/details/64910926

hashmap

https://blog.csdn.net/u011617742/article/details/54576890

https://www.javazhiyin.com/24490.html

深度优先和广度优先

https://www.cnblogs.com/xiaolovewei/p/7763867.html

链表是否有环

https://blog.csdn.net/lavor_zl/article/details/42784247

反转单链表

https://blog.csdn.net/Mackyhuang/article/details/82722218

https://blog.csdn.net/acquaintanceship/article/details/73011169

mysql索引失效的原因

https://www.cnblogs.com/shynshyn/p/7887742.html

线程状态

多线程内存模型

https://www.cnblogs.com/zhangbLearn/p/9826753.html

线程池

https://www.cnblogs.com/owenma/p/8557074.html

spring security

当浏览器发送一个请求后,首先会经过第一个过滤器,UsernamePassowordAuthenticationFilter,这个过滤器中,它会判断你的请求是否带username和password这两个参数,如果带了就进行拦截验证,如果没有就进入到第二个过滤器BasicAuthenticationFilter,这个过滤器会判断请求头中是否含有需要验证的信息,如果没有进入下一个拦截器,最后到ExceptionTranslationFilter拦截器,它会捕获FilterSecurityInterceptor抛出的异常,而FilterSecurityInterceptor会判断这个请求是否校验通过,权限是否通过,如上面我们编写的代码,所有的请求都需要进行校验通过,如果没有通过就会抛出异常,在这个异常处理中,实际上重定向到第一个过滤器,比如我们发送http://localhost:8080/user这个请求,它就经过前面的过滤器,然后在ExceptionTranslationFilter过滤器中抛出异常,再被重定向到第一个过滤器,也就是登录页面,当输入的用户名密码匹配的时候才会校验通过,进入我们自己编写的API中。以上就是Spring Security框架的一个基本认证流程,FilterSecurityInterceptor是这个框架的最后一个拦截器,也是守门人,所有的请求都必须通过该拦截器的校验。

https://blog.csdn.net/sinat_29899265/article/details/80653167

https://blog.csdn.net/zhong_csdn/article/details/79447185

 

springboot和springmvc区别

Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。集成配置让开发者开箱即用

而springmvc是spring的一个模块,是一个mvc框架。使用过程中依赖spring

springboot启动类

@SpringBootApplication是一个组合注解,可以拆成@Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration等,其中最重要的就是@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器

 

jpa和mybits的区别

1,jpa是对象与对象之间的映射,而mybatis是对象和结果集的映射。jpa设计难度更大

2 , jpa的抽象程度更高,理论上性能更差,在做项目过程中,会出现想要查询对象的一个简单结果,但是往往对象跟对象之间的映射关系,导致jpa自动去查询出一个复杂的结果集,然后我们只能去这个复杂的结果集里拿我们想要的简单结果。不过jpa有懒加载和缓存机制,一定程度上优化了性能。

3 jpa迁移数据库比较方便,但是mybits由于是写sql,迁移数据库就需要改sql,比较麻烦。

 

tcp三次握手四次挥手

https://baijiahao.baidu.com/s?id=1593714120815701015&wfr=spider&for=pc

 

HTTP之请求消息Request

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。


 

Http请求消息结构.png

  • 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。

Get请求例子,使用Charles抓取的request:

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.

GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。

第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等

第三部分:空行,请求头部后面的空行是必须的

即使第四部分的请求数据为空,也必须有空行。

第四部分:请求数据也叫主体,可以添加任意的其他数据。

这个例子的请求数据为空。

POST请求例子,使用Charles抓取的request:

POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:请求数据,第八行。

https:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

https://www.cnblogs.com/wqhwe/p/5407468.html

 

rpc与http的区别

https://www.cnblogs.com/winner-0715/p/5847638.html

 

深入理解jvm

https://www.cnblogs.com/wtzbk/p/7985156.html

JVM监控命令

https://www.cnblogs.com/rainy-shurun/p/5732341.html

 

分布式事务:

https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html

https://blog.csdn.net/test1444509256/article/details/79661902

kafka实战

https://www.cnblogs.com/mumuxinfei/p/3859193.html

springcloud

https://blog.csdn.net/xlgen157387/article/details/77773908

session

https://blog.csdn.net/cloudzpc/article/details/79458445

MySQL事务

MySQL主从

https://blog.csdn.net/darkangel1228/article/details/80004222

MySQL主从配置

https://www.cnblogs.com/eleven24/p/7350000.html

spring beanFactory和FactoryBean

http://www.cnblogs.com/aspirant/p/9082858.html

springboot启动流程

https://segmentfault.com/a/1190000014525138

https://blog.csdn.net/u010811939/article/details/80592461

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值