摘要: 更多内容,前往 IT-BLOG 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之) 阅读全文
posted @ 2020-11-16 21:07 Java程序员进阶 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 快速排序(QuickSort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将需要排序的数据分成独立两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按照此方法对这两组数据分别进行快速排序,这个排序过程可以递归进行,以此达到整个数据变成有序序列。 一、基本介绍 快速排序是实践中的一种 阅读全文
posted @ 2020-11-16 20:48 Java程序员进阶 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG AVL (平衡二叉树:追求"完全平衡")树的另一种变种是红黑树(Red-Black-Tree:只要求部分达到平衡)其就是一个二叉查找树。对红黑树的操作在最坏情形下花费 时间。红黑树是具有下列着色性质的二叉查找树:<br />【1】每个节点或者是黑色,或者是红色。<br 阅读全文
posted @ 2020-11-16 20:46 Java程序员进阶 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 更多内容,移步 IT-BLOG 一、JAVA中的几种基本数据类型 Java语言中一共提供了8种原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,而是 Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就 阅读全文
posted @ 2020-11-16 18:06 Java程序员进阶 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一、本地事务 更多内容,前往 IT-BLOG 在计算机系统中,更多的是通过计算机控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系型数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。 数据库事务的四大特性:数据库在实现时 阅读全文
posted @ 2020-11-16 10:21 Java程序员进阶 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一、什么是线程 线程是指程序在运行的过程中,能够执行程序代码的一个执行单元。Java语言中,线程有四种状态:运行、就绪、挂起、结束 二、线程与进程的区别 进程是指一段正在执行的程序。而线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段 阅读全文
posted @ 2020-11-15 14:51 Java程序员进阶 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、MyBatis 简介 【1】MyBatis 是支持定制化 SQL,存储过程以及高级映射的优秀持久化框架。【2】MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取查询结果集。【3】MyBatis 可以使用简单的 XML 或者注解用于配置和原始映射,将接口和 Java 的 POJ 阅读全文
posted @ 2020-11-15 14:44 Java程序员进阶 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 定义:锁是计算机协调多个进程或线程并发访问某一资源的机制。 一、表锁(偏读) MyISAM 引擎,开销小,加锁快,无死锁、锁定粒度大、发生锁冲突的粒度最高,并发度低。 【1】手动增加表锁:lock table 表名1 read(write),表名2 read(write),其他;【2】查看那些表加锁 阅读全文
posted @ 2020-11-15 14:34 Java程序员进阶 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 查询的生命周期大致可以按照顺序来看:从客户端到服务端,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中 “执行” 可以认为是整个生命周期中最重要的阶段,其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序分组等。当希望 MySQL 能够以高性能的方式运行查询时 阅读全文
posted @ 2020-11-15 14:27 Java程序员进阶 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一、优化器索引 【1】 隐藏索引(invisible index):在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用,但仍需要维护。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这 阅读全文
posted @ 2020-11-15 14:25 Java程序员进阶 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。 一、环境介绍 【1】Apache Avro 1.8;【2】Spring Kafka 1.2;【3】Spring Boo 阅读全文
posted @ 2020-11-15 14:18 Java程序员进阶 阅读(439) 评论(0) 推荐(0) 编辑
摘要: MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具包,只做增强不做改变,为简化开发工作、提高生产效率而生。 一、Service CRUD 接口 【说明】:【1】通用 Service CRUD 封装 MP提供的 IService接口,进一步封装 CRUD 采用 get 查询单行 阅读全文
posted @ 2020-11-15 14:12 Java程序员进阶 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、设计原则 原则: SQL开发规范制定是基于良好的编码习惯和可读性; 目的: 消除冗余,数据简约,提高效率,提高安全; 【1】禁止在线上生产环境做数据库压力测试,全链路压测可以支持,但是一定不要在业务高峰期搞压力测试。 【2】禁止在数据库中明文存储密码和敏感信息,可 阅读全文
posted @ 2020-11-15 13:59 Java程序员进阶 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG MySQL 的存储单位是 page[16kb],索引使用 B+Tree,深度为3(3次 IO便能查出数据)。为了提高查询速度,存储单元中都存储的是索引的指针。MySQL 内部索引指针大小在 InnoDB源码中设置为 6个字节+例如 ID类型 bigint(long) 阅读全文
posted @ 2020-11-15 13:52 Java程序员进阶 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、前言 如何在分布式集群中生产全局唯一的 ID?【方案一】UUID:UUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度 32位的全局唯一识别码。UUID 虽然可以保证全局唯一,但是占3 阅读全文
posted @ 2020-11-15 13:50 Java程序员进阶 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、概述 2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(Commit phase),2指两个阶段,P指准备阶段,C指提交阶段。整个事务过程由事务管理 阅读全文
posted @ 2020-11-15 13:48 Java程序员进阶 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、什么是 TCC事务 TCC 是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与 Try或 阅读全文
posted @ 2020-11-15 13:47 Java程序员进阶 阅读(1855) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、可靠消息最终一致性事务概述 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图:​ 事务发起方 阅读全文
posted @ 2020-11-15 13:43 Java程序员进阶 阅读(1989) 评论(1) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、概述 最大努力通知也是一种解决分布式事务的方案,下面是一个充值的例子:​交互流程:【1】账户系统调用充值系统接口;【2】充值系统完成支付处理向账户系统发起充值结果通知,若通知失败,则充值系统按策略进行重复通知;【3】账户系统接收到充值结果通知修改充值状态[实时性与 阅读全文
posted @ 2020-11-15 13:41 Java程序员进阶 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 我们已经了解了四种分布式事务解决方案,2PC【链接】、TCC【链接】、可靠消息最终一致性【链接】、最大努力通知【链接】,每种解决方案我们通过案例开发进行学习,本章节我们结合互联网金融项目中的业务场景,来进行分布式事务解决方案可行性分析。 一、系统介绍 P2P金融又叫 阅读全文
posted @ 2020-11-15 13:39 Java程序员进阶 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、Zookeeper概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式【链接】设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这 阅读全文
posted @ 2020-11-15 13:37 Java程序员进阶 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 枚举类:就是对象的实例个数是确定的(例如:单例模式),也就说我们在创建枚举类的时候,会对构造器进行设置 一、自定义创建枚举类 1 package com.atguigu.java1; 2 3 public class TestSeason { 4 public static void main(St 阅读全文
posted @ 2020-11-15 13:19 Java程序员进阶 阅读(119) 评论(0) 推荐(0) 编辑
摘要: AOP(动态代理):指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;【1】导入 aop 模块;Spring AOP:(spring-aspects);【2】定义一个业务逻辑类(MathCalculator),在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出 阅读全文
posted @ 2020-11-15 13:16 Java程序员进阶 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 选择排序是一种简单直观的排序算法,其基本原理,对于一组记录的数据,通过第一次比较得到最小的记录,然后将该记录与第一条记录的位置交换;接着对不包含第一个以外的记录进行比较,得到最小记录并与第二个记录进行位置交换;重复该过程,知道进行比较的记录只有一个时为止。 以数组 { 阅读全文
posted @ 2020-11-15 10:30 Java程序员进阶 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从而个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一条记录插入到有序序列中为止。 例如:数组 {38,65,97,76,13,27,49}第一步插入38以后:[38]65 97 76 阅读全文
posted @ 2020-11-15 10:29 Java程序员进阶 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序顾名思义就是整个过程就像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定的 n 个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n 个记录中的最大记录将位于第 n位;然后对前(n-1)个记录进行第二轮比 阅读全文
posted @ 2020-11-15 10:28 Java程序员进阶 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 【第一步】:查看系统网卡设备 : ip addr show ​​​ 【第二步】:修改网卡配置参数 1 cd /etc/sysconfig/network-scripts/ 2 vi ifcfg-ens33 修改ONBOOT参数为 yes ​ 【第三步】:重启网卡,然后 ping 检测下网络有没有通。 阅读全文
posted @ 2020-11-15 10:05 Java程序员进阶 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 【1】x.sh文件内容编写:固定开头:#!/bin/sh;【2】学习的第一个命令就是 echo输出的意思;【3】其实 shell脚本也就是在文件中写命令,但是我们要写的是绝对路径:eg:/bin/pwd;【4】运行shell脚本:sh 文件名;【5】通过下面脚本进行学 阅读全文
posted @ 2020-11-15 10:01 Java程序员进阶 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 在pom.xml文件中加入如下代码,实现依赖注入: 1 <dependencies> 2 <dependency> 3 <groupId>javax.servlet</groupId> 4 <artifactId>servlet-api</artifactId> 5 <version>2.5</ve 阅读全文
posted @ 2020-11-15 09:53 Java程序员进阶 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 【异常】:Cause: java.sql.SQLSyntaxErrorException: Unknown column 'udf1' in 'field list'...... SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: 阅读全文
posted @ 2020-11-15 09:51 Java程序员进阶 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 【异常】:UnsatisfiedDependencyException: Error creating bean with name 'xxx[类]': Unsatisfied dependency expressed through field 'baseMapper';......BeanCre 阅读全文
posted @ 2020-11-15 09:50 Java程序员进阶 阅读(8961) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、开启网络 【问题】:刚安装完 CentOS,当 ping www.baidu.com 时,ping 不通;【解决】:进入cd /etc/sysconfig/network-scripts/ 我这里修改的是 ifcfg-ens33 文件,将 ONBOOT 修改为 y 阅读全文
posted @ 2020-11-15 09:48 Java程序员进阶 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 【1】需求:Kafka 使用 Avero 反序列化时,同时需要对 String 类型的 JSON数据进行反序列化。AvroConfig的配置信息如下: 1 /** 2 * @author zzx 3 * @creat 2020-03-11-20:23 4 */ 5 @Configuration 6 阅读全文
posted @ 2020-11-15 09:41 Java程序员进阶 阅读(2370) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】:ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is 阅读全文
posted @ 2020-11-15 09:39 Java程序员进阶 阅读(2121) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 一、配置时间服务器具体步骤 ​【1】检查 ntp(NTP是网络时间同步协议,就是用来同步网络中各个计算机的时间的协议) 是否安装,时间服务器配置必须使用 root 用 阅读全文
posted @ 2020-11-15 08:49 Java程序员进阶 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 一、免密登录原理 非对称加密:由于对称加密的存在弊端,就产生了非对称加密,非对称加密中有两个密钥:公钥和私钥。公钥由私钥产生,但却无法推算出私钥;公钥加密后的密文,只能通过对应的私钥来解密。 ​ 【1】在A服务器使用 ssh-keygen生成一对密钥:公钥+私钥;【2】将A服务器公钥追加到B服务器的 阅读全文
posted @ 2020-11-15 08:45 Java程序员进阶 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 一、数据库 表中新增“添加时间”和“修改时间”字段;​ 二、实体类 Entity 在实体类中的“添加时间”和“修改时间”的属性字段中添加 @TableField(fill = FieldFill.INSERT),其中 FieldFill 中包含默认(DEFAULT), 插入(INSERT), 修改( 阅读全文
posted @ 2020-11-15 00:40 Java程序员进阶 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 一、数据库 数据库中添加逻辑删除字段:​ 二、实体类Entity 修改 实体类逻辑删除字段上加上 @TableLogic注解,字段支持所有数据类型(推荐使用 Integer,Boolean,LocalDateTime),如果使用LocalDateTime,建议逻辑未删除值设置为字符串null,逻辑删 阅读全文
posted @ 2020-11-15 00:39 Java程序员进阶 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 为了防止黑客从前台异常信息,对系统进行攻击。同时,为了提高用户体验,我们都会都抛出的异常进行拦截处理。 一、全局异常处理 编写一个异常拦截类,如下:@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller 阅读全文
posted @ 2020-11-15 00:26 Java程序员进阶 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、Yarn 概述 Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 mapreduce等运算程序则相当于运行于操作系统之上的应用程序。 Yarn 的重要概念:【1】Yarn并不清楚用户提交的程序的运行机制;【2】Ya 阅读全文
posted @ 2020-11-15 00:23 Java程序员进阶 阅读(0) 评论(0) 推荐(0) 编辑