自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录一次生产环境接口超时排查问题

3、由于是武汉的工厂反馈的问题,其他地区的工厂没有反馈异常(我们的系统是分布式),因此联想到了网络原因。跟武汉的网络工程师沟通后,发现网络是通的,所以我去看了应用的访问时间限制。看到报错后首先去看了程序代码,最近没有人动过,因此排除业务代码的问题。发现仅配置了5秒之后,感觉大概率是这个原因(武汉工厂的网络到中心服务本来就比较慢),改大时间进行发布后问题解决。2、由于是超时原因,所以去跟程序看了执行的sql,发现都是毫秒级别的sql,也排除慢sql原因。

2022-12-16 16:37:44 269 1

原创 ngnix笔记

https://nishigouzi.github.io/2020/06/07/Nginx%E7%AC%94%E8%AE%B0/#more

2021-05-09 10:13:25 127

原创 面试知识java基础(查漏补缺笔记)

多线程java中创建线程的四种方法以及区别https://www.jianshu.com/p/732a8858b0d4Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用四种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程创建Callable实现类的实例,创建一个线程池,调用线程池的submit方法,如果需要返回值就调用Future的get方法获取。4)

2021-02-25 16:07:53 236

原创 leetcoed刷题笔记

1、编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。思路:当字符串数组长度为 0 时则公共前缀为空,直接返回令最长公共前缀 ans 的值为第一个字符串,进行初始化遍历后面的字符串,依次将其与 ans 进行比较,两两找出公共前缀,最终结果即为最长公共前缀如果查

2021-02-25 16:07:11 200 2

原创 Mysql高级笔记

参考尚硅谷msyql高级课程的笔记,仅供学习交流使用1、简介安装mysql liunx版mysql服务mysql字符集设置大小写不敏感mysql权限管理第三章msyql逻辑架构简介1、连接层2、服务层3、引擎层4、存储层MyiSAM和InnoDBAliSql和AliRedis查看sql执行周期sql查询流程索引优化...

2021-02-13 00:25:55 153

原创 MySQL基础笔记

笔记网址 https://blog.csdn.net/wangjx92/article/details/79333599mysql默认端口3306 本机设置端口3306 本地地址 127.0.0.1C:\Program Files\MySQL\MySQLC:\Program Files\MySQL\MySQL Workbench 8.0 CEDQL:数据查询语句,selectDML:数据操作语句,insert/delete/updateDDL:数据库定义语句,create/drop/al

2020-09-20 09:50:26 307

原创 数据结构与算法

