自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于技术选型

技术选型成本 效率微服务:隔离并行 可扩展可维护数据访问层选型Mybatis与Mybatis-plus:SQL连接池(性能,稳定性,扩展,监控,安全):Druid,C3p0,HikariCP常用中间件选型消息队列:保存消息,传递消息MQ选型:远程通信框架选型运行期状态:核心技术:Feign流程分析:框架对比:网关层选型分类: 流量网关和业务网关部署形式: 单点/多点技术选型:gateway:...

2021-11-06 16:20:21 123

原创 工程结构规约

工程结构规约工程图用例图: 用户角色+用户行为(有多少角色,能做什么样的事情)类图: 模型的属性和行为及模型之间的关系时序图: 1.有哪些对象参与协作;2.随着时间推进系统在做什么状态图: adj. 1.有多少状态;2.状态触发的条件活动图: 1.有多少系统参阅协作;2.每个处理流程处理瞬间是怎么循环的;应用分层为什么分层?可扩展 可维护 ——解耦计算机的任何问题都可以通过增加一个中间层来解决。MVC模式:controller:dispatchServletmodel:servic

2021-11-06 16:14:37 126

原创 异常与日志设计规约

异常异常体系异常处理异常做到: 描述原因+定位位置NPE解决:Optional核心思想:只关注最终使用的对象和属性foreach:空集合会跳过,但是集合中如果含有null值,会出现NPE日志记录行为:指标监控查询/链路追踪监控警告:健康检查/指标监控(告警)定位问题:日志记录规约:使用占位符尽量英文描述使用API而不是直接使用库日志打印禁止使用json工具直接转化为String扩展日志:错误日志业务日志分开输出规约:开关判断:trace/debug/

2021-11-01 17:43:35 197

原创 Mysql设计约束

MySql设计规范表命名: 与是否有关:is_复数: 禁用关键字: order等冲突数据类型: 小数:decimal; 最小货币单位:bigint; 字符串长度几乎相等:char(长度固定,比如身份证,介节约空间,建立索引不纠结) varchar(L+1)长度不要超过5000)必备字段: id/create_time/update_time表名: 业务_表名注释慎用分库分表索引命名规约:pk_/uk_/idx创建索引:唯一字段必须建立唯一索引v

2021-10-30 17:19:56 107

原创 系统设计方案论

项目落地过程: 需求分析->可行性->设计->编码->测试->发布kiss原则: keep it simple and smile(大道至简,迎接否定)需求分析用户诉求(调研)背后逻辑(人性是需求的本源)可行性结果分析 1.数据化结果判断合理性 2.正反案例说明需求需改进的地方 3.用户路径和触点推演合理性及危害性非结构——结构需求产品化: 模块化、 配置化、 有逻辑架构1.什么是架构?组成+决策组成:模块关系+模块结构决策:约束+设计原则+

2021-10-28 15:07:51 226

原创 面试高频

计算机基础OSI模型/TCP/IP四层结构/及关系三次握手四次挥手【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FI

2021-03-30 19:29:27 221

原创 合并k个升序链表

//给你一个链表数组,每个链表都已经按升序排列。//// 请你将所有链表合并到一个升序链表中,返回合并后的链表。//////// 示例 1://// 输入:lists = [[1,4,5],[1,3,4],[2,6]]//输出:[1,1,2,3,4,4,5,6]//解释:链表数组如下://[// 1->4->5,// 1->3->4,// 2->6//]//将它们合并到一个有序链表中得到。//1->1->2->3-&gt

2020-12-25 16:22:46 146 1

原创 八大排序复习

1.堆排实现思路:1.构建堆;2.和最后一个值进行交换;3.修改剩余的堆;4.循环上述操作。代码: // 堆排序额外空间复杂度O(1) public static void heapSort(int[] arr) { if (arr == null || arr.length < 2) { return; } // O(N*logN)// for (int i = 0; i < arr.le

2020-12-07 20:55:23 123

原创 求树的最大距离

