自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 资源 (2)
  • 收藏
  • 关注

原创 java 根据表生成相应的实体类

【代码】java 根据表生成相应的实体类。

2023-08-24 14:13:52 848

原创 java之学习记录 11 - 1 - 桶排序

各个排序比对表: 排序算法 时间复杂度 空间复杂度 是否稳定 冒泡排序 O(n²) O(1) 稳定 快速排序 O(nlogn) O(logn) 不稳定 堆排序 O(nlogn) O(1) 不稳定

2021-04-15 14:09:20 158

原创 java之学习记录 11 - 1 - 计数排序

计数排序 计数排序,这种排序算法是利用数组下标来确定元素的正确位置的。 假设数组中有10个整数,取值范围为0~10,要求用最快的速度把这10个整数从小到大进行排序。 可以根据这有限的范围,建立一个长度为11的数组。数组下标从0到10,元素初始值全为0 假设数组数据为:9,1,2,7,8,1,3,6,5,3 下面就开始遍历这个无序的随机数列,每一个整数按照其值对号入座,同时,对应数组下标的元素进行加1操作 例如第1个整数是9,那么数组下标为9的元素加1 ...

2021-04-15 13:05:39 149

原创 java之学习记录 11 - 1 - 堆排序

堆排序 堆排序:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。 堆是具有以下性质的完全二叉树 大顶堆:每个结点的值都大于或等于其左右孩子结点的值 小顶堆:每个结点的值都小于或等于其左右孩子结点的值 我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中: 该数组从逻辑上讲就是一个堆结构,用简单的公式来描述一下堆的定义就是: 大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr..

2021-04-15 12:59:51 157

原创 java之学习记录 11 - 1 - 快速排序

根据时间复杂度的不同,主流的排序算法可以分为 3 大类时间复杂度为O( n²)的排序算法 冒泡排序、选择排序、插入排序、希尔排序 时间复杂度为O(nlogn)的排序算法 快速排序 、归并排序、堆排序 时间复杂度为线性的排序算法 计数排序、桶排序、基数排序 根据其稳定性,可以分为稳定排序和不稳定排序稳定排序:值相同的元素在排序后仍然保持着排序前的顺序 不稳定排序:值相同的元素在排序后打乱了排序前的顺序快速排序 同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交

2021-04-15 12:50:08 82

原创 java之学习记录 11 - 1 - 冒泡排序

根据时间复杂度的不同,主流的排序算法可以分为3大类 时间复杂度为O( n²)的排序算法 冒泡排序、选择排序、插入排序、希尔排序 时间复杂度为O(nlogn)的排序算法 快速排序 、归并排序、堆排序 时间复杂度为线性的排序算法 计数排序、桶排序、基数排序 根据其稳定性,可以分为稳定排序和不稳定排序 稳定排序:值相同的元素在排序后仍然保持着排序前的顺序 不稳定排序:值相同的元素在排序后打乱了排序前的顺序冒泡排序冒泡排序是最基础的排序算法 冒泡..

2021-04-15 10:28:19 68

原创 java之学习记录 11 - 1 - 数据结构与算法高级(红黑树)

红黑树 平衡二叉查找树 这种二叉查找树就退化成了链表,由于树的深度变得多了,查找的效率也会大幅下降 所以需要对这种二叉树进行自平衡,红黑树就是一种自平衡的二叉查找树。 红黑树(Red Black Tree) 除了二叉查找树(BST)的特征外,还有以下特征: 每个节点要么是黑色,要么是红色 根节点是黑色 每个叶子节点都是黑色的空结点(NIL结点)(为了简单期间,一般会省略该节点) 如果一个节点是红色的,则它的子节点必须是黑色的(父子不能同为红) 从任一结..

2021-04-14 18:35:36 74

原创 java之学习记录 11 - 1 - 数据结构与算法高级(树的概念,二叉树)

