- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 2022 年度回忆
2022 年度回忆1.石家庄实习2.准备秋招,然后去沈阳实习3.回学校4.来北京实习了总结今年大体且分为四条故事线1.22年上半年石家庄实习2.实习结束回家准备秋招,然后去沈阳实习3.大四上回到学校上学4.大四上课程结束后,开启北漂生活 2022年即将也要过去了,现在回忆起来真挺不容易的,大部分的时间都在外漂泊,石家庄、沈阳、北京。 在此许下23年的愿望,希望在23年,毕业的这年我能够在这家公司转正,新的一年里,自己的技术有质的飞跃、家人朋友都健健康康,老炸考上研究生。加油!北漂人!
2022-12-31 22:50:23 808 1
原创 redis缓存问题(数据库一致性,穿透,雪崩,击穿)
缓存就是数据交换的缓冲区,是储存数据的临时地方,一般读写性能较高缓存的优点降低后端负载提高读写效率,降低响应时间缓存的成本数据的一致性成本低代码维护成本运维成本缓存更新策略缓存穿透缓存雪崩缓存击穿。...
2022-08-17 10:18:23 497
原创 RabbitMQ笔记(交换机,发布确认,延时队列,死信队列,整合SpringBoot)
MQ(messagequeue),消息队列,FIFO先入先出,只不过队列中存放的消息是message而已,还是一种跨进程的通信机制,用于上下游传递消息.在互联网架构当中,MQ是一种非常常见的上下游";逻辑解耦+消息解耦"的消息通信服务.消息的发送上游只需要依赖于MQ.不用依赖于其他服务。...
2022-07-27 15:55:17 455
原创 网络中数字证书原理及应用
摘要算法就是我们常时候的散列函数,哈希函数(HashFunction),他能把任意长度的数据"压缩"成固定长度,而且第一无二的"摘要"字符串,就好像是给这段数据生成一个一个数字指纹作用保证信息完整性不可逆,只有算法,没有秘钥,只能加密,不能解密难题友好性想要破解,只能暴力枚举发散性只要对原文发生了一点点的变动,摘要也会发生剧烈变化抗碰撞性原文不同,计算后的摘要也不同常见摘要算法。...
2022-07-27 15:51:04 1703
原创 Docker安装MySQL,配置主从,读写分离
MySQL主从复制为什么要使用主从复制主从复制读写分离一般都是一起使用的,目的简单,为了提高数据库的并发。如果是单机库,读写都在一台MySQL中完成,I/O频率过高,采用多机部署,读写分离,可以提高数据库的可用性MySQL主从复制是一个异步的过程,底层是基于MySQL数据库自带的二进制日志功能,将一台或者多台MySQL数据库(即slave,从库)从另一台MySQL数据库(Master,即主库)进行日志的复制然后解析日志并应用到本身,最后实现从库数据与主库的数据保持一致。MySQL复制过程分为三
2022-04-15 12:09:49 423
原创 带你快速入门RabbitMQ(附思维导图,案例代码)
RabbitMQ1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。1.1.1.同步通讯我们之前学习的Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题:总结:同步调用的优点:时效性较强,可以立即得到结果同步调用的问题:耦合度高性能
2022-01-19 10:07:34 523
原创 初学SpringCloud02(Nacos配置管理,Feign远程调用,GateWay服务网关)
SpringCloud实用篇02文章目录SpringCloud实用篇021.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置1.2.配置热更新1.2.1.方式一1.2.2.方式二1.3.配置共享1)添加一个环境共享配置2)在user-service中读取共享配置3)运行两个UserApplication,使用不同的profile4)配置共享的优先级1.4.搭建Nacos集群2.Feign远程调用2.1.Feign替代RestTemplate1)引入
2022-01-17 13:05:47 508
原创 初学SpringCloud(认识微服务,服务拆分,远程调用,Eureka注册中心,Ribbon负载均衡,Nacos注册中心)
SpringCloud-Day01文章目录SpringCloud-Day011.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程2.3.实现远程调用案例2.3.1.案例需求:2.3.2.注册RestTemplate2.3.3.实现远程调用2.4.提供者与消费者3.Eureka注册中心3.1.Eureka的结构和作用3.2.搭
2022-01-13 14:16:33 259
原创 设计模式-行为性模式(模板方法模式,策略模式,命令模式,责任链模式,观察者模式,中介者模式,迭代器模式)
行为性模式行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,他设计算法与对象间职责的分配。行为性模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分配行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足合成复用原则,所以对象行为模式比类行为模式具有更大的灵活性。
2022-01-11 15:30:27 982
原创 谷粒学院评论模块实现-附源码,思路,解决方案
谷粒学院—课程评论功能的实现 谷粒学院---课程评论功能的实现一..创建课程评论表2.分页查询课程评论一:使用element-ui提供封装好的插件,我们只需要将总记录数和当前页的记录传入即到Map中。1.后端接口2.前端页面3.api调用接口4.页面中的methods5.将返回数据data使用v-for遍历即可二:使用较为底层的方法进行实现,此时我们需要将当前页,总记录数,一页记录数,总页数,上否有上一页,是否有下一页传入,最后将信息放入到Map中1.接口2.分页条3.添加课程评论3.1.使用远程调用1.
2022-01-01 16:26:47 2972 3
原创 SpringCloud接口调用过程(Nacos,Feign,Hysrtix)
Spring Cloud接口调用过程1.Nacos服务注册1.在接口调用中,通常分为生产者和消费者,生产者提供接口,消费者进行调用,同时我们需要将生产者和消费者在Nacos中进行注册。Nacos是以服务为主服务对象的中间件,Nacos支持所有主流的服务发现,配置和管理2.添加服务配置信息#nacos服务地址spring.cloud.nacos.discovery.server-addr=127.0.0.1:88483.添加Nacos客户端注解在客户端微服务启动类中添加注解@Enabl
2021-12-21 11:02:52 825
原创 解决SpringBoot频繁启动,开发效率低(彻底搞懂真正实现热部署)
SpringBoot热部署,解决SpringBoot频繁启动,开发效率低1.引入热部署插件<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>增加完成热部署后,我们需要可以使用ctrl+f9,启动项目,达到热部署那么ctrl+
2021-12-14 20:33:54 1305
原创 设计模式之外观模式
5.5 外观模式5.5.1 概述有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的收益归持有者所有,管理机构收取一定比例的托管管理费用。定义: 有名门面模式,是一种通过多个复杂子系统提供的一个一致的接口,而使这个子系统更容易被访问的模式,该模式对外有一个同一的接
2021-12-01 22:20:36 114
原创 结构型模式之适配器模式(类适配器,对象适配器,接口适配器)
5.2适配器模式5.2.1 概述如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面供我们充电,这样使得我们的插头在当地能使用。生活中这样的例子很多,手机充电器(将220v转换为5v的电压),读卡器等,其实就是使用到了适配器模式。定义: 将一个类的接口转换为客户希望的另外一个接口,使得原本的杰阔不兼容而不能一起工作的那些类能一起工作。 适配器模式
2021-11-29 18:31:43 403
原创 结构型模式之代理模式(静态代理,动态代理[原理],CGLIB代理)
5.结构型模式结构型模式描述如何将列或对象按照某种布局组成更大的结构,他分为类结构模式和对象结构模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所有对象结构型模式比类结构模式具有更大的灵活性。结构型模式分为以下7种代理模式适配器模式装饰者模式桥接模式组合模式享元模式5.1代理模式5.1.1概述由于某些圆心需要给某对象提供一个代理来控制对该对象的访问,此时,访问对象不适合或不能直接引用目标对象,代理
2021-11-28 22:19:49 519
原创 创建者模式之建造者模式
4.建造者模式4.1概述将一个复杂对象的构建和表示分离,使同样的构造工程可以创建不同的表示分离了部件的构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象,这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦,不同的构建器,相同的装配,也可以做出不同的对象,相同的构建器,不同的装配顺序也可以做出不同的对象,也就是实现了构造算法,装配算法的解耦,实现了更好的复用。建造者模式可以将不见和其组装过程分开,一步一步创建一个复杂的蚃,用户只需要指定
2021-11-28 22:11:03 200
原创 创建者模式之原型模式
原型模式浅克隆概述用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象结构原型模式包含如下角色抽象原型类:规定了具体原型对象必须实现的clone()方法具体原型类:实现了抽象原型类的clone方法,他是可被复制的对象访问类:使用具体原型列红的clone()方法来复制新的对象接口类图如下所示实现原型模式的克隆分为浅克隆和深克隆浅克隆:创建一个新的对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址
2021-11-27 21:05:32 106
原创 创建者模式之工厂方法,抽象工厂模式
工厂模式概述需求:设计一个咖啡店点餐系统设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体的类设计如下:此设计中CoffeeStore和Coffee耦合,此时我们如果再增加一种咖啡,会修改CoffeeStore类中的方法,不符合开闭原则在Java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合,假如我们
2021-11-24 09:42:40 214
原创 MyBatis期末复习(SIT)
MyBatis期末复习1.环境配置1.导入jar包2.在类路径下创建包结构3.编写db.properties和mybatis-config配置文件2.单表的增删改查和动态SQL1.数据库表结构2.实体类,在pojo下编写(也可称为bean,domain等)编写必要的getter,setter,constructor(无参,全参),toString方法3.编写Mapper接口public interface UserMapper { List<User> f
2021-11-23 21:14:15 1171 1
原创 创建者模式之单例设计模式
1.创建者模式创建者模式的主要关注点是“怎样创建对象”,他的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对对象创建的细节。创建型模式分为:单例模式工厂方法模式抽象工程模式原型模式建造者模式1.1单例设计模式单例模式(singleton pattern)是java中最简单的设计模式之一,这种类型的实际模式属于创建者模式,他提供了一种访问对象的最佳方式。这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保单个对象被创建,这个类提供了一种访
2021-11-21 17:36:39 222
原创 解决IDEA,Tomcat所有关于乱码的问题
最近在搭建个人博客项目时,引入到layui的弹出层时,发现中文参数乱码,看了好多文章博客,历经一天的折磨终于成功解决。标题一一:解决请求参数乱码找到tomcat的安装目录,编辑conf/server.xml文件,找到以下内容<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />在其后追加URIEncoding=“U...
2021-11-03 09:31:16 467
原创 Linux学习笔记(尚硅谷韩顺平老师2021最新Linux教程)万字笔记
Linux再学习1.Linux理论篇1.网络连接的三种方式1.桥接模式2.NAT模式网络地址转换,虚拟系统可以和外部系统通讯,不会造成ip冲突3.主机模式和主机ip地址一样2.虚拟机快照当系统出现问题后,可以通过快照来解决3.虚拟机移除和迁移迁移:找到对应的盘,进行剪切删除:在VMware中删除,到目录下进行彻底删除4.安装vmtools1.安装vmtools后,我们可以在windowds下更好的管理vm虚拟机2.我们可以设置windows和centos的共享文件夹
2021-10-27 14:27:05 5379 4
原创 多线程学习笔记
多线程1.Process与Thread说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的依次执行过程,它是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能
2021-10-20 10:51:34 197
原创 SpringBoot基础入门
SpringBootNote环境要求环境要求 java8及以上 java-v maven 3.3以上 mvn-v 学习资料 文档地址 SpringBoot2核心技术与响应式编程 · 语雀 视频在B站 雷丰阳2021 SpringBoot2 源码地址 SpringBoot2核心技术与响应式编程: SpringBoot2核心技术与响应式编程 SpringBoot2核心技术-基础入门01、Spring与SpringBoot1.1、Spring的能...
2021-10-17 21:47:48 330
原创 Spring学习笔记
1.spring的学习1.1、简介 spring 春天 ---->给软件行业带来了春天 spring的框架是由于软件开发的复杂性创建的 简化服务器的开发 简单 可测试 松耦合 Rod Johnson Spring Framework创始人,著名作者。 Rod在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。 有着相当丰富的C/C++技术背景的Rod早在1996年就开始了对Java服务器端技术的研究
2021-10-17 21:38:33 1112
原创 MyBatis—Plus学习笔记
MyBatis—Plus学习笔记1.MyBatis—Plus介绍MyBatis—Plus 简称 MP,是一个Mybatis的增强工具,在原来Mybatis的基础上只做增加不做改变,为简化开发,提高效率而生愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。特性: 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作...
2021-10-17 21:29:05 167
原创 ● 接口和抽象类的区别是什么?
abstract class 和interface1.成员的区别 抽象类: 构造方法:有构造方法,用于子类实例化时使用 成员变量:可以是变量也可以是常量 成员方法:可以是抽象的 也可以是非抽象的 接口 构造方法:无构造方法 成员变量:只能是常量 public static final ...
2021-10-11 18:09:50 65
原创 ● 请你讲讲什么是泛型?
泛型,即是参数化类型,一提到参数,最熟悉的就是定义方法适有形参,然后调用此方法时候传递实参。那么参数化类型是怎么理解的呢?顾名思义,就是将类型原来的具体类型参数化,类似于方法中的变量参数,此时类型也定义参数形式(可以称之未类型形参),然后在使用/调用时候传入具体类型(类型参数)。public class GenericTest { public static void main(String[] args) { /* List list =
2021-10-11 17:47:47 109
原创 ● 请说明面向对象的特征有哪些方面
1.抽象抽象就是忽略一个主题中与当前目标无关的访民啊,以便充分地注意与当前目标有关的方面抽象并不打算了解全部问题,而是只了解其中一部分。抽象包括两个方面,一个是过程抽象,二是数据抽象2.继承继承是一种联接类的层次模型,并且允许和鼓励类的重用,他提供了一种明确表述和共性的方法,对象的新类可以从现有的类派生,这个过程称为类的继承,新类继承了原始类的派生子类,而原始列成未新类的父类。派生列可以从基类中继承和实例变量,并且新类可以增加或者修改新的方法使之适合特殊的需要。3.封装封装就是把数据包围
2021-10-11 17:38:17 78
原创 ●==和equals()区别,字符串创建的方式
== 是运算符,如果是基本数据类型,比较的是存储的值,如果是引用数据类型,则比较的是引用对象的地址值 equals是Object的方法,Object是所有类的父类,重写之后比较的是比较的值 public static void main(String[] args) { //基本数据类型的比较 int num1 = 10; int num2 = 10; System.out.println(num1 == num2); ..
2021-10-08 11:39:20 64
原创 ●请你解释为什么会出现4.0-3.6=0.40000001这种现象?
原因简单来说是这样:2进制的小数无法精确的表达10进制小数,计算机在计算10进制小数的过程中要先转换为2进制进行计算,这个过程中出现了误差。浮点数值采用二进制系统表示,在二进制中无法精准的表示分数1/10这好像在十进制中无法精准得表示分数1/3如果想要在数值计算中不允许出现误差,应使用BigDecimal类为什么二进制无法精准表示1/10其实跟数位表示法有关,比如十进制的情况下:final 修饰的实列变量,必须手动赋值 final 修饰的变量 智能赋一次值 fina.
2021-10-08 11:32:28 2154
原创 ● 请你讲讲Java里面的final关键字是怎么用的?
final表示最终的,不可变的final可以修饰变量以及方法,还有类等。1.当final修饰类时,表示这个类不能被继承。 常见的八大包装类,Sanner类,字符串类(String,StringBuffer,StringBuilder),系统类(Math)2.final 修饰的方法,无法被重写3.final 修饰的局部变量 无法进行二次修改4.final修饰的实例变量(必须手动赋值)5.常量总结 final 修饰的实列变量,必须手动赋值..
2021-10-08 11:30:44 157 1
原创 ● JDK JRE JVM三者的区别
JDK:Java Develpment Kit java开发工具JRE :Java RunTime Envirment java运行环境JVM :Java Virtual Machine java运行虚拟机我们所下载的JDK中包含一个JRE的文件夹其中lib目录是JVM环境,JRE下的lib只是运行java程序的jar包,是为JVM运行时候用的。包括所有的标准类库,和扩展类。java跨平台的原因:在不同版本的操作系统中有不同的JVM版本相同的.class 在不同系统可以运行..
2021-10-07 19:22:59 5878
原创 请你说明String 和StringBuffer的区别
● 请你说明String 和StringBuffer的区别String 提供了设置不可改变的字符串StringBuffer类,StringBuilder 支持字符串进行修改String类 String字符串常量String值的修改每次都会导致开辟新的内存空间 效率低,内存消耗大String执行慢的原因String str = "abc";System.out.println(str)String str = str + "de"System.out.pr...
2021-10-07 19:19:50 166
原创 ● int和Integer有什么区别?
● int和Integer有什么区别?java为了编程方便引入了基本数据类型,java为了能将基本类型当做对象操作,java给8个基本数据类型都引入了包装类,int的包装类型就是Integer,自jdk5之后提供了自动拆箱,装箱操作,使两者之间可以相互转换。八大基本数据类型byte(1) ,short2(), char(2), int(4), long(8), boolean(2), double(8), float(4),Byte Short Character Integer Long
2021-10-07 19:16:34 82 1
原创 Git学习笔记
Git1.核心:版本控制2.什么是版本控制版本控制(Revision control)是一种在开发过程中用于管理我们对文件、目录、或工程等内容的修改历史,方便查看更改历史记录,备份以便回复以前的版本的软件工程技术 实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率 跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,同时降低人为错误 简单来说就是用
2021-10-07 19:13:55 84
原创 Java代码实现贪吃蛇小游戏开发
源码和图片资源放到文章最后废话不多说,,直接上图演示,直接上源码:游戏开始面板package com.heng.snake;import javax.swing.*;import java.awt.*;/** * @author xingluheng * @date 2021/8/9 9:02) */public class StartGames { public static void main(String[] args)...
2021-09-02 11:09:05 92
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人