- 博客(172)
- 资源 (1)
- 收藏
- 关注
原创 62.JavaWeb
(8)Servlet与Tomcat、Filter、Listener。(7)会话技术(cookie、session)。推荐使用MobaXterm。(17)Linux操作系统。一、JavaWeb。(6)HTTP协议。
2023-12-26 15:31:01 766 2
原创 22.Java Stream流的总结
Stream 是 Java 8 引入的一个强大的工具,它提供了丰富的操作方法,可以大大简化集合数据的处理。通过灵活地使用中间操作和终端操作,我们可以实现各种复杂的数据处理需求。Java 8 引入的 Stream 流是一种用于处理集合数据的高级抽象。它提供了一种函数式编程的方式来操作数据,使得代码更简洁、可读性更高,并且可以并行处理数据。希望这个总结对你有帮助。如果还有其他问题,请随时提问。
2023-12-26 14:49:23 482
原创 21.java的::方法引用的总结。
注意:方法引用返回的是一个函数式接口对象(该函数式接口抽象方法被引用方法替代了,调用抽象方法实际上就是调用引用的方法)。Java 中的双冒号(::)用于方法引用,它可以简化 Lambda 表达式的书写。3.跟lambda表达式相比,不用标明方法参数,因为会调用跟函数式接口方法参数和返回值一样的方法。方法引用 ::可以认为是代替了一部分的lambda表达式,都是为函数式接口服务。1.可以看出方法引用中的返回值跟函数式接口的返回值一样。2.方法引用的方法参数跟函数式接口也是一样的。
2023-12-26 13:59:34 555
原创 20.lambda表达式的总结
Lambda 表达式是 Java 8 引入的一个重要特性,它提供了一种简洁、可读性高的方式来表示匿名函数。Lambda 表达式可以用于替代某些需要接口实现的地方,使代码更加简洁和易于理解。Lambda 表达式的应用场景:Lambda 表达式常用于函数式接口的实现,例如在集合的遍历、排序、过滤等操作中,以及线程的创建和事件处理等场景。Lambda 表达式的类型:Lambda 表达式是通过上下文推断出的函数式接口类型来进行匹配的。语法格式:Lambda 表达式的基本语法格式为。
2023-12-26 13:09:59 451
原创 19.JavaSE
这种限定称为上界通配符限定,它表示。这种限定称为下界通配符限定,它表示。(8)静态代码块-构造代码块-构造方法。或其子类,可以用于接收。或其父类,可以用于接收。(10)容易犯错的点。
2023-12-26 12:28:09 699
原创 61.SVN版本控制系统
所谓的 Tag 或是 Release 就是一个特别的版本,因为这个版本可能有特别的意义。其它的会被当做冲突。那么此时,我们就可以为小组2建立一个分支,分支其实就是 trunk 版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过(合并)功能,将分支合并到 trunk 上来,从而最后合并为一个项目。您将会看到 MyWork 目录下面多了一个名为 .svn 的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它)。
2023-12-24 23:28:34 1243
原创 36.MYSQL的外键(foreign key)
需要注意的是,外键约束的使用需要谨慎,合理设计外键关系可以提高数据的一致性和完整性,但过多的外键关系可能会影响数据库的性能。支持数据的级联操作:外键还可以实现级联删除和更新操作,例如设置外键约束时指定级联删除,当主表中的某条记录被删除时,从表中对应的相关记录也会被自动删除。维护数据的完整性:外键约束可以保证数据的完整性,确保从表中的外键值必须存在于主表的主键列中,避免出现孤立的数据。实现数据的一致性和约束:外键约束可以限制对主表的修改操作,确保数据的一致性,防止出现不符合业务规则的数据。
2023-12-24 00:04:23 638
原创 3.苍穹外卖-day03
进入到sky-server模块,创建com.sky.annotation包。/*** 自定义注解,用于标识某个方法需要进行功能字段自动填充处理*///数据库操作类型:UPDATE INSERT其中OperationType已在sky-common模块中定义/*** 数据库操作类型*//*** 更新操作*/UPDATE,/*** 插入操作*/INSERT。
2023-12-23 14:04:54 1187
原创 2.苍穹外卖-day02
ThreadLocal 并不是一个Thread,而是Thread的局部变量。ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
2023-12-23 14:04:15 1514
原创 35.java后端面试宝典
作为一个开发者,我总是希望我的代码能够达到最优,这可能会导致我在某些情况下花费过多的时间在优化代码上,而忽略了项目的整体进度。比如:对于程序出现bug我是非常执着于解决这个bug,为此我也是学到了不少的处理bug问题和调试的经验。我最大的优点是持续学习和自我提升的能力。我热爱编程,对Java有深入的理解,并且一直在学习新的技术和工具,以适应不断变化的行业需求。我叫什么,这次是应聘什么岗位,会什么技术,会什么框架,熟练掌握框架之间的整合技术,做过什么项目并且介绍主要做了什么,并且可以为公司带来什么价值。
2023-12-22 23:35:08 896
原创 1.苍穹外卖-day01
其实,在真实的企业开发中,接口设计过程其实是一个非常漫长的过程,可能需要多次开会讨论调整,甚至在开发的过程中才会发现某些接口定义还需要再调整,这种情况其实是非常常见的,但是由于项目时间原因,所以选择一次性导入所有的接口,在开发业务功能过程当中,也会带着大家一起来分析一下对应的接口是怎么确定下来的,为什么要这样定义,从而培养同学们的接口设计能力。作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的三种软件环境。
2023-12-22 12:50:14 1746
原创 60.Sentinel源码分析
例如,我们在order-service服务中,将的方法标记为一个资源。1)首先在order-service中引入sentinel依赖2)然后配置Sentinel地址spring:cloud:sentinel:transport:dashboard: localhost:8089 # 这里我的sentinel用了8089的端口3)修改OrderService类的queryOrderById方法// 创建Entry,标记资源,资源名为resource1// 1.查询订单,这里是假数据。
2023-12-14 23:27:45 1292
原创 56.微服务面试篇
假如最新请求是1400ms请求,1400ms - 1000ms = 400ms,即400ms在第一个窗口,它的下一个窗口就是从500ms算起,此时的请求数量是4个,所以1400ms请求被拒绝。假如最新请求是1600ms请求,1600ms - 1000ms = 600ms,即600ms在第二个窗口,它的下一个窗口就是从1000ms算起,此时的请求数量是3个。下面的图中请求分别在200ms、400ms、900ms、1250ms、1300ms、1400ms、1600ms、2100ms时间点过来。
2023-12-14 23:26:33 1371
原创 59.计算机网络笔记
网关上有两张网卡,分别配置了属于两个子网的ip地址,计算机A网卡判断是否同子网,如果不同,就把目标mac地址改为网关mac地址,把数据包发给网关,网关将数据包源地址改为自己的mac地址,目标mac地址改为计算机B网卡的mac地址,然后将数据包发给计算机B。当一个设备要发送数据时,它会将数据封装成帧,并在帧中包含目标MAC地址和源MAC地址。网络中有两类地址:二层地址(mac地址,MAC地址只能在一个网络(或子网)内使用)和三层地址(ip地址)。交换机只会关心数据包的mac地址,不关心数据包的ip地址。
2023-12-12 01:48:58 730 2
原创 58.Nacos源码分析2
Nacos的健康检测有两种模式:临时实例:采用客户端心跳检测模式,心跳周期5秒心跳间隔超过15秒则标记为不健康心跳间隔超过30秒则从服务列表删除永久实例:采用服务端主动健康检测方式周期为2000 + 5000毫秒内的随机数检测异常只会标记为不健康,不会删除那么为什么Nacos有临时和永久两种实例呢?以淘宝为例,双十一大促期间,流量会比平常高出很多,此时服务肯定需要增加更多实例来应对高并发,而这些实例在双十一之后就无需继续使用了,采用临时实例比较合适。而对于服务的一些常备实例,则使用。
2023-12-10 14:33:23 862
原创 57.Nacos源码分析1
二、服务注册。一、下载Nacos源码并运行。1.下载Nacos源码并运行要研究Nacos源码自然不能用打包好的Nacos服务端jar包来运行,需要下载源码自己编译来运行。1.1.下载Nacos源码课前资料中已经提供了下载好的1.4.2版本的Nacos源码:如果需要研究其他版本的同学,也可以自行下载:,找到其中的1.4.2.版本:点击进入后,下载Source code(zip):1.2.导入Demo工程我们的课前资料提供了一个微服务Demo,包含了服务注册、发现等业务。
2023-12-10 14:32:54 803
原创 55.MQ高级特性
一、RabbitMQ部署指南。一、RabbitMQ部署指南。1)单机部署。我们在Centos7虚拟机中使用Docker来安装。方式一:在线拉取方式二:从本地加载在课前资料已经提供了镜像包:上传到虚拟机中后,使用命令加载镜像即可:执行下面的命令来运行MQ容器:-d \2)安装DelayExchange插件。上述文档是基于linux原生安装RabbitMQ,然后安装插件。
2023-12-07 01:11:14 1189 2
原创 54.多级缓存
缓存:在Java中,缓存通常指应用程序中的缓存机制,用于临时存储经常访问的数据,以提高数据访问速度。总的来说,Java中的进程缓存和缓存都是为了提高程序的性能和响应速度而存在的,但它们的作用和实现方式有所不同。而缓存是应用程序中的一种机制,用于缓存经常访问的数据,以减少对数据库或其他数据源的访问次数,提高程序的性能。注意:写好文件后,linux的openResty中的nginx要重新加载,windows中的nginx也要重新加载,否则的话是访问失败(还是原来的样子,没有变化)的。
2023-12-03 19:15:39 1560 2
原创 53.redis分布式缓存
Sentinel的三个作用是什么?•监控•故障转移•通知Sentinel如何判断一个redis实例是否健康?•每隔1秒发送一次ping命令,如果超过一定时间没有相向则认为是主观下线•如果大多数sentinel都认为实例主观下线,则判定服务下线故障转移步骤有哪些?•首先选定一个slave作为新的master,执行slaveofno one•然后让所有节点都执行slaveof新master•修改故障节点配置,添加slaveof新。
2023-12-03 19:15:25 1193
原创 52.seata分布式事务
简述AT模式与XA模式最大的区别是什么?•XA模式一阶段不提交事务,锁定资源;AT模式一阶段直接提交,不锁定资源。•XA模式依赖数据库机制实现回滚;AT模式利用数据快照实现数据回滚。•XA模式强一致;AT模式最终一致3.3.2.2 AT模式的脏写问题 、AT模式的写隔离。AT模式的脏写问题。
2023-11-22 15:05:41 700 14
原创 java.lang.NoSuchMethodException: com.mysql.cj.conf.PropertySet.getBooleanReadableProperty(java.lang.
把数据库驱动类从8.0.27换成8.0.11就能成功启动。原因:使用seata分布式事务后,访问出现报错。
2023-11-20 16:24:33 631 5
原创 Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,b
添加坐标后,一启动服务就报错,启动失败。再次启动效果:成功启动。
2023-11-20 00:49:17 3673 5
原创 java.sql.SQLException: The server time zone value is unrecognized or represents more
北京等沿海地区时区设置为中国标准时间,也称为东八区(UTC+8)。因此,如果你使用MySQL数据库并且服务器部署在沿海等地区,你可以将JDBC连接字符串中的serverTimezone参数设置为"Asia/Shanghai"或者直接设置为"GMT+8"来表示广东的时区设置。这个错误是由于MySQL连接时区设置不正确导致的。你可以通过在JDBC连接字符串中添加serverTimezone参数来指定时区。
2023-11-19 16:38:04 711 1
原创 Unrecognized VM option ‘CMSParallelRemarkEnabled‘Error: Could not create the Java Virtual Machine.
文件添加java的jdk8路径。然后重新启动就能成功了。
2023-11-19 16:31:50 386
原创 java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x625
虽然springboot或springcloud的项目中可能不需要你指定版本,但是你可以指定一个比较高的版本,然后就可以运行了。原因:java版本太高,lombok版本太低。
2023-11-18 20:06:37 2008 3
原创 51.Sentinel微服务保护
(1)初识Sentinel。(1)初识Sentinel。(1.1)雪崩问题及解决方案。(1.1.1)雪崩问题。雪崩:一个微服务A依赖(即发送请求,等回应)于另一个微服务B,如果B出现故障,没有回应,则A的这条访问就不会结束(请求不释放),等到微服务A的请求资源都用完后,A也废了(所有访问资源都被占用了)。然后一些微服务依赖服务A的,也得不到A的回应,也跟着废了。这就是雪崩,因为一个微服务出现故障,导致凡是依赖于它的微服务也出现故障。(1.1.2)解决雪崩问题的四种方式。
2023-11-18 17:51:52 975 2
原创 openfeign整合sentinel出现异常
注解是Spring Framework中的一个注解,它通常用于标记Bean的延迟初始化。当一个Bean被标记为。时,Spring容器在启动时不会立即初始化这个Bean,而是在第一次被请求获取时才进行初始化。解决办法:在为userClient注入feign的接口类型时,添加@Lazy注解。
2023-11-17 19:33:58 731
原创 50.批处理脚本(2/2)
一、批处理命令。(1)net use 连接共享文件夹或查看。(1.1)连接共享文件夹。其中,Z: 是本地驱动器的映射;是远程计算机上共享文件夹的路径;username是在远程计算机上拥有访问权限的用户名;password是相应的密码。将共享文件夹映射到 Z: 驱动器后,共享文件夹会成为 Z: 驱动器的根目录。你可以通过 Z: 驱动器直接访问共享文件夹中的内容。当你在 Z: 驱动器中浏览文件夹时,实际上是在访问远程计算机上的共享文件夹,而不是本地计算机上的文件系统。
2023-11-14 22:55:26 537
转载 49.批处理命令(1/2)
解说:主要是利用set命令的/p,表示后等号面的字符都是提示字符,然后在用退格键,让光标置于该行的最左端,但是原来的文字还在,然后使用空格作为输入提示符,所以就会覆盖前面的文字,然后再次输出退格符将光标置于该行的最左端,循环执行。(i后一个字母是j,代表第二个变量,k代表第三个变量,也可以使用ab这三个字母也是一样的,如果指定变量%i,然后又使用%a,是错的,因为最低(第一个变量)都是i起步)每个参数都是可选的;2.如果路径存在,仅文件不存在,则会继续执行,并且提示文件不存在的错误,例如:dir c:\;
2023-11-11 22:02:24 533
原创 虚拟机网络没有有效的ip配置
解决方法:点击虚拟机的 遍历->网络编辑器->移除不要的网络,然后添加网络。(下面的图就是我把虚拟网络全部移除,然后重新添加网络,开机后直接提示是否允许连接网络)在服务中找到VMware NAT service和VMware DHCP service两个服务,然后打开“启动类型”,选择“自动”,点击下方的“启动”,回车确定。原因猜测:或许是之前使用的操作系统把网络给占了。
2023-11-09 21:28:37 2574
原创 33.高等数学
复数 z=a+bi,其中 a 是实部,b 是虚部,复平面上找到坐标点 (a,b) 来表示这个复数。但是,对于复数而言,由于它同时包含实部和虚部,因此我们需要两个维度来表示,这时候就需要一个新的坐标轴来表示虚部,通常被称为虚轴。3.复数:是由实部和虚部组成的数,可以表示为a+bi 的形式,其中 a 是实部,b 是虚部。14.并集U:定两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B,读作A并B。:集合 {1,2,3} 和 {2,3,4} 的交集为 {2,3}。
2023-10-12 16:55:26 148
原创 44.ES
e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch。在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。不建议大家自己pull。-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录。
2023-10-12 16:50:08 730 1
原创 18.java继承范围
提示:final和static是类、方法或变量的修饰符,不属于访问修饰符。1.方法被private修饰:不能被子类继承。(只是该方法不能被继承)修饰类的访问控制修饰符有两种:public、default。2.static修饰:可以继承,但是不能重写或覆盖。2.static修饰:可以继承,但是不能重写或覆盖。3.final修饰:可以继承,但是不能重写或覆盖。3.final修饰:可以继承,但是不能重写或覆盖。1.变量被private修饰:不能被子类继承。1.类被final修饰:则该类不能被继承。
2023-10-12 16:47:28 218
原创 7.从句学习
这些例子展示了名词性从句在不同语法角色中的应用,主语从句作为句子的主语,宾语从句作为动词的宾语,表语从句作为主语或宾语的补语,同位语从句作为名词的解释或说明。这些例子展示了形容词性从句的多种形式,关系代词引导的从句描述被修饰的名词,关系副词引导的从句描述情境或时间,假设性从句描述条件或假设。时间状语从句描述时间,条件状语从句描述条件,原因状语从句描述原因,目的状语从句描述目的,结果状语从句描述结果。引导从句的词称为“从属连词”或“引导词”,不同类型的从句有不同的引导词。(2)引导词(常见的引导词)。
2023-09-13 20:07:44 316
原创 6.英语的十六种时态(三面旗):主动、被动、肯定、否定、一般疑问句、特殊疑问句。
1、not 可以置于 be 动词、情态动词及助动词之后,构成否定句。在这些例子中,疑问词(what、where、when、who)和助动词(are、did、will、is)被提前放置于句子开头,以构成特殊疑问句。will用作情态动词,表示意愿、请求、可能性、命令、习惯或倾向性等。一般疑问句:助动词提前(情态动词>have>be),否定时,助动词+not提前。be 动词属于系动词,行为动词中的及物动词才有被动语态。2、助动词的优先级:情态动词 > have > be动词(或do助动词)。(派对是什么时候的?
2023-09-13 16:29:14 1190
原创 43.MQ—RabbitMQ
提示:绑定键使用空字符串,就可以完成广播(发给所有绑定该交换机的队列)。(3.4.2)基础消息队列(RabbitTemplate模板实现)。(3.1)docker下载rabbitmq容器,并启动。(3.2)RabbitMQ中的几个概念。(3.4.1)基础消息队列(代码实现)。提示:需要提供绑定键(路由键),根据。(3)RabbitMQ学习。(3.4)常见消息模型学习。(1)同步调用与异步调用。(3.3)常见消息模型。(2)MQ之间的区别。(3.5)消息转换器。(1.1)同步调用。(1.2)异步调用。
2023-09-11 16:39:26 542
原创 42.SpringBoot—原理篇
做一个独立项目,有自动配置类,最后在META-INF/spring.factories文件中写上自动配置类,然后执行maven的clean,再执行install(将starter添加到本地仓库)。(2.1)案例:统计独立IP访问次数。(2.1.1)简陋版ip展示。下面的模拟调用是导入了该自定义starter的项目,模拟调用。
2023-08-16 14:53:21 365
原创 springboot整合jetcache出现异常No qualifying bean of type ‘com.alicp.jetcache.anno.support.ConfigProvider‘
解决办法:更换版本。
2023-07-20 14:52:33 730
MobaXterm是一款功能强大的远程计算机管理工具
2023-11-25
seata1.4.2.rar
2023-11-22
nacos1.4.1版本资源(windows+linux)注册中心、配置管理
2023-11-19
sentinel 1.8.1版本(sentinel项目源码,jar包,push模式(使用nacos)的持久化jar包)微服务保护
2023-11-18
JMeter性能测试、负载测试和压力测试
2023-11-18
bat2exe批处理文件转可执行文件
2023-11-11
SecureCRT远程访问linux系统
2023-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人