自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Python】关于制表符的问题解决小记

tab究竟是几个字符?

2022-07-11 20:24:14 826 1

原创 【Java基础】assert断言不生效

assert

2022-07-08 19:26:32 1277 1

原创 【阅读】凤凰架构

害人不浅

2022-07-06 16:15:39 240

原创 【Linux】Iterm2连接虚拟机配置

免密登陆

2022-06-03 14:41:34 738

原创 【Linux】VirtualBox设置静态ip

静态ip

2022-06-03 14:11:05 1364

原创 【IDEA】设置Live Template

@Testpublic void test$END$(){}加$END$可以保证最后鼠标位置停在test后,可以输入不同的后缀区别不同的测试方法

2021-12-29 11:06:32 225

原创 【MySQL】浮点数精度问题

不要盲目的说float和double精度可能发生丢失,而是说在存取时因为精度不一致会发生丢失,当然这里的丢失指的是扩展或者截断了,丢失了原有的精度。decimal是好,但不是说不会发生任何精度丢失。如果问题看得不深入,总会以偏概全。我们知道,mysql存储小数可以使用float、double、decimal等。这些类型存储的小数精度都比较高。我们平时应用最多的就是两位小数点,所以,这些类型都是可以满足的。那么数据精度丢失是如何表现的呢?到底是什么原因呢?当我们不知道原因的时候,总会认为到处都是问题,找

2021-11-17 22:05:19 4240 1

原创 【位运算】判断n是否为2的幂次

文章目录问题描述位运算解法1、n & (n - 1) == 02、n & (-n) == n3、异或运算问题描述位运算解法一个数是2的幂,当且仅当该数为正整数且其二进制表示中仅包含一个1。因此可以将最低位1提取出来后判断剩余位置数值是否为0即可解出该题1、n & (n - 1) == 0例如:16 & 15 = 10000 & 01111 = 015 & 14 = 01111 & 01110 != 0代码如下:class

2021-09-11 08:54:14 999

原创 【SpringCloud-08】OpenFeign

文章目录1、OpenFeign简介1、什么是OpenFeign?2、OpenFeign可以做什么?3、Feign和OpenFeign2、OpenFeign使用1、新建服务调用者`consumer-order-openfeign-80`2、编写pom.xml3、编写application.yaml4、编写主启动类(@EnableFeignClients)5、编写业务类1、创建业务逻辑接口2、创建接口 + 标注注解(@FeignClient)3、Controller编写6、测试7、小结3、OpenFeign超时

2021-09-09 09:58:42 124

原创 【SpringCloud-07】Ribbon

1、Ribbon简介1、什么是Ribbon?2、Ribbon有什么作用?主要用来实现客户端的负载均衡集中式负载均衡(Nginx)进程内负载均衡(Ribbon)在之前的章节中,服务提供者通过使用Eureka集群(7001、7002) + 服务提供者集群(8001、8002),默认可以达到负载均衡的效果,这是因为在注入restTemplate时添加了@LoadBalanced注解且通过查看Maven依赖可以发现,eureka的jar包中默认引入了ribbon的依赖3、一句

2021-09-09 08:24:17 85

原创 【SpringCloud-06】Eureka、Zk、Consul异同

文章目录1、CAP理论2、经典CAP图3、三者比较1、CAP理论分布式系统必须保证P,且由于三者两两间的限制,因此涉及到分布式的中间件要么满足CP,要么满足AP,不能三者同时满足2、经典CAP图3、三者比较Eureka在分布式情况下的保护机制不满足强一致性,保证了高可用性和分区容错性(AP),遇到某服务宕机会保留到服务列表中,即使它永不复活Zookeeper和Consul在分布式情况时保证了数据的一致性,但不保证高可用(CP),遇到某服务宕机如果多次心跳无响应则直接强制下线保证一致性

2021-09-07 16:13:02 184

原创 【SpringCloud-05】Consul

1、Consul介绍1、是什么2、能干嘛?3、使用下载地址:https://www.consul.io/downloads.html文档地址:https://www.springcloud.cc/spring-cloud-consul.html2、安装与使用3、Consul服务注册1、 新建provider-payment-consul-8006子模块2、修改pom.xml文件<?xml version="1.0" encoding="UTF-8"?><pr

