自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 基础函数式接口格式含义及其常见的方法引用

根据后缀区分即可 /**无参无返回值*/ Runnable runnable = () -> {}; /**生产者:无参有返回值*/ Supplier supplierRef = Object::new; Supplier supplier = () .

2021-07-16 09:36:49 278

原创 力扣:有效括号 & 最长有效括号

package com.likou;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;class ValidBrackets { class Case1 { public boolean isValid(String s) { ArrayList<String> list = new ArrayList<>(120); ..

2021-03-31 12:58:36 236 1

原创 力扣:最长公共前缀,罗马数转整数,回文数,两数之和

/** * 最长公共前缀 */class Longestcommonprefix { public static String longestCommonPrefix(String[] strs) { String efix = ""; OK: if (strs != null && strs.length > 0) { for (int i = 0; i < strs[0].length..

2021-03-30 19:33:05 231

原创 spring boot手动实现Redis分布式锁

import org.springframework.data.redis.core.RedisCallback;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisCluster;import redis.cl.

2021-01-29 16:05:45 201

原创 对偏向锁,自旋锁,轻量级锁,重量级锁 之间的关系的理解

偏向所锁,轻量级锁都是乐观锁,重量级锁是悲观锁。一个对象刚开始实例化的时候,没有任何线程来访问它的时候。它是可偏向的,意味着,它现在认为只可能有一个线程来访问它,所以当第一个线程来访问它的时候,它会偏向这个线程,此时,对象持有偏向锁。偏向第一个线程,这个线程在修改对象头成为偏向锁的时候使用CAS操作,并将对象头中的ThreadID改成自己的ID,之后再次访问这个对象时,只需要对比ID,不需要再使用CAS在进行操作。 一旦有第二个线程访问这个对象,因为偏向锁不会主动释放,所以第二个线程可以看到对

2021-01-28 14:49:48 358

原创 Spring boot AOP结合注解的使用

引入maven依赖<!--引用AOP注解功能开始--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><!--引用AOP注解功能结束-->自定义注解/** * 系统日志记录 * * @auth

2021-01-28 13:52:53 236 4

转载 postman深度使用

https://mp.weixin.qq.com/s/qK-_Nim7rzwGhvb-cNFK-A

2021-01-20 14:21:01 159

原创 查询字段有null导致count值不对

今天测试反应一个关联表查询接口,返回数据正常,但总条数不对,于是把sql拿出来在数据库直接执行了一下是有(376)条数据的(图一), 但是在原语句上加上 count 统计条数时,却得到0(图二),经过对字段的逐一排查,发现是查询字段 “plant” 值为 null 导致的,解决办法是将 图一的查询结果作为临时表 a, 用count统计表 a 的总条数(图三)。原因:count关键字统计数据条数时,查询列中任意一列整体null,都会导致查询结果为0...

2021-01-19 15:28:21 474

原创 Mabitis结果集转map

MPST1001DAO.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.faw_qm.erpcg.mps.mps.MPST1001.dao.MPST1001DAO">

2021-01-11 18:02:17 379

原创 23种设计模式总结及应用案例

设计模式,七大原则开闭原则对扩展开放(提供方),对修改关闭(使用方)。抽象提供方的方法,调用方传入抽象类的子类实现,提供方调用子类方法完成具体实现里氏替换原则所有引用基类的地方都必须能透明的使用其子类,且行为不会发生变化。依赖倒转原则底层模块尽量不独立存在,应有其抽象类或接口,声明子类对象时由接口接收,作为实例与变量间的缓冲层,有利于程序扩展个优化。中心思想是面向接口编程,相对于细节的多变性,抽象的东西稳定的多,以抽象为基础搭建的架构也更稳定。单一职责原则降低类的复杂度,一个类只负责一项

2020-12-30 08:41:00 4663 2

原创 List集合遍历效率对比

public class CalendarDemo { public static void main(String[] args) { int AGE = 5000000; ArrayList<Studert> studerts = new ArrayList<>(); for (int i = 0; i < AGE; i++) { Studert studert = new Studert(

2020-11-25 08:59:53 283

原创 类型转换:强制类型转换和调API方法转换的区别与使用场景

强转:如果存在一个Object对象a,底层是字符串类型,但a的值可能为null,此时如果想调用形参是字符串的方法是不能直接传递a对象的,因为类型不符,也不能使用toString方法,因为a可能为null,会出现NPE,此时就需要对a 进行强转(String)a ,强制类型转换的前提是调用者已经事先知道目标底层数据类型与强转后的类型一致(如果目标是null,强转不会报错,并且目标值还是null)API方法转换:必须先对目标进行非空判断...

2020-10-27 17:02:24 250 2

原创 Java程序员学习Go_数组

Array(数组)数组定义:定义一个长度为3元素类型为int的数组aJava: //数组类型[] 数组名=new 数组类型[数组长度]; int[] a = new int[3]; //数组类型[] 数组名={数组0,数组1,数组2,数组3,......}; int[] a = {0,1,2};go:func main() { var testArray [3]int //[0 0 0]

2020-10-18 23:11:15 125

原创 Java程序员学习Go_流程控制语句

流程控制语句流程控制语句if else(分支结构)for(循环结构)switch case跳出循环在Java和go中的关键字:break继续下次循环在Java和go中的关键字:continue流程控制语句if else(分支结构)Java: int score = 65; if (score >= 90) { System.out.println("A"); } else if score > 75 { System.out.println("B"); } else { Sy

2020-10-18 22:11:26 135

原创 Java程序员学习Go_基本数据类型

基本数据类型基本数据类型整型特殊整型数字字面量语法(Number literals syntax)浮点型复数布尔值字符串类型转换基本数据类型整型Go语言中,整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64Java语言中,整型按长度分为:byte、short、int、long特殊整型注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在不同平台

2020-10-18 15:13:21 411

原创 Java程序员学习Go_变量和常量

变量和常量变量&常量匿名变量iota变量&常量Java: 声明变量, 权限由修饰符控制 //私有 private string name; private int age; private boolean isOk; //公共 public string name; public int age; public boolean isOk;go: 声明变量, 权限由变量名首字母大小写控制 //私有 var name string var age int var

2020-10-18 13:52:35 137

原创 设计模式

简单工厂 适合添加 单品抽象工厂 将已存在单品们进行了抽象, 不再适合添加单品,适合添加品类族何时使用接口及抽象类名词的抽象使用抽象类, 例:面包 -> 食品(事实存在的)抽象类可用于约束行为:需要集成父类的全部方法形容词,动词的抽象使用接口: 例:吃饭,洗澡,睡觉 ->(非必须的)用于扩展及实现某些逻辑单例1:构造方法私有,保证不能被new代理模式享元模式...

2020-09-24 10:58:46 77

原创 面试笔记9.22 面试官:聊聊你对RPC的理解

面试笔记9.22RPC 说明:单体架构到分布式架构的演进,必不可少的会使用到rps,rpc是远程调用协议,随着系统体谅主键增大,各个系统部署在不同的机器上,致使服务间的调用需要依赖到网络通信,使用rpc服务,消费方每次调用远程服务,客户端不用关心底层网络的交互问题,大大提高了系统的可靠性。 rpc的架构包含四个核心组件 1、客户端(Client):服务调用方(服务消费者) 2、客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发

2020-09-22 22:09:11 681

原创 面试笔记9.21

面试笔记9.21Zookeeper选举机制 1,启动时 2,集群运行期间 Paxos 解决分布式系统就某个协议达成一致的方案分布式锁 解决什么问题:分布式环境下解决共享资源问题 场景:多台机器并发抢购商品 步骤1:竞争set key 锁标识 value 客户端标识(推荐uuid) 步骤2:设置有效期ttl,防止死锁,uuid只有保障上锁者有权解锁 步骤三:处理业务逻辑 步骤4:到期自动释放||逻辑结束唯一标识释放 特征 互斥性 任意时刻只有一个客户端

2020-09-21 23:58:45 1389

原创 位运算计算规则

0&0=0;0&1=0;1&0=0;1&1=1;例: 101010& 110011= 100010按位与“|”:两个相应的二进制位中只要有一个为1,该位的结果值为10|0=0;0|1=1;1|0=1;1|1=1;例: 101010| 110011= 111011按位与“^”:若参加运算的两个二进制位值相同则为0,否则为10|0=0;0|1=1;1|0=1;1|1=0;例: 101010^ 110011= 01100

2020-09-17 19:01:10 8145 3

原创 参数校验工具类,校验对象必输字段是否为空

自定义注解,用于标记必输属性名import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * <pre> * 标识某个字段是否是必填的 * </pre> */@Retention(RetentionPol

2020-09-16 17:14:48 1030

原创 sql思路解析,窗口函数

编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。±—±-------+| Id | Salary |±—±-------+| 1 | 100 || 2 | 200 || 3 | 300 |±—±-------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。±------------------------------+| getNthHighe

2020-09-05 23:38:05 275

原创 Mybatis语法积累:遍历数组集合索引取值,批量个性化修改

方法一://dao层List<OMPSItemPO> getItemList(@Param("listPara") List<Object[]> listPara); <select id="getItemList" resultType="com.faw_qm.erpcg.mps.common.persist.po.OMPSItemPO"> select a.* from OMPSItem a

2020-09-01 14:06:06 1322

原创 Java8新特性Stream

Java8filter谓词逻辑实现:逻辑可重用并行流效率最高,但是只适用无状态操作 Studert a = new Studert("1", "张三", 1, "长春"); Studert s = new Studert("2", "张三", 2, "长春"); Studert d = new Studert("1", "张三", 3, "长春"); Studert f = new Studert("1", "张三", 4,

2020-08-28 23:48:23 71

原创 测试用例

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder .getRequestAttributes()) .getRequest();

2020-08-21 15:56:55 64

原创 通过.class对象强转其他类的对象

Class<Studert> studertClass = Studert.class; Object studert = new Studert("71", "张7", 16, "北京是"); Studert cast = studertClass.cast(studert); System.out.println(cast);

2020-08-18 18:54:12 4892 1

原创 Stream流常用API

//抽取对象集合中的某个元素组成集合List<String> workerIds = withdrawList.stream().map(Student::getId).collect(Collectors.toList());//抽取对象集合中的某两个元素组成键值对存入Mapcase0:Map<String, Student> workerMap = new HashMap<>();workerList.forEach(worker -> wor...

2020-08-17 00:21:50 306

原创 反射,校验参数工具类

@RequestMapping(value = "/saveEntity", method = RequestMethod.POST) @Transactional(rollbackFor = Exception.class) public Object saveEntity(HttpServletRequest request, @RequestBody StudentPO... vo) { //定义要校验的列 String[] para...

2020-08-16 23:36:35 218

原创 ...参数接收方法,对象数组的JSON传递与接收,

@RequestMapping(value = "/saveEntity", method = RequestMethod.POST) @Transactional(rollbackFor = Exception.class) public Object saveEntity(HttpServletRequest request, @RequestBody Student... vo) { checkParam(vo,"存储对象"); String v...

2020-08-08 09:00:30 493

原创 探究MySQL语句查询方案,案例说明

深入探究MySQL查询1.查找重复的电子邮箱2.输出表中所有大国家的名称、人口和面积3.交换性别过滤电影,用到(<>, mod)1.查找重复的电子邮箱SQL架构编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你

2020-07-24 23:35:04 641

原创 MySQL索引使用策略及优化

索引使用策略及优化MySQL的优化主要分为结构优化(Scheme optimization)和查询优化(Query optimization)。本章讨论的高性能索引策略主要属于结构优化范畴。本章的内容完全基于上文的理论基础,实际上一旦理解了索引背后的机制,那么选择高性能的策略就变成了纯粹的推理,并且可以理解这些策略背后的逻辑。示例数据库为了讨论索引策略,需要一个数据量不算小的数据库作为示例。本文选用MySQL官方文档中提供的示例数据库之一:employees。这个数据库关系复杂度适中,且数据量较大。下

2020-07-21 23:42:47 157

原创 springboot对前端传入参数进行校验,@Validated

首先点进注解源码,查看可以校验的范围:加在controller层用于接收参数的实体类前面 /** * 新增岗位 */ @PreAuthorize("@ss.hasPermi('system:post:add')") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping //加在controller层用于接收参数的实体类前面 public AjaxResult

2020-07-19 19:43:51 4682 2

原创 噎翔的学习计划

springBoot 了解源码docker及阿里云镜像Linux常用操作指令及shellMySQL数据库高级 --mycatmongodb索引相关知识了解,聚合查询条件APIwebSocket的实战用法,网络编程23种设计模式学习安全框架深入 :springSecurity , ShiroNginx了解及使用若依框架复习...

2020-07-19 14:42:26 84

原创 MySQL中 and和or 同时使用时要注意的细节

and和or的再where后的放置顺序不同,得到的结果也会不同SELECT * FROM gpo_coupon WHERE id = 20 AND take_count < grant_count OR grant_count = 0SELECT * FROM gpo_coupon WHERE take_count < grant_count OR grant_count = 0 AND id = 20相同的查询条件,因为and和or使用顺序的不

2020-07-18 10:06:28 1307

原创 application.yml配置文件属性自动装配到实体类中各种数据类型写法

application.yml,配置实体类属性apps: userName: yexiang userAge: 27 happy: true birth: 1993/01/04# map: {k1: k1, k2: k2} 简便写法 map: k1: k1 k2: k2# list: [code, music ,dog] 简便写法 list: - code - music - dog dog: name: 来福

2020-07-17 23:48:32 995

原创 spring boot导出excel文件报表并发送至邮箱实现步骤

1:pom.xml文件中引入POI相关依赖 <!--POI报表--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</ver

2020-07-15 10:47:10 2021 6

原创 使用mongodb地理位置索引查询,延时索引

下面使用的mongdb图形化界面工具Robo 3T 1.3.1数据库需要有对应的地理位置索引字段查看索引loc字段为一个长度为2的数组,代表当前数据的地理位置X, Y 坐标索引类型: 2dsphere (地理位置索引)应用场景推荐: 根据用户坐标查找附近店铺或商家在Java中通过给定的位置坐标,查询出数据库20公里范围内的数据 aggregation = Aggregation.newAggregation(

2020-07-12 11:41:22 430

原创 Consul配置中心支持

Consul不仅能用来服务注册和发现,还支持Key/Value键值对的存储,可以用来做配置中心,并且支持动态刷新,这样我们可以将工程中的配置信息保存在Cosul中。在父工程:pom文件中添加坐标<!--consul配置中心组件--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-config&

2020-07-11 21:23:22 1041

原创 Spring Boot项目改造微服务

Spring Boot项目改造微服务Spring Boot项目改造微服务父工程的pom文件中添加SpringCloud的依赖管理然后添加SpringCloud依赖坐标application.yml配置文件中添加如下配置集成consul注册中心启动consul注册中心Spring Boot项目改造微服务目前项目都是基于SpringBoot去构建的,现在要集成SpringCloud,需要将两者版本进行对应避免在开发过程中出现一些不必要的麻烦,SpringBoot和SpringCloud的版本对应关系如下

2020-07-11 20:31:39 1255

原创 zookeeper选主,微服务模块高可用

zookeeperzookeeper选主介绍:在微服务模块引入相关依赖1.在服务层创建SelectMaster,作为选主组件,在类上添加@Component注解2:将SelectMaster中的zookeeper地址连接字符串配置到application.yml配置文件中注入SelectMasterzookeeper选主介绍:Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统,集群各节点争抢注册同一路径地址,谁抢到谁就是masterzookeeper基于目录监听机制来

2020-07-11 20:31:07 334

23种设计模式总结及案例.pdf

23种设计模式总结及案例.pdf

2021-01-29

空空如也

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

TA关注的人

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