树的概念 有很多数据的逻辑关系并不是线性关系,在实际场景中,常常存在着一对多,甚至是多对多的情况。 家谱: 组织结构:书的目录:以上的数据结构,均称为树 在数据结构中,树的定义如下: 树(tree)是n(n≥0)个节点的有限集。 当n=0时,称为空树。在任意一个非空树中,有如下特点。 有且仅有一个特定的称为根的节点。 当n>1时,其余节点可分为m(m>0)个互不相交的有限集 每一个集合本身又是一个树,并称...

2021-04-14 13:53:21 107

原创 java之学习记录 11 - 1 - 数据结构与算法基础(二分查找)

二分查找 概念 二分查找(Binary Search)算法,也叫折半查找算法 当我们要从一个序列中查找一个元素的时候,二分查找是一种非常快速的查找算法 二分查找是针对有序数据集合的查找算法,如果是无序数据集合就遍历查找本质二分查找之所以快速,是因为它在匹配不成功的时候,每次都能排除剩余元素中一半的元素。因此可能包含目标元素的有效范围就收缩得很快,而不像顺序查找那样,每次仅能排除一个元素。 小例子 一个有序的数组中查找某个数字是否存在 ...

2021-04-13 19:00:43 104

原创 java之学习记录 11 - 1 - 数据结构与算法基础(递归)

递归 概念 递归,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。也就是说,递归算法是一种直接或者间接调用自身函数或者方法的算法。本质 递归,去的过程叫"递",回来的过程叫”归“ 递是调用,归是结束后回来 是一种循环,而且在循环中执行的就是调用自己 递归调用将每次返回的结果存在栈帧中 递归三要素 递归结束条件 既然是循环就必须要有结束,不结束就会OOM了 函数的功能 这个函数要干什么,打印,计算.... ...

2021-04-13 18:05:09 66

原创 java之学习记录 11 - 1 - 数据结构与算法基础(散列表)

散列表 概念 散列表也叫作哈希表(hash table),这种数据结构提供了键(Key)和值(Value)的映射关系。只要给出一个Key,就可以高效查找到它所匹配的Value,时间复杂度接近于O(1)。 存储原理 哈希函数 散列表在本质上也是一个数组 散列表的Key则是以字符串类型为主的 通过hash函数把Key和数组下标进行转换 作用是把任意长度的输入通过散列算法转换成固定类型、固定长度的散列值 以Java为例: //数组下标=...

2021-04-13 15:12:43 144

原创 java之学习记录 11 - 1 - 数据结构与算法基础(线性表 -> 队列)

线性表线性表(Linear List)就是数据排成像一条线一样的结构,数据只有前后两个方向4 队列 概念 队列(queue)是一种线性数据结构,队列中的元素只能先入先出(First In First Out,简称 FIFO)。队列的出口端叫作队头(front),队列的入口端叫作队尾(rear)。存储原理 队列这种数据结构既可以用数组来实现,也可以用链表来实现数组实现用数组实现时,为了入队操作的方便,把队尾位置规定为最后入队元素的下一个位置用数组实现的队列..

2021-04-13 11:02:14 81

原创 java之学习记录 11 - 1 - 数据结构与算法基础(线性表 -> 栈)

线性表线性表(Linear List)就是数据排成像一条线一样的结构,数据只有前后两个方向3 栈 栈和队列都属于线性数据的逻辑存储结构概念 栈(stack)是一种线性数据结构,栈中的元素只能先入后出(First In Last Out,简称FILO)。最早进入的元素存放的位置叫作栈底(bottom),最后进入的元素存放的位置叫作栈顶 (top)。存储原理 栈既可以用数组来实现,也可以用链表来实现栈的数组实现如下:数组实现的栈也叫顺序栈或静态栈栈..

2021-04-13 10:52:21 70

原创 java之学习记录 11 - 1 - 数据结构与算法基础(线性表 -> 链表)

线性表线性表(Linear List)就是数据排成像一条线一样的结构,数据只有前后两个方向2 链表 概念 链表(linked list)是一种在物理上非连续、非顺序的数据结构,由若干节点(node)所组成。链表中数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。(百度百科)常见的链表包括:单链表、双向链表、循环链表..

2021-04-13 10:37:44 105

