- 博客(24)
- 收藏
- 关注
原创 MySQL常见面试题
Mysql服务器防止表单重复提交的方法和原理给数据库增加唯一键约束(简单粗暴)在数据库建表的时候在ID字段添加主键约束,用户名、邮箱、电话等字段加唯一性约束。确保数据库只可以添加一条数据。利用Session防止表单重复提交(推荐)服务器返回表单页面时,会先生成一个subToken保存于session,并把该subToen传给表单页面。当表单提交时会带上subToken,服务器拦截器Interceptor会拦截该请求,拦截器判断session保存的subToken和表单提交subToken是否
2022-05-22 20:11:58 194
原创 面试题:上级给你一个业务,你会怎么做,要求数据迁移怎么办?
一、给你一个业务,如何处理,你的想法是什么?不需要特别详细,说说你的想法,逻辑思路就行,这是楼主在面试众安保险实习时技术面问楼主的。首先,我会和业务方进行沟通,包括这个业务的细节,这个业务的实际需求是什么?这个业务做完之后,对项目会有什么好处 其次,我会去分析这个业务,是使用什么方式去实现比较好,就比如考虑实现一个功能是使用抽象类还是接口去实现 之后我会去考虑业务的规范,就比如我要去实现一个接口的话,我回去查看使用什么样的参数类型,是Integer,还是Long又或者是Double,再去考虑它的
2022-04-12 19:52:30 793
原创 面试题:什么是GCRoot?哪些对象可以作为GCRoot?
这是和可达性分析法有关,该算法用作判断一个对象是否为垃圾对象,算法会从一个对象出发,从该对象的引用依次进行标记,所有被标记的对象形成一个类似树的结构,叫做引用链,而根节点就叫做GCRoot对象。在java堆中有多个GCRoot对象,在执行可达性算法后,对于没有被标记的对象,就会执行垃圾回收算法进行回收,该算法可以解决引用计数法中循环依赖的导致对象无法清除的问题。由此引出来一个问题,如果一个对象没有被标记到,一定会被回收吗? 答案是不一定,因为Object类中提供了一个...
2022-04-10 16:36:43 1271
原创 DNS域名解析的流程
1.现在我有一台计算机,通过ISP(互联网服务提供商)接入了互联网,那么ISP就会给我分配一个DNS服务器,这个DNS服务器不是权威服务器,而是相当于一个代理的dns解析服务器,会帮你迭代权威服务器返回的应答,然后把最终查到IP返回2.现在的我计算机要向这台ISP-DNS发起请求查询www.baidu.com这个域名了,(经网友提醒:这里其实准确来说不是ISPDNS,而应该是用户自己电脑网络设置里的DNS,并不一定是ISPDNS。比如也有可能你手工设置了8.8.8.8)3.ISPDNS拿到请求后,先
2022-04-07 22:08:00 88
转载 Https如何保证传输数据的安全性
HTTPS 协议之所以是安全的是因为 HTTPS 协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:证书验证阶段浏览器发起 HTTPS 请求服务端返回 HTTPS 证书客户端验证证书是否合法,如果不合法则提示告警②数据传输阶段当证书验证...
2022-04-04 16:03:04 153
原创 Dubbo如何传输java对象?注册中心挂了,服务可以正常访问吗?什么是超时和重试?
序列化地址缓存 注册中心挂了,服务是否可以正常访问? 可以,因为dubbo服务消费者在第一次调用时,会将服务提供方地址缓存到本地,以后在调用则不会访问注册中心。当服务提供者地址发生变化时,注册中心会通知服务消费者。新的服务不可用,老的服务仍可以使用超时服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一直等待下去。在某个峰值时刻,大量的请求都在同时请求服务消费者,会造成线程的大量堆积,势必会造成雪崩。dubbo 利用超时机制来...
2022-04-04 14:47:06 1209
原创 Dubbo的简单调用过程
首先是服务运行容器Container启动加载服务的提供者provider,然后根据生产者的配置文件去发布服务,完成服务的初始化 生产者启动时,根据配置中的注册中心地址连接到注册中心,将生产者的服务信息发布到注册中心,在注册中心中提供自己的服务 然后是消费者启动,根据消费者XML配置文件中的服务引用信息,连接到注册中心,想注册中心订阅自己所需的服务 之后注册中心根据根据订阅关系,会返回生产者地址列表给消费者,如果有变更,注册中心会推送最新的服务地...
2022-04-04 14:14:26 1501
原创 Redis是怎么实现事务的
Redis 可以通过 MULTI,EXEC,DISCARD 和 WATCH 等命令来实现事务(transaction)功能。Redis 的单个命令都是原子性的,所以这里确保事务性的对象是命令集合。Redis 将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行Redis不支持回滚操作在介绍 Redis 事务相关命令前,我们先上一张图,这张图很好的描述了 Redis 事务的执行过程,在图里体现了部分命令,WATCH 命令会在后面单独介绍,需要注意的一点是这张图里面的 qu.
2022-04-03 14:18:11 315
原创 SpringBoot整合Mybatis步骤
1.创建一个模块用来作为模拟,实际中并不需要额外进行模块创建,算则两个起步依赖,这里因为不用web功能,所以没有选择配置文件中的补充知识点:SpringBoot自身的starter技术都是以springBoot开头的,引用的第三方的技术,都是以第三方技术开头,后面添加springBoot作为名字,如下图:2.配置数据库连接的详细信息:类型别名等并不用配置3.编写内容并测试,这里直接用的注解开发,如果纯注解开发@Mapper可以省略@Mapperpublic int..
2022-04-02 14:46:47 822
原创 SpringBoot整合Junit
不需要进行任何操作,默认就是整合Junit的pom.sml配置文件中信息如下:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <depend
2022-04-02 13:57:57 74
原创 SpringBoot读取配置文件的三种方式
方式一:使用@Value注解读取 常用语单个数据的读取,例如配置文件中定义了一组key:value数据,在实际使用时,只需要在使用的地方加上一个属性字段,属性字段上面添加一个@Value注解即可,注解里面使用${}读取配置文件的数据,SpringBoot会自动的将value的值赋值给你定义的属性字段上。读取单一键值对读取对象下的某个属性,配置文件中配置的格式为二级标签读取数组中的数据:这里读取的数据是music读取数组中的对象方式二:使用Envir...
2022-04-01 22:04:41 2178
原创 synchronize和volatile的有序性
为啥synchronized无法禁止指令重排,但可以保证有序性?加了锁之后,只能有一个线程获得到了锁,获得不到锁的线程就要阻塞。所以同一时间只有一个线程执行,相当于单线程,而单线程的指令重排是没有问题的。还有就是在进入synchronized代码块会先添加一个屏障,在最后释放屏障。保证同步代码块中的代码不能和同步代码块外面的代码进行指令重排,在其内部还是会发生指令重排但基本不会影响结果synchronized可以保证有序性但是不能避免指令重排,在双重检验的单例模式中,必须加volatile来避免因为
2022-04-01 13:16:29 620
原创 力扣2022-3-29算法题:考试的最大困扰度
package 每日一题;/** * 一位老师正在出一场由 n道判断题构成的考试,每道题的答案为 true (用 'T' 表示)或者 false (用 'F'表示)。 * 老师想增加学生对自己做出答案的不确定性,方法是最大化有 连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)。 * <p> * 给你一个字符串answerKey,其中answerKey[i]是第 i个问题的正确结果。 * 除此以外,还给你一个整数 k,表示你能进行以下操作的最多次数: *.
2022-03-29 21:50:00 70
原创 算法面试:测试手机的安全楼层
前几天面试遇到的比较有意思的一道算法题,当时面试小库科技时遇到的:你有两部手机,100层楼,现在你需要去测试手机在第几层摔下时不会被摔坏,要求你计算最少需要测试几次条件:两部手机在测试结束之后可以全部损坏,但是你只有两部手机可用手机在安全楼层以及之下扔下去时不会摔坏,安全楼层之上会被摔坏算法:进行倒推,两部手机两次测试机会最多能测试到几层?两部手机三次测试机会最多能到几层?....懒了,不爱写具体步骤了,看看你们会不会吧?有我聪明不??...
2022-03-29 21:33:27 152
原创 对于ReentrantLock公平锁的个人理解
默认情况下使用的是非公平锁,锁的本质其实就是去阻塞一个线程 自定义阻塞的方式: wait()方法 一定要搭配synchronized关键字一起使用的 sleep()方法 睡眠的时间无法确定 park()方法 while(true){…} //设置条件state=1死循环,unlock解锁是state变为0 CAS方法参数:当前对象...
2022-03-29 21:06:05 275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人