解题思路:最大距离可能性有三种:1.在左树;2.在右树;3.从左树到右树;如图:情况一:x为头结点。最大距离在他的左子树。所以就可以先创建出一个类,这个类可以告诉我们想要的东西。那我们需要什么信息呢?我们需要求的是最大距离,那么我们就可以求出他左子树的距离,右子树的距离,从左到右的距离,做出比较。从左到右的距离怎么求呢。那就是左子树的距离加上右子树的距离+1(头结点)。那么距离怎么求呢?就是树的高度啦。那么我们分析出来了。我们需要的两个信息。最大距离和树的高度。这样我们就可以使用递归.

2020-12-03 22:08:37 410

原创 2020-10-29:数组

题目:构造一个长度为N的数组,随任意的i<k<j,满足a[i]+a[j]!=2a[k]。解题思路:1.当数组中只有1时,一定是达标的。2.那么我们可以从已达标的数组进行扩展。对于已经成立的数组 对他进行奇数扩展后,仍然成立。同样的 对他进行偶数扩展后,也一定是成立的。比如 如果数组arr中只有1,那就是0位置。对于奇数扩展:arr[0]*2+1;对于偶数扩展:arr[0]*2;此时组成新数组{3,2};同理,奇数扩展后{7,5}偶数扩展后{6,4}那么新数组就是{7,

2020-10-29 20:59:33 341 2

原创 事务与Aop

转账中产生问题的原因是;没有事务,意味着不能提交。他们是多线程,互补干扰,每次都会获取一个连接。所以应该使用一个Connection。如何使用一个Connection。使用ThreadLocal对象,把Connection和当前线程绑定,从而使一个线程中只有一个能控制事务的对象。...

2020-07-06 15:38:43 233

原创 mybatis细节注意

1.入门和CRUD1.测试运作流程是什么,代理模式的作用,是如何代理的,真正是怎样工作的?2.CRUD:注意:xml方式和注解方式:自定义注解时,注解相关知识点的复习,比如常用到的Rention是描述注解的生命周期。xml方式注意了:配置IUserDao.xml时的头文件:另一个文件头:关于找位置这里,xml用的是resoures属性,注解用的是class属性。在自定义源码Configuration那里,也是以这个来区分的。增删改:查:1.模糊查询:注意两种写法的区别是什么.一

2020-06-29 00:22:03 138

原创 单例设计模式

饿汉式class Singleton{ //私有化 防止外部直接new 造成线程不安全 private Singleton(){} private static Singleton instance=new Singleton(); public static Singleton getInstance(){ return instance; }}特点:线程安全。但是在初始化的时候,就创建了对象,不一定能用到,容易造成资源浪费。懒汉式c

2020-06-15 20:27:46 81

原创 JMM——内存模型

多线程下读写规则,保证各种性质。1.原子性:synchronized(){}2.可见性:可读不可以写3.有序性:指令重排问题为什么发生?如何解决?多线程中****指令重排会影响结果单线程中不影响的synchronized是重量级的,影响性能。voliate关键字解决可见性问题;但是不能保证原子性;可以禁用指令重排。.join()或者.Alive()或者interrupt()但是voliate这么优秀,为什么还要synchronizedCAS:Compare and sw

2020-06-13 17:57:36 135

原创 JVM——类加载

1.执行编译:javac -parameters -d . HellowWorld.javaclass,版本,长度,类名,方法名,找main,找常量池2.字节码指令:b1;返回值invokevirtual/special/static关于++的面试题:3.关于异常中面试题finally中执行return,会吞掉异常 try{ int i=1/0; }catch (Exception e){ }finally {

2020-06-13 13:26:40 82

原创 JVM——垃圾回收

垃圾回收:1.如何判断对象可以回收?1.引用计数法。弊端:无法解决循环引用的问题。比如两个对象相互引用。这个算法就无法解决2.可达性分析算法:根对象(GC Root):肯定不能被进行垃圾回收的,扫描,是否被根对象直接或间接引用,如果是,不能被回收;否则,将来解可以被当做垃圾。MAT工具看看:System Class:Native Stack:Thread:Busy Monitor:正在加锁的对象五种引用:(面试题)强:实线(沿着根对象能找到他,平时一般都是强引用)都不要了,才

2020-06-12 20:08:18 128

原创 JVM——内存结构

结构1.程序计数器作用:记录程序执行的下一条指令。特点:1.线程私有cpu给这个线程非配一段时间,但是这段时间没有执行完,换下一个,程序计数器记下下一条指令。每个线程都有自己的程序计数器。2.虚拟机栈1.什么是栈?线程运行时需要的内存空间。内存空间中:方法区:存储.class的相关信息(执行进栈,new进堆)堆:new出来的东西栈:存储方法中的局部变量1.栈由多个栈帧组成。每个线程,只能有一个活动栈帧,对应着正在执行的那个方法。栈帧:每个方法运行时需要的内存。方法;(参数,局部

2020-06-12 17:02:57 149

原创 Redis

知识复习1.如何启动使用??2.五种数据类型如何操作??通用命令的存取是啥?? keys*: type key: del key:3.内存中会消失,如何让他持久化?RDB&AOFRDB:(默认方式)推荐(间隔一段时间,检测key的变化,然后持久化 性能影响小)AOF;来一个记住一个怎么用他的持久化机制(1)编辑redis.windows.conf文件:save 900 1save 300 10save 60 10000他们的意思要知道!(2)重新启动redi

2020-06-11 14:42:30 97

原创 ajax&json

ajax在无需重新加载整个页面的情况下,部分更新这个页面如何理解???当文本输入框的内容发生变化时 下面会有联想(来自服务端)如果想部分替换页面内容,但是同步再发送请求时,其他页面不变,其他的就浪费了发同步请求时,他会整个再刷新一下,但是百度,你再重新刷,他这时就只发送了一请求。人家就使用的是异步。实现小数据量的交换。使用前记得导入jq那么如何实现异步????1.原生js:2.jq实现!!(对原生的方式实现了封装)三种方法:(1) $.ajax():常用;url:type(请

2020-06-09 23:31:25 93

原创 jquery

jq:jq是js的框架、$(“div”):document.getELementsByTagName他俩的区别:后者返回是一个数组,他如果改变内容,需要遍历数组。前者innerHTML:直接换注解:js对象和jquery方法是不通用的!!所以如何实现js和jquery的相互转换????1.jq转js:js对象[索引]或者jq独享,get(索引) .innerHTML2.js转jq:$(jjs对象).html$("#div"):ById选择器:筛选相同特征的元素。五大类:目的是找

2020-06-09 20:17:08 81

原创 发红包——继承练习

需求:群主发红包,三个人随机抽取。1.公共父类:package com.bai.ai;public class User { private String name; private int money; public User(String name, Integer money) { this.name = name; this.money = money; } public User() { } p

2020-05-26 08:44:36 130

原创 7-day01-03-7.反转整数

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321解法一:溢出条件:大于最大值或者小于最小值7:最大值个位数8:最小值个位数class Solution { public int reverse(int x) { int ans = 0; while (x != 0) { int pop = x % 10;

2020-05-13 12:14:51 81

原创 7-day02-02-Z字形变换

Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H Nclass Solution { public String convert(String s, int numRows) { if(numRows<=1) return s; St.

2020-05-13 11:42:33 64

原创 7-day01-01-5.最长回文串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大加粗样式长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。class Solution { public String longestPalindrome(String s) { if(s==null||s.length()==0) return ""; int start=0,end=0; int maxlen=0;

2020-05-13 11:10:25 119

原创 OneToMany:JPA

案例:客户与联系人1.pom<?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 http://maven.ap

2020-05-11 18:15:38 272

原创 Specification使用

@Test public void testSpec(){ // 匿名内部类 /* 自定义查询条件 1.实现Specification接口(提供泛型) 2.实现方法(构造产品条件) 3.借助方法中的两个参数 root:获取需要查询的对象属性 CriteriaBuilder:构造查询条件的,内部封装了很多查询条件(模糊匹配等) 案例:根据客户名称查询 查询条件: 1.查询方式(cb)

2020-05-11 14:02:31 2465 1

原创 Spring Data ElasticSerach

1.导入依赖 <!--设置maven编译级别--> <properties> <maven.comlile.source>1.8</maven.comlile.source> <maven.comlile.target>1.8</maven.comlile.target> </properties> <dependencies>

2020-05-10 14:00:57 133

原创 ElasticSearch:使用PostMan

1.设置mappings映射使用PostMan工具:方法一:put时添加mappings方法二:先send,再添加改变部分:{ "mappings":{ "article":{ "properties":{ "id":{ "type":"long", "store":true }, "title":{ "type":"text", "store":true, "index":true, "ana

2020-05-09 20:34:02 508

原创 required a bean named 'entityManagerFactory' that could not be found

查看依赖,有一个包报错,重新导入在运行即可。

2020-05-08 22:00:13 547

原创 mysql时区问题

spring.datasource.url=jdbc:mysql:///mybatis?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

2020-05-08 21:01:04 89

原创 安装vue时执行run build一直报错

看一下自己下载的是不是从dev分支下载的,如果是,那么一定会错!!!!dev的意思是开发版本,不知道测试成功了没有,比如我,安装了这么多次就没有成功!!去master分支下下载,安装,亲测成功!!...

2020-04-26 17:00:11 269

原创 ES6盲点记录&&vue组件

1.

2020-04-25 22:39:22 131

原创 maven依赖导入左边library不显示解决

打开IDEA右侧的侧边栏Maven Project -> life cycle -> clean-> install最后在Maven Project 侧边栏中,右键项目名称 -> reimport

2020-04-23 13:16:17 816 2

原创 盘点SpringBoot脚本架 搭建运行经历过的错误!!

环境搭建1.注意:这里曾经选default,有时候是好的,有时会最后报出下载不了io的错误,无法成功建成2.一般这三个地方可自己按需求修改3.版本注意选正版的,不要选测试版4.选依赖5.补齐依赖(mybatis),因为mybatis中的是中国人写的,外国人没有,所以脚本架不会搭建!! <dependency> <grou...

2020-04-22 10:40:08 110

原创 LeetCode-466-统计重复个数-Java

万能暴力!public static int getMaxRepetitions(String s1, int n1, String s2, int n2) { char[] c1 = s1.toCharArray(); char[] c2 = s2.toCharArray(); int index = 0 , num1 = 0, num2 = 0; while...

2020-04-19 09:58:17 112

原创 LeetCode-542-矩阵-Java-BF解法

BF解法:1.使用队列将所有为0的数的位置入队列,标记已经访问;2.四个方向开始寻找为1的;2.若没有被访问过,则加入结果集,并入队列(找1附近的1); //更新数组 public int[][] updateMatrix(int[][] martix){ if(martix==null||martix.length==0) re...

2020-04-16 19:38:22 301

原创 LeetCode-445-链表求和,两数正序相加-Java

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&...

2020-04-14 20:58:09 329

原创 LeetCode-86-分隔链表——Java

题目:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5解题思路:使用两个链表,一个小于给性值,一个大于等于,最后连接...

2020-04-14 20:49:48 137

原创 Could not find artifact org.example:ssm_service:pom:1.0-SNAPSHOT

直接install web项目时,会出现service的pom找不到的错误。切记!!在运行子项目时,先将父项目跑一遍,不然,不会成功的。

2020-04-14 20:24:26 3359

原创 LeetCode-160-相交链表题解

相交链表:1.暴力法:比较的是地址,每次循环完后,记得重新更新头结点;2.HashSet法:3.浪漫法:指针相遇 public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA==null||headB==null) return null; ListNode pA=head...

2020-04-14 20:20:42 79

空空如也

空空如也

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

TA关注的人

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