**数据结构的分类 **线性结构和非线性结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o7ToCwzh-1584535809905)(E:\笔记\图片\1584509957104.png)]二叉树数据结构二叉树[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tOtts6U2-1584535809905)(E:\笔记\图片\...

2020-09-18 17:34:11 238

原创 java基础笔记

变量变量名命名: 合法的标识符,默认规则首字母是小写后面的每个单词首字母大写。变量的作用域:出了大括号,就没用了。变量种类:成员变量 在整个类中有效 //实例变量 静态变量​ 局部变量:在方法内或方法内的某代码块(方法内部,“{”与“}”之间的代码)中声明的变量。在代码块声明的变量,只在当前代码块中有效;数据类型基本数据类型:​ 整数型:byte(一个字节)(-128~127 )short(2),int

2020-08-15 18:19:50 342

原创 spring data jpa 二

JPA第三天第1章 Specifications动态查询有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。相比JPQL,其优势是类型安全,更加的面向对象。import java.util.List;import org.springframework.data.domain.Page;import org.springframework.data.domain.P

2020-08-06 11:34:10 125

原创 spring data jpa

JPA第二天第1章 Spring Data JPA的概述1.1 Spring Data JPA概述Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,.

2020-08-05 16:41:05 577

原创 jpa

JPA第一天第1章 1.ORM概述[了解]ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。1.1 为什么使用ORM当实现一个应用程序时(不使用O/R Mapping),我们可能会写特

2020-08-05 11:17:15 127

原创 springboot与缓存

一、JSR107核心规范spel表达式简单使用例子package com.midea.springboot;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springfra

2020-08-05 09:29:36 125

转载 熔断降级理解

1、为什么需要熔断降级(1)需求背景它是系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案。在一个分布式系统里,一个服务依赖多个服务,可能存在某个服务调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败。比如:某微服务业务逻辑复杂,在高负载情况下出现超时情况。内部条件:程序bug导致死循环、存在慢查询、程序逻辑不对导致耗尽内存外部条件:黑客攻击、促销、第三方系统响应缓慢。(2)解决思路解决接口级故障的核心思想是优先保障核心业务和优先保障绝大部分

2020-08-03 14:09:08 368

原创 SpringBoot笔记

**一、**Spring Boot 入门1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;详细参照微服务文档3、环境准备http://www.gulixueyuan.c

2020-07-30 09:41:33 383

转载 java回调函数机制

回调的思想是:类A的a()方法调用类B的b()方法类B的b()方法执行完毕主动调用类A的callback()方法这样一种调用方式组成了上图,也就是一种双向的调用方式。代码示例接下来看一下回调的代码示例,代码模拟的是这样一种场景:老师问学生问题,学生思考完毕回答老师。首先定义一个回调接口,只有一个方法tellAnswer(int answer),即学生思考完毕告诉老师答案:/** * 回调接口,原文出处http://www.cnblogs.com/xrq730/p/6424471.html.

2020-07-29 11:13:58 102

原创 Spring Boot简介和快速入门案例

Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop。ioc 提供了依赖注入的容器 。aop 解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Spring boo

2020-07-20 15:11:41 130

原创 数据库的分片规则

基本概念逻辑库一般来说,对于应用而言,数据库中间件是透明的,应用并不需要去了解中间件复杂的运作过程,中间件对应用来说就是透明的,我们操作中间件就像操作一个普通的 MySQL 一样,这就是 MyCat 的优势之一。但是我们毕竟操作的不是 MySQL ,而是 MyCat ,MyCat 中的数据库并不真正存储数据,数据还是存储在 MySQL 中,因此,我们可以将 MyCat 看作是一个或者多个数据库集群构成的逻辑库逻辑表逻辑表又有几种不同的划分:逻辑表既然有逻辑库,那么就会有逻辑表。因为数据库

2020-07-20 13:30:35 1470

原创 数据中间件 Mycat 的简介与安装

MyCat 是一个开源的分布式数据库中间件,它实现了 MySQL 协议,在开发者眼里,他就是一个数据库代理,我们甚至可以使用 MySQL 的客户端工具以及命令行来访问 MyCat 。MyCat 现在已经不仅仅只支持 MySQL 了,同时也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主流数据库。甚至像 MongoDB 这种 NoSQL 也支持。快速入门1、搭建读写分离要搞 MyCat ,一般要先搭建好 MySQL 的读写分离,MySQL 的读写分离可以参考松哥之前的这篇文章:

2020-07-20 11:44:21 209

原创 中间件简介(重点:数据库中间件)

本来今天就该讲 MyCat 了,但是我发现还有一个概念值得和大家聊一下,那就是 Java 中间件!因为 MyCat 是一个分布式数据库中间件,要理解 MyCat ,那你就得先知道到底什么是中间件!中间件简介说起中间件,很多人首先想到的就是消息中间件,那么除了消息中间件呢?其实我们日常开发中,接触到的中间件太多了,我们来看维基百科上的一段介绍:中间件(英语:Middleware),又译中间件、中介层,是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。在现代信息技术应用框架如 Web

2020-07-20 10:58:24 4288

原创 数据库切分

千万量级的数据,用 MySQL 要怎么存?初学者在看到这个问题的时候,可能首先想到的是 MySQL 一张表到底能存放多少条数据?根据 MySQL 官方文档的介绍,MySQL 理论上限是 (232)2 条数据,然而实际操作中,往往还受限于下面两条因素:myisam_data_pointer_size,MySQL 的 myisam_data_pointer_size 一般默认是 6,即 48 位,那么对应的行数就是 248-1。表的存储大小 256TB那有人会说,只要我的数据大小不超过上限,数据行数也

2020-07-20 10:46:42 108

原创 MYSQL读写分离环境搭建

MYSQL读写分离环境搭配主机配置主机配置 1 授权给从机服务器GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.248.139' identified by '123';FLUSH PRIVILEGES;这里表示配置从机登录用户名为 rep1,密码为 123,并且必须从 192.168.248.139这个地址登录,登录成功之后可以操作任意库中的任意表。其中,如果不需要限制登录地址,可以将 IP 地址更换为一个 %。 2.修改主库配置文件

2020-07-20 10:29:24 133

原创 MYSQL引擎简介与中间件

MySQL 自研的使用较广的存储引擎是 MyISAM ,MyISAM 支持表锁,不支持行锁,所以在处理高并发写操作时效率要低一些,另外 MyISAM 也不支持外键(虽然现在实际项目中外键已经用的比较少了)。(但是由于这个引擎不支持事务,所以现在使用较少)InnoDBOracle 收购 sun 之后,InnoDB 和 MySQL 就都成了 Oracle 的产品了,这下整合就变得非常容易了,在后来发布的版本中,InnoDB 慢慢就成为了 MySQL 的默认存储引擎。在最新的 MySQL8 中,元数据表也使用

2020-07-20 10:28:56 158

转载 平衡二叉树的具体实现

文章参考视频https://www.bilibili.com/video/BV1E4411H73v?p=141平衡二叉树首先是一个排序二叉树。特点如下:创建二叉树的代码如下package 算法.树;public class BinarySortTreeDemo {public static void main(String[] args) {int[] arr = {7, 3, 1...

2020-03-28 20:58:33 188

原创 关于赫夫曼编码压缩数据和解压的具体实现

手打不易,有用就点个赞,哈哈。你们可以增加IO类,用来压缩图片和文件玩一下。参考视频https://www.bilibili.com/video/BV1E4411H73v?p=128视频里面老师的代码有些bug,我改正过来了。package 算法.赫夫曼编码的实现;//数据压缩的实现import java.util.*;public class HuffmanCode { ...

2020-03-28 01:28:14 157

转载 JVM垃圾回收机制

今天看了很多篇关于垃圾回收机制的文章,简书上这篇是感觉讲的比较好的,推荐一下。https://www.jianshu.com/p/23f8249886c6

2020-03-27 13:36:09 71

原创 剑指offer数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size<=...

2020-03-26 11:19:01 125 1

原创 简单判断B树是否是A树的子树

ps:同样是牛客网大佬的答案,借鉴过来学习,初学者就需要多看看别人的代码怎么写的,才能模仿和进步。题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { bool...

2020-03-25 11:18:58 652

原创 根据前序遍历和中序遍历重建二叉树(比较简洁易懂的代码分享)

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。ps:这个思路是牛客网里面一个大佬的,我觉得很简洁,所以分享给大家。解题思路因为是树的结构,一般都是用递归来实现。用数学归纳法的思想就是,假设最后一步,就是...

2020-03-24 21:44:33 169

原创 用一维数组解决八皇后棋盘问题

八皇后问题:在一个8*8的棋盘上放置八个皇后棋子,任意两个皇后不能处于同一行,同一列,或者同一斜列。求出有多少种解法。package 算法.递归回溯解决八皇后问题;public class Queen8 { //定义一个max表示有多少个皇后 int max =8; //用一个一维数组保存皇后存放在二维数组的位置,数字下标表示第几行,值表示第几列 int []...

2020-03-21 12:20:00 409

原创 简单的后缀逆波兰计算器,支持加减乘除和括号

文章是个人视频学习笔记,视频是b站尚硅谷的韩顺平老师的算法结构视频地址https://www.bilibili.com/video/av54029771?p=42后缀计算器的关键是,将我们易于理解的中缀表达式,转换成计算机容易理解的后缀表达式,再进行运算中缀转后缀思路如下:逆波兰计算器的计算思路如下:代码如下在这里插入package 算法.栈.逆波兰计算器后缀表达式;impo...

2020-03-20 15:46:42 278

原创 关于单链表逆序输出的三种方式

1将链表反转,再遍历输出,不推荐,会打乱链表原有顺序2遍历链表,把值压入一个栈,再把栈的数据输出3用for循环遍历链表,从最后一位开始,逆序输出package 算法.单向链表和双向链表的创建和遍历;import java.util.Stack;public class LinkedListDemo { public static void main(String[] args...

2020-03-19 23:08:11 2823 1

原创 用单选环形链表解决约瑟夫问题

题目:一群人围在一起丢手绢,开始指定从第m个人开始,然后瞬时针数k下,第k个人出列,剩下的人继续从0开始数到k,第k个人再次出列,问,最后一个人是谁?文章思路来自b站 尚硅谷韩顺平老师的算法视频package 算法.单向链表和双向链表的创建和遍历.约瑟夫问题之单向环形链表;public class Josephu { public static void main(String[...

2020-03-19 23:00:00 102

原创 中缀表达式计算器

用中缀表达式写一个计算器,可以实现加减乘除的运算。不支持括号基本思路:1通过一个index索引来遍历我们的表达式2如果我们发现是单个数字,就直接入栈否则判断下一位是否还是数字,如果是数字就采用字符串拼接的方式取值3如果是符号位,当符号位为空时,直接入栈如果有符号进行优先级比较4表达式扫描完毕。计算值并且输出一些细节的思路要看代码,有些地方不太好表述很容易有小bug,我也是调试了好...

2020-03-19 22:42:21 79

原创 IDEA上传文件到服务器

首先创建一个简单的jsp页面,表单action的值是处理上传请求的servlet的urlpattern,且必须设置enctype域。<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Title$</titl...

2020-03-06 17:02:06 683

原创 简易人机对弈算法的五子棋程序

要求的五子棋游戏应达到以下几方面的要求:(1)运行程序后即刻出现棋盘并可以开始下棋;(2)人机对弈时,先手为黑棋,后手为白棋;人为先手,计算机为后手;(3)程序能响应鼠标点击并在相应位置画出棋子;(4)计算机具有一定的智能,能够与人进行五子棋对弈;(5)程序可以正确判断出局面的胜负情况并及时报出结果,终止棋局;(6)尽可能实现人人对战功能;(7)重新开始:在游戏途中,可以选择重新开始...

2020-01-19 13:48:13 5155 1

原创 //利用JSON对象拼接html的表格

视频资源:https://www.bilibili.com/video/av62653534?p=52北京动力节点 js教程<!DOCTYPE><html> <head> <meta charset="utf-8"> <title>设置table的tbody</title> </head&g...

2019-11-20 15:15:11 316

原创 用js代码写表单验证

//需求<!DOCTYPE html><html> <head> <meta charset="utf-8"> <style> span{ color:red; font-size:20px; } </style&gt...

2019-11-18 23:49:53 167

原创 反编译一个类的方法

//反编译某个类的所有方法public class CustomerService{ public boolean login(String name,String password){ if("admin".eaquals(name)&&"123".equals(password)){ return true; } return false...

2019-11-06 16:09:37 554

原创 //反编译某个类的所有属性Field

//反编译某个类的所有属性Fieldpublic class User{ private String id ; public int age; protected String addr; boolean sex;}// java.lang.reflect.Filed; 类中的属性public class Test{ public static void main(...

2019-11-05 22:02:13 152 1

原创 利用IO类和Properties属性对象读取配置文件

首先创建一个名为dbinfo的文件数据如下:代码如下:// io类和properties(属性对象)读取配置文件//配置文件可以使程序更加灵活//一般在java中可变的东西不要写死,推荐写到配置文件中//配置文件可以使运行相同的程序时可以得到不同的结果//像dbinfo这样一个具有特殊内容的配置文件我们又称为属性文件//java规范中要求属性文件以“.Properties”结尾i...

2019-11-05 17:43:20 270

空空如也

空空如也

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

TA关注的人

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