原创 java之学习记录 11 - 1 - 数据结构与算法基础(线性表 -> 数组)

线性表 线性表(Linear List)就是数据排成像一条线一样的结构,数据只有前后两个方向 1 数组 概念 数组(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量被称为元素。数组是最为简单、最为常用的数据结构。数组下标从零开始(Why)存储原理数组用一组连续的内存空间来存储一组具有相同类型的数据(模拟内存存储) 灰色格子:被使用的内存 橙色格子:空闲的内存 红色格子:数组占用的内存 ...

2021-04-13 10:06:12 107 1

原创 java之学习记录 11 - 1 - 数据结构与算法概述

一:数据结构的概念 1 什么是数据结构 数据结构(data structure)是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。(百度百科) 一句话解释:存数据的,而且是在内存中存! 2 常见的数据结构二:算法的概念 1 什么是算法算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 一句话描述:算法是一种解决特定问题的思路 ...

2021-04-13 09:48:14 69

原创 java之学习记录 10 - 1 - IDEA继承Docker部署微服务

linux安装docker[root@A ~]# yum -y install docker # 启动docker [root@A ~]# systemctl start docker # 查看docker的运行状态 [root@A ~]# systemctl status docker开启远程访问Docker默认是不允许远程访问的 # 修改配置文件 [root@A ~]# vim /lib/systemd/system/docker.service找到ExecSta.

2021-04-08 12:35:50 158

原创 java之学习记录 9 - 3 - Sharding-JDBC读写分离

Sharding-JDBC读写分离则是根据SQL语义的分析,将读操作和写操作分别路由至主库与从库。它提供透明化读写分离,让使用方尽量像使用一个数据库一样使用主从数据库集群。1 MySQL主从同步 为了实现Sharding-JDBC的读写分离,首先,要进行mysql的主从同步配置。使用MyCat在主服务器中的 test数据库 创建商品表CREATE TABLE products ( pid BIGINT(32) PRIMARY KEY , pname VARCHAR

2021-04-08 12:22:31 107

原创 java之学习记录 9 - 3 - Sharding-JDBC 操作公共表

1 什么是公共表 公共表属于系统中数据量较小,变动少,而且属于高频联合查询的依赖表。参数表、数据字典表等属于此类型。 可以将这类表在每个数据库都保存一份,所有更新操作都同时发送到所有分库执行。接下来看一下如何使用Sharding-JDBC实现公共表的数据维护。 2 公共表配置与测试 1) 创建数据库,导入依赖分别在 lg_order_1, lg_order_2 , lg_user库中创建 district表-- 区域表 CREATE TABLE district ( .

2021-04-08 12:16:09 165 1

原创 java之学习记录 9 - 3 - Sharding-JDBC使用(垂直分库)

垂直分库 垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上, 它的核心理念是专库专用. 在使用微服务架构时,业务切割得足够独立,数据也会按照业务切分,保证业务数据隔离,大大提升了数据库的吞吐能力。1. 创建数据库导入依赖CREATE DATABASE lg_user CHARACTER SET 'utf8';DROP TABLE IF EXISTS users; CREATE TABLE users ( id BIGINT(20) .

2021-04-08 12:05:53 127

原创 java之学习记录 9 - 3 - Sharding-JDBC使用(水平分库)

水平分库是把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。接下来看一下如何使用Sharding-JDBC实现水平分库CREATE DATABASE lg_order CHARACTER SET 'utf8'; DROP TABLE IF EXISTS pay_order_1; CREATE TABLE pay_order_1 ( order_id BIGINT(20) PRIMARY KEY AUTO_INCREMENT , user_id I

2021-04-08 11:59:30 81

原创 java之学习记录 9 - 3 - Sharding-JDBC使用(水平分表)

1 搭建基础环境创建数据库lg_order, 模拟将订单表进行水平拆分, 创建两张表pay_order_1 与 pay_order_2,这两张表是订单表拆分后的表,我们通过Sharding-Jdbc向订单表插入数据,按照一定的分片规则,主键为偶数的落入pay_order_1表 ,为奇数的落入pay_order_2表, 再通过Sharding-Jdbc 进行查询. CREATE DATABASE lg_order CHARACTER SET 'utf8'; DROP TABLE IF EXIS

2021-04-08 11:45:58 276

原创 java之学习记录 9 - 2 -docker环境下kafka集群环境搭建及基本操作

Docker环境下的Kafka集群搭建 1 准备工作 1) 准备一台服务器或虚拟机2) 安装docker - compose Compose 是用于定义和运行多容器 Docker 应用程序的工具。 如果我们还是使用原来的方式操作docker,那么就需要下载三个镜像:Zookeeper、Kafka、Kafka-Manager,需要对Zookeeper安装三次并配置集群、需要对Kafka安装三次,修改配置文件,Kafka-Manager安装一次,但是需要配置端口映...

2021-04-07 20:25:29 249

原创 java之学习记录 9 - 2 - linux下(docker安装mysql、tomcat、nginx、redis)及docker迁移与备份

1 MySQL部署 1. 搜索mysql镜像 docker search mysql2. 拉取mysql镜像docker pull mysql:5.73. 创建容器,设置端口映射、目录映射 docker run -di --name=mysql -p 3307:3306 -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

2021-04-07 19:40:39 84

原创 java之学习记录 9 - 2 - linux(centos7以上)安装docker,及docker常用命令

查看电脑上已经已经安装Dockeryum list installed | grep docker安装docker yum -y install docker安装后查看docker版本 docker -v启动docker: systemctl start docker停止docker: systemctl stop docker重启docker: systemctl restart docker查看docker状态: systemct

2021-04-07 19:29:01 54

原创 java之学习记录 9 - 2 - kibana之聚合aggregations

聚合可以让我们极其方便的实现对数据的统计、分析。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。1 基本概念Elasticsearch中的聚合,包含多种类型,最常用的两种,一个叫 桶 ,一个叫 度量:桶(bucket) 类似于 group by 桶的作用,是按照某种方式对数据进行分组,每一组数据在ES中称为一个 桶 ,例如我们根据国

2021-03-27 17:24:44 568

原创 java之学习记录 9 - 2 - kibana简单操作(下)

基本查询: GET /索引库名/_search{ "query":{ "查询类型":{ "查询条件":"查询条件值" } }}这里的query代表一个查询对象,里面可以有不同的查询属性 查询类型: 例如: match_all , match , term , range 等等 查询条件:查询条件会根据类型的不同,写法也有差异,后面详细讲解 查询所有(match_all) GET /lagou/

2021-03-27 17:09:31 369

原创 java之学习记录 9 - 2 - kibana简单操作(上)

创建/查看/删除索引库PUT /goods # 添加索引GET /goods # 查看索引HEAD goods # 查看索引是否存在DELETE /goods # 删除索引 创建字段映射PUT /索引库名/_mapping/typeName{ "properties":{ "字段名":{ "type": "类型", "index": true, "store": t

2021-03-27 16:41:20 391

原创 java之学习记录 9 - 2 - docker在linux下安装ElasticSearch,kibana、ik分词器

我这里指定的是6.4.3版本 因为es和kibana、ik分词器的版本需要一直 所以拉取时,须拉取指定的版本安装ElasticSearch// 拉取es 6.4.3版本docker pull elasticsearch:6.4.3// 映射到宿主机上 docker run -di --name=es -p 9200:9200 -v /root/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /root/elastic...

2021-03-27 15:37:19 98

原创 java之学习记录 9 - 2 - lecene 全文检索

搭建springBoot项目依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apac

2021-03-27 14:56:46 117

原创 java之学习记录 9 - 1 - SpringBoot thymeleaf视图技术记录

1 支持的视图技术 前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的模板引擎技术(如:FreeMarker、Thymeleaf、Mustache等)提供了整合支持Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容器的Spring Boot应用程序对于JSP模板存在一些限制 : 在Jetty和Tom

2021-03-19 16:33:14 102

原创 java之学习记录 9 - 1 - SpringBoot整合redis

添加Redis依赖包在项目的pom.xml中添加如下: <!-- redis依赖包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </depe

2021-03-19 15:52:11 75

原创 java之学习记录 9 - 1 - SpringBoot全局配置文件、自定义配置文件

全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解 :Spring Boot配置文件的命名及其格式:application.properties application.yaml application.yml1 a

2021-03-09 16:43:28 2056

原创 java之学习记录 9 - 1 - SpringBoot单元测试与热部署

1 单元测试 开发中,每当完成一个功能接口或业务方法的编写后,通常都会借助单元测试验证该功能是否正确。Spring Boot对项目的单元测试提供了很好的支持,在使用时,需要提前在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,可以通过相关注解实现单元测试演示:1.添加spring-boot-starter-test测试依赖启动器 在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器,示例代码如下 :

2021-03-09 15:48:36 184

原创 java之学习记录 9 - 1 - 初识SpringBoot、入门案例及快速构建

1. SpringBoot基本应用 1.1 约定优于配置Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Sp

2021-03-09 15:37:40 73

原创 java之学习记录 8 - 2 - vue + java 微信支付

vue前端安装 qrcodejs2 (注意:安装的是qrcodejs2,不要安装qrcode ---> 会报错)npm install qrcodejs2 --save页面中引入<!-- 微信支付二维码 --><el-dialog :visible.sync="dialogFormVisible" style="width:800px;margin:0px auto;"> <h1 style="font-size:30px;color:#00B3

2021-03-07 12:54:25 208

原创 java之学习记录 7 - 2 - Spring整合RabbitMQ/消息成功确认机制/消费端限流/过期时间TTL/死信队列/延迟队列

Spring整合RabbitMQ 五种消息模型,在企业中应用最广泛的就是最后一种:定向匹配topic Spring AMQP 是基于 Spring 框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象层,提供基于消息驱动的 POJO的消息监听等,简化了我们对于RabbitMQ相关程序的开发。 1 生产端工程 依赖 <dependencies> <dependency> <groupId>org.spr

2021-03-07 12:24:16 187

原创 java之学习记录 8 - 1 - vue+java 微信扫码登陆

vue前端解决扫码登录二维码在谷歌浏览器的bugvue项目安装 微信官方提供的生成二维码的js npm install vue-wxlogin如果不是vue的项目,可以直接引用官方提供的js文件,来生成二维码 vue页面引入 <wxlogin id="wxLoginForm" style="display:none" :appid="appid" :scope="scope" ..

2021-03-07 12:20:53 447

原创 java之学习记录 8 - 1 - 解决扫码登录二维码在谷歌浏览器的bug

谷歌浏览器调试的时候,iframe标签跨域问题导致无法跳转的bug 如果iframe未添加sandbox属性,或者sandbox属性不赋值,就代表采用默认的安全策略 即:iframe的页面将会被当做一个独立的源,并且不能提交表单,不能执行javascript脚本,也不 能让包含iframe的父页面导航到其他地方,所有的插件,如flash等也全部不能起作用 简单来说iframe就只剩下一个展示数据的功能,正如他的名字一样,所有的内容都被放进了一个 “单独的沙盒”sandbox包含的属性及作

2021-03-07 12:20:13 723 1

原创 java之学习记录 7 - 2 - RabbitMQ安装及使用

怎么用RabbitMQ 想要安装RabbitMQ,必须先安装erlang语言环境,类似安装tomcat,必须先安装JDK 查看匹配的版本:https://www.rabbitmq.com/which-erlang.html1 RabbitMQ安装启动 erlang下载:https://dl.bintray.com/rabbitmq-erlang/rpm/erlangsocat下载:http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el

2021-02-25 09:23:35 150

java mysql安装 卸载教程(内涵mysql和sqlyog)

java mysql安装 卸载教程(内涵mysql和sqlyog) 此资源仅记录博主自己学习的使用。

2020-12-08

城市地区的数据库城市地区的数据库

城市地区的数据库城市地区的数据库

2016-07-14

空空如也

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

TA关注的人

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