- 博客(24)
- 收藏
- 关注
原创 JVM学习笔记
JVM对java的编译顺序Java代码首先会被JVM虚拟机的编译器的前段转换成字节码.JVM编译器的前端:sun的javac或者Eclipse JDT的增量式编译器(ECJ)。而这类前端的编译器是不会对编译之后的代码进行性能上的优化,只会对代码当中的语法糖来编译,来改善程序员的编程效率和编程风格.javac的编译过程可以分为下面的四个过程:词法,语法解析.javac会先扫描一次我们的源代码,生成一个抽象的语法树,来检查源代码当中的程序语法是否有错误.填充符号表:例如java当中的类之间有些会相
2021-07-23 13:22:02
147
原创 前端DOM的一些document基本操作
在**《script》《/script》当中创建方法function()时function获取当前页面数据可以使用document.getElementById(**)来根据Id来获取对应的元素<!DOCTYPE html><html><body><p><a id="myAnchor" href="http://www.w3school.com.cn/">W3School</a></p><p>单击
2021-04-02 13:52:06
327
原创 NoSQL解决业务IO压力-Redis
水平切分:比如一张表当中有100万条数据,而每次在100万当中进行查询效率很低,就把这100万条数据拆分,每20万一张表,分成了5张表,在进行查询时分成5张分别查询,提高了效率。垂直切分:比如一张表当中有200个字段,这样在进行查询时同样查询效率很低,就把200个字段每50个变成一张表,在进行查询时根据字段分别查询,提高了效率。读写分离,服务器进行的读操作数量是远高于写操作的,所以可以把读服务器和写服务器分开,读服务器只能进行读操作,而写服务器可以进行读写操作。提高了效率NoSQL不依赖业务逻辑关.
2021-03-08 20:43:16
235
1
原创 【面试】回溯法---leetcode无重复字符串的排列组合
无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。**示例1:输入:S = “qwe”输出:[“qwe”, “qew”, “wqe”, “weq”, “ewq”, “eqw”]示例2:输入:S = “ab”输出:[“ab”, “ba”]首先我想到的是把字符串变成char数组,然后好几个for循环,每一次循环拿走其中的一个。但是后面我发现有以下几个问题:for循环每次拿走一个下一次循环怎么取回拿走的那个当中嵌套的循环怎么确定要嵌套几次。想不到这
2021-03-05 21:57:11
286
原创 @ControllerAdvice注解的具体应用
@ControllerAdvice@ControllerAdvice是在所选择的包下发生错误时,统一把错误都发送到标注了@ControllerAdvice的组件中来进行处理。这样做当发生错误时,可以更好更快的处理错误。下面为举例@Slf4j@RestControllerAdvice(basePackages = "com.qwf.gulimall.gulimallproduct.controller")public class ControllerException { @Excepti
2021-03-04 23:25:49
264
1
原创 【面试】数据库事务的传播和事务的隔离属性
数据库事务的传播数据库事务的传播:数据库事务的传播就是当创建的方法运行在一个事务当中,而该方法内部调用的其他方法同样具备事务属性,其他方法的事务该如何启动。下面举例BookShopServiceImpl.java@Transactional()@Overridepublic void purchase(int userId,String isbn){ double bookPrice=bookShopDao.getBookPriceByIsbn(isbn); bookShopDao.upda
2021-03-02 19:18:31
75
原创 【面试】变量的各个分类以及分类之间的区别
public class Exam{ static int s; int i; int j; { int i=0; i++; j++; s++; } public void test(int j){ j++; i++; s++; } public static void main(String[] args){ Exam obj1=new Exam(); Exam obj2=new Exam(); obj1.test(10); obj1.test(
2021-03-01 22:02:04
297
原创 关于方法的迭代和循环之间的区别
先出一道题目,一个人可以一次走一阶楼梯和两节楼梯。如果有N节楼梯,那么他有几种走法走完。这道题我们有2种方法可以来实现。思路:当楼梯只有一节或两节时,一节楼梯的走法自然只有一种,两节楼梯的走法有2种。而三节以上我们可以认为是一开始走了一节然后走两节或者是一开始走了两节的再走一节。设算出台阶的走法函数为F(n)。F(1)=1F(2)=2F(3)=F(1)+F(2)-…F(N)=F(N-1)+F(N-2)而具体实现方式有两种迭代public Double F1(int n){ if(
2021-02-26 19:44:06
631
2
原创 java不同类型数据在方法调用时传递机制
自然我们先看一段代码public class test{ public static void main(String[] args){ int i=1; String j="hello"; Integer k =1; int[] num = {1,2,3,4,5}; MyData my =new Mydata(); change(i,j,k,num,my); System.out.println("int i = "+i); System.out.println("S
2021-02-23 19:33:24
276
原创 java类初始化和父类子类继承初始化的关系和初始化顺序
首先我们先看下面一段代码public class Father{ private int i = test(); private static int j = method(); static{ System.out.println("(1)"); } Father(){ System.out.println("(2)"); } { System.out.println("(3)"); } public int test(){ System.out.println("(4
2021-02-22 14:17:44
431
原创 java中‘0‘ 42字符串和“0“字符串比较不相等的情况
'0’和"0"字符串不相等public PageUtils queryPageList(Map<String, Object> params) { String catelogId = (String) params.get("catelogId"); if(!StringUtils.isEmptyOrWhitespaceOnly(catelogId) && catelogId !="0"){ skuInfoWrapper
2021-01-02 17:35:29
417
原创 前端ES6简单总结
首先是es6当中新增了let变量let有以下2个特点:1.作用域严格2.不允许重名和重复赋值 { let a ="123" ; var b ="456" ; } console.log(a); console.log(b);这样的话运行时...
2020-10-28 00:14:46
132
原创 git安装配置
git安装地址:https://git-scm.com/首先我们先在GitHub上面注册自己的账号。接下来打开git-bash我们先配置自己的名字和邮箱git config --global user.name "username"git config --global user.email "email"接下来创建我们的ssh密钥ssh-keygen -t rsa -C "注册GitHub的邮箱"然后回车就好接下来使用cat ~/.ssh/id_rsa.pubcat ~/.ssh/i
2020-10-15 15:38:10
60
原创 springboot练习配置-安装docker,使用docker安装mysql和redis
首先我们在linux系统中安装docker我使用的是CentOS 8 ,CentOS8下载地址:https://www.centos.org/download/防止之后权限问题我们先进入root用户sudo root我们先看一下linux有没有自带docker,先卸载一下dockeryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \
2020-10-15 15:18:07
127
原创 spring-alibaba-sentinel具体配置使用
**Sentinel:**随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。是用来管理和配置服务的流控,降级,熔断等等的。Sentinel下载首先我们自然要下载sentinel2020年9月25日目前的最新版本是1.8.0下载地址:https://github.com/alibaba/Sentinel启动事项而sentinel启动的默认端口为8080,这和Tomcat的端口重合,所以当端口重
2020-09-26 17:27:42
6085
3
原创 SpringCloud-alibabaNacos配置
这里需要LINUX的相关知识,会比较长Nacos可以做到服务注册,服务配置和消息总线这三种功能,可以认为是eureka+config+bus三个组件结合到了一起。下载地址先说一下2020年9月23日时nacos的最新版本是1.3.2。大家可以到nacos的官网:**https://nacos.io/zh-cn/**进行下载zip的是windows版本而tar.gz是linux版本下载完成之后解压之后通过cmd进入nacos-server-1.3.2\nacos\bin文件夹进入之后运行sta
2020-09-24 00:29:37
603
原创 SpringCloud-Stream配置和简单实现
SpringCloud-Stream是给各种消息中间件来统一接口的一个工具。目前主流的消息中间件例如Rabbitmq,Kafka,Activemq,RocketMQ。如果从一个已经了解的消息中间件比如Rabbitmq需要切换到Kafka,这样需要重新开始学习,会耗费很多不必要的精力。而Stream可以直接提供一套规范,直接使用Stream而不用思考下面具体的消息中间件。可以减少我们学习时间的成本。目前的Stream只支持Rabbitmq和Kafka之间的切换。(2020.9.15)而下面这张图可以
2020-09-15 01:35:54
1727
2
原创 SpringCloud-bus消息总线配置
首先消息总线有两种配置方式一种是把更新消息Post请求发给其中的一个服务端(client),再由服务端传递给其他的服务端。另一种就是把消息Post请求发给注册端(server),注册端口在发给所有的服务端(client)我们选择第二种配置方式原因一:这样可以减轻服务端的压力原因二:这样的逻辑更加清晰,减少耦合原因三:破坏了服务的单一性,对等性,而且网络地址经常变化,而通过网络控制通知则需要更多节点。在这之前我们配置了erlang和rabbitmqerlang的版本是23.0rabbitmq
2020-09-15 00:17:46
115
原创 SpringCloud-Config分布式配置中心的简单实现
SpringCloud-Config个人理解SpringCloud-Config:是分布式配置中心,当很多的微服务架构使用的是同一套配置时,如果要进行修改就会发生很多的重复操作。耦合太高,所以一套配置处处生效的SpringCloud-Config分布式配置就可以省下很多的重复操作。这边是服务端(server)首先是需要导入的pom包:<dependencies> <dependency> <groupId>org.sprin
2020-09-13 15:09:19
109
原创 SpringCloud-Gateway网关简单学习
首先解释一下为什么不用Zuulzuul是第一个进行整合网关接口的团队。但是版本设计目前跟不上时代。而且团队打算推出zuul2时团队成员发生矛盾于是团队走了很多。结果zuul2迟迟没有上线。而zuul是同步阻塞架构。就是一个线程对应一个任务。而在大量任务进入时线程的不断切换会造成内存的大量浪费。而gateway是异步非阻塞架构,相对于zuul来说效率更高。而zuul2的不成熟使gateway更值得选择。首先是pom导入<dependencies> <dependen
2020-09-11 01:19:00
108
原创 SpringCloud-Hystrix服务熔断简单实现
**服务熔断**一个服务在一段时间内运行连续失败超过了这段时间内运行次数的规定值,该服务暂时关闭,即使之后运行成功,也需要连续一段时间的运行成功才恢复服务,保证系统的健壮。配置首先就是main方法中调用注解@EnableCircuitBreaker@SpringBootApplication@EnableEurekaClient@EnableCircuitBreakerpublic class PaymentHystrixMain8001 第二就是在需要调用的方法头调用@HystrixC
2020-09-09 19:46:35
213
原创 SpringCloud-Hystrix当中的服务降级具体实现
Hystrix服务降级:当系统的方法调用时,发生错误或系统宕机或网络卡顿调用失败时,系统可以使用其他方法来进行调用来防止直接将系统回传直接发给调用者。可以使代码更加健壮调用方式在系统服务提供端(provicer)首先在pom端添加坐标 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-c
2020-09-09 01:25:28
134
原创 SpringCloud-OpenFeign中@PathVariable注解的注意事项
SpringCloud-Feign-@PathVariableFeign PathVariable annotation was empty on param 0.使用Feign的时候,如果参数中带有@PathVariable形式的参数,则需要使用value=""标明对应的参数,否则会抛出IllegalStateException异常如@GetMapping(value = "/payment/consumer/hystrix/ok/get/{id}") public String pay
2020-09-08 20:35:42
4281
原创 SpringBoot thymeleaf简单调用
在HTML头部链接中添加xmlns:th="http://www.thymeleaf.org"来进行限定入下<html lang="en" xmlns:th="http://www.thymeleaf.org">而调用可以在标签里面添加th来修改服务器调用之后的显示例如其中attrNameRequestScope是已经存放在request请求当中的key值,所对应的value值时attrValueRequestScope`<p th:text="${attrNameRequest
2020-09-01 19:16:10
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人