2021-09-07 16:12:14 126

原创 【SpringCloud-04】Zookeeper

文章目录1、Zookeeper1、为什么是Zookeeper2、Zookeeper下载3、Zookeeper安装4、Zookeeper服务注册1、 新建`provider-payment-zk-8004`子模块2、修改pom.xml文件3、application.yaml4、编写主启动类5、编写业务类6、注册过程7、测试5、Zookeeper服务消费1、向容器中注入RestTemplate2、编写业务类3、测试2、Consul1、Consul介绍1、是什么2、能干嘛?3、使用2、安装与使用3、Consul服

2021-09-07 11:34:01 90

原创 【SpringCloud-03】Eureka

1、Eureka简介1、什么是服务治理当服务提供方和服务消费方增多之后,就需要一个服务中心去协调管理各服务间的依赖关系2、什么是服务注册与发现3、Eureka两个组件Eureka Server:类似于工业园区内部的物业公司,管理其他入驻进来的公司Eureka Client:类似于工业园区内部入驻的公司(如:尚硅谷)、或者是需要使用其他模块提供的服务的人(如:在尚硅谷上学的学生)公司要想入驻工业园区,对外提供服务,首先需要向物业公司注册办理入驻,之后才能在该工业园区向外提供服务2、

2021-09-03 16:52:18 104

原创 【SpringCloud-02】支付、订单模块搭建

搭建模块步骤:在Project中创建Module修改pom.xml写application.yaml编写主启动类编写各层业务类1、父项目搭建1、项目依赖创建Project主要是为了便于模块的统一管理,包括子模块的依赖版本控制等Maven项目可以通过dependencyManagement对整个项目中的jar包进行控制<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.o

2021-09-01 20:18:22 461 3

原创 【SpringCloud-01】微服务架构

课程视频:尚硅谷SpringCloud阳哥2020版一、微服务架构介绍:1、什么是微服务是一种架构模式提倡将单一应用程序划分成一组小的服务,服务间相互协调、配合每个服务运行在独立的进程中服务间采用轻量级的通信机制互相协作(通常是HTTP协议的RESTful API)2、基于分布式微服务架构?服务注册与发现服务调用服务熔断负载均衡服务降级服务消息队列配置中心管理服务网关服务监控全链路追踪自动化构建部署服务定时任务、调度操作3、SpringCloud?分布式微

2021-09-01 08:47:39 113 1

原创 【MySQL】索引失效

索引失效情况is null / is not null结论:in、exists:当in和exists后面跟的不是子查询的话,会根据数据量判断是不是走索引,如果全表扫描比索引快,就全盘扫描当后面跟的是子查询的话,和 not exists、not in 一样都不走索引,但是嵌套子句中该走还是走参考:原文大于等于、小于等于、大于、小于:都会判断数据量,若全盘扫描比索引快,就全盘扫描...

2021-08-24 14:48:24 114

原创 【多线程】interrupt()用法

跳转链接

2021-08-23 16:44:42 170

原创 【算法】LRU算法

文章目录1、什么是LRU?2、如何实现LRU算法?1、数组2、单向链表3、双向链表+hashmap4、小结3、算法实现1、什么是LRU?LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。多数缓存机制都采用了LRU的算法思想,因为不能对未来进行预测,所以只能根据已有的使用频率来推断将来的使用频率2、如何实

2021-08-18 21:52:39 737

原创 【MySQL】分页细节

1、MySQL中的分页之所以会跳过,是因为MySQL的limit是从0开始的,因此也就产生了跳过这个字眼2、MyBatis中的分页及分页插件中通常这些情况下的分页的参数分别代表(第几页,每页显示几行数据)即下面的公式:起始位置 = (当前页面 - 1 ) * 页面大小由上面Mysql中的分页中的公式,可以得知OFFSET 后面才表示起始位置,且从0开始计算,因此下面图中的SQL语句是select .... limit 5 offset 5,用上面的话说就是跳过5条,从第6条开始查询五条数据,与下

2021-08-15 08:52:23 1375

