- 博客(33)
- 收藏
- 关注
原创 排序算法_冒泡排序
需要保证奇数和奇数,偶数和偶数之间的相对位置不变,这和书本不太一样。例如对于 [1,2,3,4,5],调整后得到 [1,3,5,2,4],而不能是 {5,1,3,4,2} 这种相对位置改变的结果。1. 依次比较数组中相邻两个元素大小,若 a[j] > a[j+1],则交换两个元素,两两都比较一遍称为一轮冒 泡,结果是让最大的元素排至最后 2. 重复以上步骤,直到整个数组有序。时间复杂度 O(N2),空间复杂度 O(1),时间换空间。稳定排序指,按对象中不同字段进行多次排序,不会打乱同值元素的顺序;
2024-07-07 15:18:22
378
原创 二分查找及其变种
例 nums = {1,3,5,5,6,6,8,9,11} 我们希望找出第一个大于 5的元素的索引,那我们需要返回 4 ,因为 5 的后面为 6,第一个 6 的索引为 4,如果希望找出最后一个小于 6 的元素,那我们则会返回 3 ,因为 6 的前面为 5 最后一个 5 的索引为 3。一、如何从数组或区间中找出第一个大于或最后一个小于目标元素的数的索引。
2024-07-07 13:59:45
277
原创 二分查找及其变种
2. while (left < = right),注意括号内为 left <= right ,而不是 left < right ,如果我们设置条件为 left < right 则当我们执行到最后一步时,则我们的 left 和 right 重叠时,则会跳出循环,返回 -1,区间内不存在该元素,但是不是这样的,我们的 left 和 right 此时指向的就是我们的目标元素 ,但是此时 left = right 跳出循环。其基本思想是将目标值与数组中间的元素进行比较,如果目标值等于中间元素,则查找成功;
2024-07-04 23:02:57
1104
原创 数据结构_1.0
在计算机科学中,数据结构是一种数据组织、管理和存储的格式。它是相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术相关。
2024-07-02 15:05:55
3181
原创 LRU算法
注意:(1)给双向链表添加头尾的虚拟节点,虚拟节点不包含信息,只起到连接的作用,这样的好处是不用再特殊考虑链表中有数据的第一个节点和最后一个节点,可以把这两个节点也当成普通节点一样对待了。Redis会基于server.maxmemory_samples配置选取固定数目的key,然后比较它们的lru访问时间,然后淘汰最近最久没有访问的key,maxmemory_samples的值越大,Redis的近似LRU算法就越接近于严格LRU算法,但是相应消耗也变高,对性能有一定影响,样本值默认为5。
2024-07-01 11:55:59
1713
原创 类加载器、反射、注解
反射机制---是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。对我们的程序进行标注和解释注解和注释的区别注释: 给程序员看的注解: 给编译器看的使用注解进行配置配置的优势,代码更加简洁,方便。public @interface 注解名称 { public 属性类型 属性名() default 默认值;属性类型基本数据类型StringClass注解。
2024-06-19 15:13:49
884
原创 MongoDB_见解
MongoDB:是一个高效的非关系型数据库(不支持表关系:只能操作单表)MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
2024-06-16 22:50:04
371
原创 Docker_1.0
微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。- 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。- 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题.Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。1.1.1.应用部署的环境问题依赖关系复杂,容易出现兼容性问题。
2024-06-16 16:23:08
806
1
原创 Spring Cloud(2)
类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、 HEADERS、FULL响应结果的解析器http远程调用的结果做解析, 例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有, 不过会使用Ribbon的重试2.2.1.配置文件方式feign:client:config:userservice: # 针对某个微服务的配置。
2024-06-15 15:33:34
1053
原创 Spring Cloud (一)
实际部署中会出现这样的场景: 服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的 用户请求。因此Nacos中提供了一个`NacosRule`的实现,可以优先从同集群中挑选实例。- 修改order-service服务中的OrderService类中的queryOrderById方法,根据Order对象中的userId查询User。修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。
2024-06-13 16:41:55
664
原创 RabbitMQ 见解一
案例需求如下: 1. 利用@RabbitListener声明Exchange、Queue、RoutingKey 2. 在consumer服务中,编写两个消费者方法,分别监听direct.queue1和direct.queue2 3. 在publisher中编写测试方法,向itcast. direct发送消息。在事件模式中,支付服务是事件发布者(publisher),在支付完成后只需要发布一个支付成功的事件 (event),事件中带上订单id。但是,在某些场景下,我们希望不同的消息 被不同的队列消费。
2024-06-12 14:34:04
1332
原创 java基础知识点(七)
在开发中经常会遇到一些问题,而一个问题通常会有n中解法,但是其中有一种解法是最优的,这个最优的解法已经被前人总结出来了,这些被前人总结出来的解决特定问题的经验就称之为设计模式。工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一, 这种类型的设计模式属于创建型模式,它提供了一种获取对象的方式。3)如果注解在成员变量上,先获取成员变量的对象(Field),再通过Fiield对象获取变量上的注解。1)如果注解在类上,先获取类的字节码(Class),再通过Class对象类上的注解。
2024-01-13 17:25:27
1417
原创 java基础知识点(六)
1.安全问题原因:多个线程在操作共享数据,而且在修改共享数据,由于一个线程还没有执行完,另一个线程就过来操作了,很有可能导致数据错乱。ipv6:占16个字节,冒分十六进制表示法(举例:fe80::4d1:d7cb:3ba7:490b%9)UDP协议:面向无连接的,不可靠的协议,一个数据包大小有限制,在64KB以内。端口号:计算机中应用程序的唯一标识,用一个整数表示(范围:0~65535)TCP协议:面向有连接的,可靠的协议,对数据的大小没有限制。2.案例2:发送端发数据,接收端接收数据(发多次,接多次)
2024-01-13 17:13:55
389
原创 java基础知识(五)
Properties是属于Map集合的一个子类,用来存储键和值,但是它的键和值都是String类型。//System.out其实就是一个打印流,这个打印流的默认目的地是控制台。Unicode字符集的UTF-8编码方案:一个字母占1个字节,一个汉字占3个字节。PrintWriter: 字符打印流,可以用来往文件中打印任意类型的数据。PrintStream: 字节打印流,可以用来往文件中打印任意类型的数据。GBK字符集:一个字母占1个字节,1个汉字占2个字节。作用:对基础的流进行封装,提高基础的读、写性能。
2024-01-13 16:57:39
449
1
原创 java基础知识点(四)
所以方法的设计者,就需要在方法内部对参数进行校验,如果校验不通过,就给调用者产生异常对象,目的就是告诉调用者出现了什么问题。Java语言的设计者,为了让开发者知道,程序产生的是什么问题,就把异常写成类,把这些类也编写到了API文档中。1)在API方法中,方法的设计者,考虑到方法的调用者可能传递参数不合法,导致程序无法正常执行。由于Java中异常有很多类,有些异常是有共性的,所以就有了异常的继承体系。2)作为方法的调用者,如果真的传递不合法的数据,就会触发异常,产生异常对象。
2024-01-13 10:47:48
1170
1
原创 java基础知识点(三)
3)如果一个节点没有子节点或者父节点,这个节点则指向Nil,Nil称之为叶子节点,一个节点最多只有两个子节点,每一个节点左子节点都比自己小,右子节点都比自己大。一个节点最多只有两个子节点,每一个节点左子节点都比自己小,右子节点都比自己大。4)任意一个节点如果是红色,它的子节点必须是黑色(不能两个红色节点相连)5)任意一个节点到其叶子节点的简单路径上,包含相同数目的黑色节点。对于任意一个节点,左右两个子树的高度差不超过1。1)对于任意一个节点,要么是红色,要么是黑色。二叉树:一个节点最多只有两个子节点。
2024-01-13 10:32:45
456
1
原创 java基础知识点(二)
/月份的值是从0开始,0表示1月,...9表示10月,11表示12月。//表示自1970年以来的时间。//如果o1-o2返回正数,说明o1比o2大,o1就会自动放在后面。//如果o1-o2返回负数,说明o1比o2小,o1就会自动放在前面。//如果o1-o2返回0, 说明o1和o2相等,此时就并列放。//1.把数组转换为字符串 格式: [50,30,20,40,10]//把两个相邻的元素进行比较, j和j+1索引位置的元素。//Calendar是一个抽象类,获取的是Calendar的子类对象。
2023-12-07 22:36:18
81
原创 Java基础知识点(一)
打印语句底层会自动调用对象的toString(),默认执行的就是Object类的toString()方法,如果我们自己写的类,不想打印对象的地址,我们可以在自己的类中重写toString()方法。好处:体现在方法上,把一个方法的形参写成父类/接口类型,调用方法时可以传递子类/实现类的对象.否则这个类也必须是抽象类。Object是所有类的父类,任何一个类的对象(包括数组)都可以调用Object类的方法。应用场景:一般是调用方法的时候,如果方法的形参是接口,那么把匿名内部类作为参数传递.
2023-12-03 11:46:47
117
1
原创 Java基础语法一
单行注释:// 多行注释/* */ 文档注释/** */所谓常量可以理解成一种特殊的变量,他的值被设定后, 在程序运行过程中不许被改变.首字符之后可以是字母大小写,$,下划线_与数字的组合-----一般不建议数字开头。java变量是程序中最基本的存储单位,其元素包括变量名,变量类型和作用域。所有的标识符----用过以字母大小写,$,下划线_开始。非法标识符:123abc;注意事项, 每个变量都有类型, 也可以是引用类型。所有的变量, 方法, 类名: 需要见名知意。
2023-11-28 22:48:41
80
原创 关于Java的版本及其安装
Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为Java EE和。Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的。Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括。JVM:Java虚拟机,是Java跨平台的核心,可以运行Java语言开发的程序.
2023-11-27 22:01:35
225
1
原创 关于Java线程
一个顺序的单一的程序执行流程就是一个线程。代码一句一句的有先后顺序的执行。/*** 第二种创建线程的方式* 实现Runnable接口单独定义线程任务*///实例化任务//创建线程并指派任务t1.start();t2.start();i<1000;i++){System.out.println("你是谁啊?");i<1000;i++){System.out.println("开门!查水表的!");
2023-11-26 13:38:13
749
1
原创 Java网络编程
Socket的英文原义是“孔”或“插座”。在网络编程中,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
2023-11-25 16:04:16
158
原创 关于HTTP协议
HTTP协议 -------超文本传输协议 由万维网制定(w3c)是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密。是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
2023-11-25 14:59:59
181
原创 关于HTML
HyperTextMarkupLang是超文本标记语言,用来构成一个"网页"的语言。由W3C(万维网)制定。超文本: 指不仅仅是纯文本,还包括字体效果和多媒体(音频,视频和图片)相关作用: 学习如何搭建页面结构和准备页面的内容, 相当于盖房子(毛坯房)学习HTML主要学习的就是有哪些标签,以及标签的使用方法标签体文本相关标签:-标签:标题。每级标题的字体大小不同,标题独占一行 段落标签p 独占一行,自带上下间距。
2023-11-23 23:14:58
165
原创 JavaScript与JSON
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript是基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。JSON(JavaScriptObject Notation, JS对象简谱)是一种轻量级的数据交换格式;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构,易于人阅读和编写,可以在多种语言之间进行数据交换 ,同时也易于机器解析和生成,有效地提升网络传输效率。
2023-11-22 23:41:07
419
原创 关于前后端的跨域访问的处理
2.2.1 当客户端提交请求时,使用整个对象(this.ruleForm)作为请求参数,如果服务器端处理请求的方法的参数之前没有使用@RequestBody,将接收不到客户端提交的请求参数,即:对于服务器端而言,各请求参数均是null值!2.2.2 当请求参数上添加了@RequestBody后,在Knife4j的API文档中,调试界面将不再提供各请求参数的输入框,而是需要自行组织JSON格式的请求参数进行调试!在前端技术中,可以使用qs框架可以轻松的将JavaScript对象转换为FormData格式!
2023-11-21 12:02:24
361
原创 饭后小煮---MySQL
然后订单库内,再用hash取模的策略,把不同订单划分到不同的表。比如从4张表,又扩容成8张表,那之前id=5的数据是在(5%4=1,即t_order_1),现在应该放到(5%8=5,即t_order_5),也就是说历史数据要做迁移了。比如我们可以按时间范围来划分,如不同年月的订单放到不同的表,也可以将表的主键,按照从0~1000万的划分为一个表,1000~2000万划分到另外一个表。水平分库是指,将表的数据量切分到不同的数据库服务器上,每个服务器具有相同的库和表,只是表中的数据集合不一样。
2023-11-19 15:30:17
205
原创 关于Spring Validation的见解
(3)@NotNull注解可以添加在任何类型的请求参数上,并且,,除了@NotNull以外的所有检查注解在参数为null时都会视为检查通过!例如某些请求的参数数量较少,或各参数并不相关,通常不会将参数封装到POJO类型中,当需要检查这类请求参数时,首先,需要在当前类上添加@Validated注解,然后,在需要检查的参数上添加检查注解。在程序设计中,一般必须对方法传递过来的参数进行合法性校验,如果参数不合法,那么就使用抛异常的方式,告知方法的调用者--传递的参数有问题。2.5.2 在POJO类型上的使用。
2023-11-18 16:52:18
515
1
原创 浅谈--Spring MVC的统一处理异常机制
在Spring MVC框架中,处理请求的方法都是被框架所调用的,所以,处理请求的方法抛出的异常也都会被框架捕获到,则框架会自动的使用此异常对象来调用处理异常的方法!在使用Spring MVC框架时,可以在类上添加@RestControllerAdvice注解,此类中特定的方法(例如统一处理异常的方法)将可以作用于整个项目中任何处理请求的过程中!在Spring MVC中,统一处理异常的机制具体表现为:无论是哪个处理请求的过程中出现异常,每种类型的异常只需要编写一段处理异常的代码即可!
2023-11-17 23:02:35
96
1
原创 枚举类型小谈
values() 方法:这个示例在 main() 方法中使用 TestEnum.values() 方法获取 TestEnum 枚举类中的所有枚举常量,并进行遍历输出。枚举常量:RED、GREEN 和 BLACK 是枚举类 TestEnum 的三个实例化对象,它们是唯一的、已命名的常量。2、有限的实例集合:枚举类型是一种有限的实例集合,每个实例都是该枚举类型的一个唯一的、已命名的常量。3、类型安全:枚举类型在编译时进行静态类型检查,这意味着编译器可以检测到在使用枚举常量时的类型错误。
2023-11-16 23:25:59
297
原创 Java面试题--持续更新中...
(1)在配置节点时,必须配置resultType或resultMap,其中,resultType是直接指定返回值的类型,此属性的取值为返回值类型的全限定名,而resultMap的取值为自行配置的节点的id属性的值,而自定义的是用于指导Mybatis如何封装查询结果的。(3)当抽象方法的返回值是封装的类型时,强烈推荐使用resultMap,因为可能具有一定的复用性,并且,复杂的关联查询只能使用的配置。
2023-11-16 22:08:52
51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