自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 SpringCloudGateway网关实战(三)

SpringCloudGateway网关实战(三)

2023-09-12 22:40:25 544

原创 SpringCloudGateway网关实战(二)

内置过滤器

2023-09-10 18:44:31 285

原创 SpringCloudGateway网关实战(一)

springcloudgateway网关实战

2023-08-21 23:31:22 820 2

原创 Oracle中使用Order By排序时顺序问题

记录一下工作中遇到的问题,虽然说用Oracle的人比较少,但是遇到问题了还是得记录下~问题在SQL语句查询中,我们常常要根据某个字段排序来进行查询。如果是MySQL之类的数据库,简单的写一条分页查询语句:select * from table ORDER BY LIST_ORDER按照上面的语句,我们就能从table这个表中取出数据并且按照LIST_ORDER字段升序排序(默认升序)。如果我们再加上分页操作,我们就可以根据根据页数和大小来控制返回的数据量了:SELECT * FROM (SEL

2021-11-21 11:30:52 1349

原创 简单的Service实例

简单的Service实例实体类@Datapublic class OmsOrder implements Serializable { @ApiModelProperty(value = "订单id") private Long id; private Long memberId; private Long couponId; @ApiModelProperty(value = "订单编号") private String orderSn;

2021-09-22 23:17:05 191

原创 MyBatis-Plus代码生成器

MyBatis-Plus代码生成器package com.example.demo;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.Dat

2021-09-22 22:18:47 148

原创 排序算法(未完工)

排序算法冒泡public class bubble { public void bubbleSort (int[] arr) { if (arr.length < 2) { return; } // 外层循环代表循环 (冒泡) 次数 // 每完成一次冒泡就会有一个最小的数浮到数列顶端 for (int i = 0; i < arr.length - 1; i++) {

2021-09-08 12:04:43 77

原创 JVM系列——Java内存区域

JVM系列——Java内存区域对JVM学习而言,Java内存区域的学习可谓是入门的第一步,如何快速准确的了解到相关知识,构建起一个知识框架,是一个十分重要的问题。接下来,将会以提问的方式来带领大家逐步了解Java内存区域。另外,本文基于JDK1.8进行讲解。——————————————————————分 隔 线——————————————————————————1、运行时数据区是什么?里面有什么内容?虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干不同的数据区,这些区域有各自的用途

2021-09-06 16:57:56 102

原创 SpringBoot启动流程

SpringBoot启动流程本文基于SpringBoot2.1.4书写。从哪里入手?如果你有这样的疑问,说明你对SpringBoot的了解确实不够。既然是研究SpringBoot的启动流程,我们当然得要从SpringBoot的启动类入手啊!就是标注着@SpringBootApplication注解并且有着main()方法的类:@SpringBootApplicationpublic class OrderApplication { public static void main(Strin

2021-08-22 12:06:27 99

原创 SpringBoot自动配置原理

SpringBoot自动配置原理什么是自动配置?在学习SSM开发项目时,我们需要自己引入spring、springMVC以及mybatis的依赖,并且需要使用配置文件或者java config来进行配置,比如配置视图解析器等等组件。但springboot 为我们提供了一种便利的开发方式:自动配置,我们只需要引入特定的starter即可,其它需要的组件springboot会自动帮我们加入到容器中,这就是自动配置。SpringBoot是怎么实现自动配置的?本文基于SpringBoot2.1.4书写。查

2021-08-21 16:45:25 140

原创 分布式事务——Seata 2PC

分布式事务——Seata 2PCSeata介绍2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。Fescar 开源后,蚂蚁金服加入 Fescar 社区参与共建,并在 Fescar 0.4.0 版本中贡献了 TCC 模式。为了打造更中立、更开放、生态

2021-08-19 16:28:38 312

原创 分布式事务

分布式事务事务?严格意义上的事务执行需要遵循ACID原则(尽管也是很难完全遵循,不然为什么会有四种隔离级别呢?)原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行。一致性(Consistency),可以理解为数据是满足完整性约束的,也就是不会存在中间状态的数据,比如你账上有400,我账上有100,你给我打200块,此时你账上的钱应该是200,我账上的钱应该是300,不会存在我账上钱加了,你账上钱没扣的中间状态。隔离性(Isolation),指的是多个事务并发执行

2021-08-17 23:35:06 149

原创 JVM双亲委派模型

JVM双亲委派模型什么是类加载器?在谈到双亲委派模型之前,必须要先说明什么是类加载器。对类加载器有个基本认识之后,才能对双亲委派模型有一个更加深入的了解。加载指的是将类的class文件读入到内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。两个类相等,需要类本身相等,并且使用同一个类加载器进行加载。这是因为每一个类加载器都拥有一个独立的类名称空间。类加载器有三个类别:**启动类加载器(Bootstra

2021-08-14 12:05:23 84

原创 Spring循环依赖

Spring循环依赖什么是Spring循环依赖?这个很好理解,就是多个bean之间相互依赖,形成了一个闭环。比如:A依赖于B、B依赖于C、C依赖于A。代码中表示:public class A{ B b;}public class B{ C c;}public class C{ A a;}如何解决循环依赖?Spring为了解决这个问题,引入了一个三级缓存。这里我们假设一个场景进行讲解:ServiceA、ServiceB相互依赖。Spring容器依次创建

2021-08-14 11:42:44 1183 1

原创 简单的用栈实现队列

简单的用栈实现队列队列是一种先进先出的数据结构,栈是一种先进后出的数据结构,形象一点就是这样:在面试中常常会问到这样一个问题:怎么使用栈来实现一个队列?如何用队列来实现一个栈?前者问的较多,后者问的较少,但掌握得多也不是坏事嘛,接下来我们就来解析下这两个问题。用栈实现队列首先,队列的 API 如下:class MyQueue { /** 添加元素到队尾 */ public void push(int x); /** 删除队头的元素并返回 */ public

2021-08-11 22:01:43 291

原创 LRU和LFU算法

LRU和LFU算法LRU算法LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。LRU 缓存算法的核心数据结构就是哈希链表LinkedHashMap,双向链表和哈希表的结合体。使用该数据结构,就可以确保get 和 put 方法都是 O(1) 的时间复杂度。、力扣第 146 题「LRU缓存机制」就是让你设计数据结构。在使用LinkedHashMap实现LRU算法前,我们先手

2021-08-11 19:48:46 322

原创 HashMap攻略要点

HashMap攻略要点本文以JDK1.8为基础,JDK1.7仅做简略提及。HashMap的底层结构和原理?JDK 1.7 中 HashMap 的底层数据结构是数组 + 链表,使用 Entry 类存储 Key 和 Value;JDK 1.8 中 HashMap 的底层数据结构是数组 + 链表/红黑树,使用 Node 类存储 Key 和 Value。如何解决哈希冲突?因为哈希冲突是不可避免的,很有可能两个元素计算得出的 index 是相同的,那么如何解决哈希冲突呢?拉链法。也就是把 hash 后值相

2021-08-11 00:02:45 269

原创 商城接入微信支付

商城接入微信支付微信支付产品如上图所示,接入微信支付的方法有很多,我们可以按需接入。本次我们选择Native支付进行开发,也就是最常见的购物车下单后,商家给出一个二维码,用户微信扫码付款的流程。微信支付业务流程Native支付方法开发指引:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5&index=3本次研究Native支付方法,其他方法大同小异。下图是微信支付官方给出来的微信支付业务流程:业务流程说明:(

2021-08-10 15:56:52 775

原创 Elasticsearch安装

Elasticsearch 安装docker镜像下载docker pull elasticsearch:5.6.8安装es容器docker run -di --name=elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8开启远程连接docker exec -it elasticsearch /bin/bash由于docker容器里面没有vi命令,所以需要先安装vimapt-get updateapt-get inst

2021-08-09 23:04:21 179

原创 HTML简要解析

HTML基础标签HTML 标题标题(Heading)是通过 <h1> - <h6> 等标签进行定义的。<h1>This is a heading</h1><h2>This is a heading</h2><h3>This is a heading</h3>HTML 水平线<hr />标签在 HTML 页面中创建水平线。hr 元素可用于分隔内容。<p>This is

2021-05-28 21:35:07 369 6

原创 Servlet详细解析

首先先说一下为什么要学Servlet。起因是在学习Spring MVC的时候,了解到Servlet是其核心,对其原理不了解将会对学习Spring MVC造成障碍,因此决定书写这篇文章用来学习。1、什么是ServletServlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类

2021-05-22 13:35:33 570 1

原创 Spring——IoC容器

1. IoC原理IoC全称Inversion of Control,直译为控制反转。为什么要使用IoC?我们假定一个在线书店,通过BookService获取书籍:public class BookService { private HikariConfig config = new HikariConfig(); private DataSource dataSource = new HikariDataSource(config); public Book getBook

2021-05-05 00:30:03 230 1

原创 MySQL常见问题

1.并发事务带来哪些问题?在典型的应用程序中,多个事务并发运行,经常会操作相同的数据来完成各自的任务(多个用户对同一数据进行操作)。并发虽然是必须的,但可能会导致以下的问题。脏读(Dirty read): 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。丢失修改(Lost to modify): 指在一个

2021-05-03 15:51:55 143 2

原创 MySQL操作命令

数据库、表操作/* 数据库操作 */ -------------------- 创建库 CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name -- utf8 COLLATE collation_name -- utf8_general_ci -- 查看已有库 SHOW DATABASES[ LIKE 'PATTERN']

2021-05-03 15:48:30 63

原创 Java中IO流使用

1. 常用文件操作创建文件public void create01(){ //1.根据路径构建一个File对象(最常用) String filePath = "d:\\news1.txt"; File file = new File(filePath); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); }}publi

2021-05-03 15:46:15 85 1

原创 Java手动装箱和自动装箱解析

1. 装箱拆箱的基本介绍Java中本身具有八种基本数据类型,他们分别是:基本数据类型包装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble上面的表格我们可以注意到,八种基本数据类型对应都有自己的包装类。那么,什么是包装类呢?由于基本数据类型本身并不是一个类,执行一些常用操作的时候往往需要编写方法完成

2021-04-17 21:03:35 665

原创 HashSet扩容机制讲解

1. HashSet当我们 new 一个 HashSet 的时候,查看其源码,会发现一件很有意思的事情:HashSet 的底层竟然是 HashMap !private transient HashMap<E,Object> map;public HashSet() { map = new HashMap<>();//new 一个 HashMap对象}public HashSet(int initialCapacity) { map = new Hash

2021-04-12 00:17:30 2247 3

原创 List接口实现子类的扩容机制讲解

本文选取 List 接口实现子类中最常用的三个类 ArrayList、Vector 和 LinkedList 进行讲解1. ArrayList1.1 扩容机制ArrayList 中维护了一个Object类型的数组 elementData,该数组用于存放数据transient Object[] elementData;当 ArrayList 创建对象时,如果使用的是无参构造器,则初始 elementData 容量为0。第一次添加元素到数组中,则扩容 elementData为10。如果需要再

2021-04-11 14:35:04 174

原创 Java中的抽象类和抽象方法

1. 基础介绍当父类的一些方法不能确定时,可以用 abstract 关键字来修饰该方法,这个方法就是抽象方法。用 abstract 来修饰该类就是抽象类,抽象类的作用是设计者设计好后,让子类继承并实现抽象类。抽象类,是考官比较爱问的知识点,在框架和设计模式使用较多。2. 抽象类使用细节抽象类不能被实例化;抽象类中不一定包含 abstract 方法,也就是说,抽象类可以没有 abstract 方法;如果一个类中包含 abstract 方法,则该类必须声明为抽象类;abstract

2021-04-04 23:43:29 323 1

原创 Java中的关键字static和final

1. static 关键字1.1 类变量类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它的时候,取到的都是相同的值;同样,任何一个该类的对象去修改它的时候,修改的也是同一个变量。简单来说,就是共享变量。class A{ public static int num = 10;// 类变量/静态变量/静态属性}类变量的一些特性:类变量可以通过 类名.类变量名(推荐) 或者 对象名.类变量名 来访问;类变量是该类的所有对象共享的,而实例变量(非类变量

2021-04-04 17:06:27 181

原创 Java四种内部类详解

1. 内部类基本介绍一个类的内部又完整地嵌套了另一个类结构,我们称这个被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类作为类的第五大成员(五大成员为:属性、方法、构造器、代码块、内部类),内部类的最大特点是可以直接访问外部类的私有属性,并且可以体现类与类之间的包含关系。2. 内部类的分类如果定义类在局部位置(方法中/代码块):(1)局部内部类(2)匿名内部类定义在成员位置:(1)成员内部类(2)静态内部类下面我们根据内部类定义位置进行详细介

2021-03-30 22:07:05 133

原创 Linux定时任务调度

1.crond任务调度1.1 命令使用crontab [-u username]    # 省略用户表表示操作当前用户的crontab -e (编辑crontab定时任务) -l (查询crontab任务) -r (删除当前用户所有的crontab任务)service crond restart (重启任务调度)1.2 参数细节说明5个占位符的说明(分、时、日、月、周五种)项目含义范围第一个 “*”一小时当中的第几

2021-03-30 15:38:26 182 1

原创 Java接口一文解析

Java接口1.接口介绍接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口有助于我们统一规范。在接口中指定统一的方法名和属性名,让类实现方法,能规范化代码,减少不统一的方法头带来的损耗。public interface UsbInterface {//接口,用于指定规范 //规定接口的相关方法 public void start(); public

2021-03-30 14:01:52 119

原创 Java中==和equals的区别

1.比较运算符==(1)== 既可以判断基本类型,也可以判断引用类型(2)判断基本类型如果 == 两边都是基本类型时,则判断两个基本类型的值是否相等。基本类型包括byte,short,int,long,float,double,char以及booleanpublic class equals_ { public static void main(String[] args) { double n1 = 10.0; double n2 = 20.0;

2021-03-28 00:08:54 63 1

原创 CSDN博客调整图片大小

1.前言在编写博客上传图片的时候,由于不清楚如何在CSDN博客中缩放图片,常常要百度查询缩放的方法,但是百度出来的内容往往介绍不清晰,故自己动手整合内容,方便日后使用。2.图片对齐方式(左中右)上面的图片是CSDN博客上传图片时默认选择的居中放置。除了在一开始选择图片左对齐或者居中放置又或者右对齐外,还可以在上传图片之后重新调整位置。在上传了图片之后,图片下方会出现一系列关于图片的参数。图中红框所框的内容即为居中放置。想要将图片更改为左对齐或者右对齐,则将红框部分更改为#pic_left

2021-03-26 00:39:30 697

原创 计算机基础——进制转换(基本功)

1.前言进制转换是计算机基础中十分基础的一环。学好进制转换对我们操作位运算符,熟悉编程背后的内存地址有着重要作用。下面我们分成几个部分分层次介绍进制转换,由易到难,让读者更能体会到进制转换背后的原理。2.进制介绍在计算机中,为了区别不同进制,通常用前缀和后缀来区分数值的进制。进制英文范围前缀后缀二进制Binary0-10B(或0b)B八进制Octal0-70O(或0)O十进制Decimal0-9无D十六进制Hexadecimal

2021-03-26 00:04:58 2011

原创 多态的应用实际举例

多态的应用1.多态数组:数组的定义类型为父类类型,里面保存的实际元素类型为子类类型2.多态参数:方法定义的形参类型为父类类型,实参允许为子类类型public class Homework13 { public static void main(String[] args) { Student student = new Student("小明", '男', 15, "00023102"); student.printInfo(); System

2021-03-25 14:48:07 974

原创 Java多态详细解析

1.多态基本介绍首先我们要搞清楚几个基本问题,什么是多态?多态是用来干什么的?多态现实意义是什么?(1)什么是多态?同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。(2)多态是用来干什么的?封装、继承、多态是面向对象编程的三大特性。我们知道,封装可以隐藏实现细节,使得代码可以模块化;继承可以扩展已经编写好的代码类。他们的主要目的都是为了——代码重用。而多态除了解决代码复用性问题之外,还可以解决项目中紧耦合的问题(模块之间关系太紧密,存在相互调用。),提高程序的可扩展性

2021-03-22 23:47:34 191

原创 Java访问控制修饰符

1.基本介绍Java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):公开级别:用public修饰,对外公开受保护级别:用protected修饰,对子类和同一个包中的类公开默认级别:没有修饰符号,向同一个包的类公开私有级别:用private修饰,只有类本身可以访问,不对外公开2. 四种访问控制修饰符的访问范围访问级别访问控制修饰符同类同包子类不同包公开public√√√√受保护protected√√√×默

2021-03-22 00:35:24 696

原创 八皇后(Java实现)

1.问题介绍八皇后问题是一个古老而著名的问题,是回溯算法和递归调用的典型案例。八皇后难题是要将八个皇后(Queen)放在棋盘上,任何两个皇后都不能互相攻击(即没有任意两个皇后是在同一行、同一列或者同一条对角线上),问一共有多少种摆法。2.思路分析第一个皇后先放在第一行第一列第二个皇后放在第二行第一列,然后判断能否在该位置放皇后,如果不可以,则继续放下一列,直至找到一个合适的位置继续放置第三个皇后,还是第一列、第二列…直到第8个皇后也能放在一个不能相互攻击的位置,就找到了一个正确解。当得到一个正

2021-03-17 11:29:16 2570

空空如也

空空如也

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

TA关注的人

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