原创 【LinkedList】API

1、add 和 push2、add 和 offer3、pop和poll

2021-08-13 10:36:46 47

原创 【Redis】使用Jedis连接失败

文章目录1、修改Redis配置文件2、修改Linux防火墙配置3、通过直接bind ip地址进行连接【成功】在Redis的学习过程中,在学到使用Jedis操作Redis的章节时,发现无法连接Redis,超时等问题通过查找相关博客,总结出来亲测有效的解决办法!1、修改Redis配置文件原贴见修改之后仍然无法进行连接于是又在虚拟机中对防火墙进行了相关配置2、修改Linux防火墙配置开放端口:firewall-cmd --zone=public --add-port=6379/tcp --p

2021-07-20 14:38:08 447 3

原创 【Redis】测试RDB的save配置小记

问题描述:通过修改redis.conf设置指定时间【秒】内,修改Redis中数据的次数上限生成dump.rdb文件修改之后,在Redis客户端中修改该上限次数据后,发现在usr/local/bin中并没有新增dump.rdb文件解决方法:连接上Redis后,通过config get dir获取要写入的工作目录生成的dump.db会存放在该目录下如果需要修改该目录,可以通过config set dir xxx来进行配置修改之后,通过对Redis中的数据进行修改指定次数后,就可以在该指定目录

2021-07-17 22:40:47 661

原创 【SpringMVC】静态资源无法显示

使用网上各种方法都无法访问到静态资源在Tomcat中除了Explode的war包以外,连同静态资源一起打包运行

2021-07-08 00:10:01 45

原创 【JS】..../[object%200Object]错误

使用$.post时,如下所示:$.post({url : "./test/ajaxTest",});控制台报:There is no Action mapped for namespace [/] and action name [[object Object]] associated with context path [/项目名]. - [unknown location] 错误在网页上调试时出现:http://localhost:8080/项目名/[object%20Object] 4

2021-06-27 12:29:20 365

原创 【Maven】阿里云镜像加速及编译jdk相关配置

<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this work for additional informationregarding copyright ownership

2021-06-08 20:31:30 114

原创 【HashMap】常用方法源码注释

1、put()2、resize()1、获取扩容后长度和阈值的过程若第一次调用该方法,则为初始化;否则为扩容下右图中通过resize()对HashMap进行初始化下面的这部分代码思想就是为newCap和newThr设置值2、扩容过程3、get()4、removeNode()1、对应的两种封装只需要匹配k(matchValue为false)k、v都要匹配(matchValue为true)2、源码解析5、replace()...

2021-06-05 10:34:22 119

原创 【HashMap】tableSizeFor()

有关该方法的相关解析由于int类型为4个字节,那么其最大二进制数有32位,因此该方法可以涉及到任何int类型的数字

2021-06-04 20:42:56 52

原创 【Linux】安装Mysql5.7时修改默认字符集

修改之前,先通过mysql -uroot -p输入密码后登录Mysql,通过sql语句:show variables like "%character%";查看当前字符编码情况可以看到其部分编码默认值不为utf8,因此需要进行修改在Linux(Centos 7)中安装Mysql后,其默认配置文件路径为:/etc/my.cnf;可以通过vim /etc./my.cnf对该配置文件进行修改,具体添加如下语句:character_set_server=utf8 到配置文件中修改完成后需要通过..

2021-05-28 17:07:58 979 1

原创 【MyBatis】MB运行原理

1、获取sqlSessionFactory对象:解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;注意:【MappedStatement】:代表一个增删改查的详细信息2、获取sqlSession对象返回一个DefaultSQlSession对象,包含Executor和Configuration;这一步会创建Executor对象;3、获取接口的代理对象(MapperProxy)getMapper,使用MapperPro

2021-05-17 11:25:43 125 3

原创 【MyBatis】MyBatis杂记

通过以下语句进行自增主键的获取<!-- 1.parameteType可以省略 2.mysql支持自增主键,而mybatis通过jdk中Statement对象的getGeneratedKeys()获取该自增主键的值 useGeneratedKeys="true" 使用自增主键获取主键值策略 keyProperty 指定对应的主键属性,即mybatis获取到主键值后封装给pojo中的哪个属性 --> <ins.

2021-05-15 19:53:59 92 1

原创 【多线程】CountDownLatch及CyclicBarrier

详见博客

2021-05-15 09:39:05 67

原创 【JVM-03】JVM指令备忘

对字节码文件进行反编译: javap -v 类名.class设置栈的大小:-Xss用来设置堆空间(年轻代+老年代)的初始内存大小: -Xms用来设置堆空间(年轻代+老年代)的最大内存大小: -Xmx查看已经设置的参数:-XX:+PrintGCDetails或在cmd命令行分别输入jps (查看所有进程)和jstat -gc 进程id查看对应进程的相关参数-XX:NewRatio=xxx默认为2,表示新生代占1,老年代占2,即新生代占整个堆内存的1/3-XX:SurvivorRatio=xxx默.

2021-05-11 16:28:31 55

原创 【JVM-02】杂记

一个Java进程对应一个JVM实例,而一个JVM实例只有一个运行时数据区;当运行多个Java程序时,开启的是多个进程,也就是同时开启了多个JVM调整栈的大小并不能保证完全避免StackOverflowError,而只能延迟该错误的出现时间虚拟机栈并没有垃圾回收机制,随着出栈就会自动将引用销毁当变量在方法内部产生、消亡时,可以说这个方法是线程安全的设置堆空间大小的参数-Xms 用来设置堆空间(新生代和老年代)的初始内存大小-Xmx 用来设置堆空间(新生代和老年代)的最大内存大小其中 .

2021-05-10 18:01:27 101 2

原创 【JVM字节码】-1~5采用iconst原因

见链接

2021-05-09 20:30:38 93

原创 【JVM-01】JVM概述整理

Java虚拟机是一台执行Java字节码的虚拟计算机,拥有独立的运行机制,其运行的字节码未必是由Java语言编译而成Java是跨平台的语言,而JVM是跨语言的平台,支持解释运行多种语言编译而成的字节码文件JVM是二进制字节码的运行环境,负责装载字节码到其内部并解释编译为对应平台上的机器指令执行Java编译器的指令集架构是基于栈的指令集架构基于栈的指令集架构对不需要硬件支持,实现了平台的可移植性,而基于寄存器的指令集架构虽然执行效率较高,但同时对硬件支持的耦合度太高,不适用于具有跨平台性的Java语言.

2021-05-03 09:57:17 108 1

原创 【Git】关于Git拉取的项目中存在红色文件名的问题

可以从上图中看出,文件名为红色,说明该文件并未加入版本控制,因此需要在对应的文件【也可以是Module】上右键->Git->Add,将该文件/模块添加进Git的控制中

2021-04-28 20:35:09 5621

原创 【SSM】xml配置版整合

文章目录1、基础配置1、新建Maven项目,并添加web支持2、导入依赖3、Maven静态资源过滤4、在Project Structure中进行操作5、建立ssm项目基本结构与配置框架2、MyBatis层1、mybatis-config.xml2、db.properties3、在IDEA中关联数据库4、编写实体类5、编写Mapper6、编写对应的Mapper.xml7、编写Service及其实现类3、Spring层1、Spring对Mapper的接管2、Spring对Service的接管4、SpringMV

2021-04-27 09:26:22 372

原创 【SpringMVC】关于转发与重定向

文章目录1、基本业务介绍2、关于请求转发3、关于重定向4、小结1、基本业务介绍首先有这样一个业务逻辑:在图书管理系统中,管理员可以向系统中添加书籍,同样也可以查询所有书籍,流程如下:主页面核心逻辑代码:<div> <a style="color: blue" href="${pageContext.request.contextPath}/list">进入书籍页面</a></div><div> <a styl

2021-04-24 19:15:06 128 1

原创 【SE-05】关于包装类和基本类型的装、拆箱问题

问题是这样的: Integer i1 = 59; int i2 = 59; Integer i3 = Integer.valueOf(59); Integer i4 = new Integer(59); System.out.println(i1==i2); System.out.println(i1==i3); System.out.println(i3==i4); System.out.

2021-04-12 17:40:44 61

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除