- 博客(67)
- 收藏
- 关注
原创 抖音 -抖店开放平台 SDK 实现及项目工程
抖音 - 抖店开放平台 SDK抖音 - 抖店开放平台:https://op.jinritemai.com/该 SDK 已实现 API 接口调用和消息推送验证解析项目地址github: https://github.com/Chengqb/doudian-opengitee: https://gitee.com/chengqb/doudian-open项目结构common-rocketmq: 根据 阿里 com.aliyun.openservices 的 ons-client 第三方依赖,自定
2021-09-01 17:28:48 10518 2
原创 类的加载机制、bean的生命周期、servlet的生命周期
1、类的加载机制 1)类加载的触发情况 (1)调用 new 方法 (2)调用 loadclass 方法、forname 方法 (3)访问静态变量或者为静态变量赋值 (4)调用静态方法 (5)通过反射进行创建类的实例 (6)创建其子类的实例 2)类的加载顺序:验证、准备、解析并称为链接;准备步骤有可能在初始化之后(动态绑定机制) (1)加载:java类加载器通过 完全限定名 的方式查找到对应的在字节码文件( java 编译器编译
2020-11-30 16:06:29 470
原创 面试中部分RabbitMQ问题
rabbitMQ问题1:为什么要使用rabbitMQ? 1、任务异步处理(不重要并且耗时长的操作,需要异步处理) 2、应用程序解耦合 3、削峰填谷(对并发量而言,如数据库并发量)rabbitMQ问题2:rabbitMQ的使用场景? 用户注册时,短信提醒; 用户下单快超时,邮件提醒; 用户确认评价功能,后续需添加赠送积分功能; 金牛的下单计算佣金rabbitMQ问题3:rabbitMQ的实现方式? AMQP: 一种链接协议 JMS: JavaMes
2020-11-25 16:33:11 287
原创 面试中部分redis问题
redis问题1:redis应用场景?string类型: 金牛中会有一些新手教程文章等,需计算阅读量,使用string类型;token、验证码;incr指令的原子性hash类型: 恒鲜生中会有购物车的需求,就是依靠hash类型实现的,hash类型存储对象list类型: 金牛中商品列表、文章列表等,利用lrange很方便实现数据量大的分页,任务队列(确保先后顺序)set类型: 共同关注,共同好友等,利用set类型中的交集处理zset类型: 金牛中的排行榜小程序、订单超时处理;利用了zset的分值进行
2020-11-19 16:45:22 188
原创 几道最基础面试题
几道最基础面试题一、方法的参数传递 1、值传递与引用传递的理解二、== 与 equals三、String 的各类比较四、普通代码块、构造方法五、静态代码块、普通代码块、构造方法六、linux的常用命令一、方法的参数传递 1、值传递与引用传递的理解 个人认为:不存在引用传递,均是值传递 如下图所示代码: 对应的输出结果是: 值传递: 传...
2020-04-27 17:32:18 1567
原创 基于redis的分布式锁逐步解析
基于redis的分布式锁一、分布式锁的使用场景 1、普通锁的使用与弊端 2、逐步进阶的解析基于redis的分布式锁 1)相关的redis知识点 2)最初级的redis分布式锁 3)第二级的redis分布式锁 4)第三级的redis分布式锁 5)第四级的redis分布式锁 6)第五级的redis分布式锁一、分布式锁的使用场景互联网秒杀抢...
2020-04-25 11:40:31 507
原创 java 内存模型JMM解析
java 内存模型JMM解析一、CPU多核并发缓存架构解析 1、以往的内存读取 2、后来的内存读取二、java内存模型实现原理三、深入理解volatile关键字四、并发编程的可见性、原子性和有序性一、CPU多核并发缓存架构解析 1、以往的内存读取读取读取主内存数据存储于硬盘CPU 存在的问题就是,主内存的运行速度严重限制了CPU的效率 2、后来的内存读取读取读取...
2020-04-09 14:51:39 585
原创 JDK体系和JVM架构(内存、垃圾回收、简单的优化)
JDK体系和JVM架构(内存、垃圾回收、简单的优化)一、JDK、JRE、JVM关系图解二、JVM虚拟机 1、JVM虚拟机的组成 2、运行时数据区(内存模型) 1)堆(heap) 2)栈(stack) 3)程序计数器 4)字节码执行引擎 5)方法区(元空间) 6)本地方法栈三、垃圾回收与简单优化(包含堆内存具体流程) 1、堆中对象的流转 ...
2020-04-03 18:05:07 714
转载 JVM指令手册
JVM指令手册一、栈和局部变量操作1、将常量压入栈的指令2、从栈中的局部变量中装载值的指令3、将栈中的值存入局部变量的指令4、通用(无类型)栈操作5、类型转换6、整数运算二、逻辑运算1、移位操作2、按位布尔运算3、浮点运算三、对象和数组1、对象操作指令2、数组操作指令四、控制流1、条件分支指令2、比较指令3、无条件转移指令4、表跳转指令五、异常六、方法调用与返回1、方法调用指令2、方法返回指令3、...
2020-04-03 14:49:18 775
原创 MySQL的存储引擎对索引的实现
MySQL的存储引擎对索引的实现一、myisam存储引擎二、innodb存储引擎 MySQL中,常用的两种存储引擎是myisam和innodb MySQL中,将表结构、表数据、表索引统一存放在了磁盘中的同一目录下,MySQL安装目录下的data文件夹下,以库进行文件夹划分 存储引擎,是形容表的,并非是库一、myisam存储引擎 表结构:.frm文件 表数据:.MYD...
2020-04-01 17:57:55 258
原创 MySQL的索引原理
MySQL的索引原理一、索引的本质解析 1、磁盘存储与内存存储 2、MySQL数据的存储 3、使用索引存储 1)二叉查找树存储 2)红黑树存储 3)B-Tree存储 4)B+Tree存储 5)Hash表存储一、索引的本质解析 索引: 是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构: 二叉查找树、红黑树、Hash表、B-...
2020-04-01 17:28:19 256
原创 Linux下载安装Docker
Linux下载安装Docker在 Linux上 安装 Docker安装 Docker Compose在 Windows/Mac 上安装 Docker由于国外网站的原因,在下载Docker时经常速度过慢;这边整理一下国内Docker相关的网址下载在 Linux上 安装 DockerDocker 的 安装资源文件 存放在Amazon S3,会间歇性连接失败。所以安装Docker的时候,会比较慢。...
2020-03-30 16:39:09 635
原创 SpringCloud快速入门及其部分组件
SpringCloud快速入门及其部分组件一、SpringCloud大致图解二、GateWay网关二、Eureka注册中心三、Ribbon负载均衡四、Hystrix熔断器五、OpenFeign六、Config配置中心七、Bus消息总线一、SpringCloud大致图解二、GateWay网关 1)核心:一系列过滤器 2)核心功能:过滤、路由 3)核心概念: 4)代码实...
2020-03-26 11:51:35 352
原创 服务调用方试
服务调用方式1、RPC2、HTTP1、RPC 基于socker,速度快,效率高;代表:webService、dubbo2、HTTP 基于TCP协议;封装比较臃肿;对服务和调用方没有任何技术、语言的限定;自由灵活,更加符合微服务的理念;代表:Rest API、SpringCloud 通过以下三种 http 客户端的工具类包,可以进行 http 服务调用 httpCli...
2020-03-26 11:16:48 234
原创 系统架构演变概述
系统架构演变概述1、集中式架构2、垂直拆分3、分布式服务4、面向服务架构(SOA架构)5、微服务架构1、集中式架构 当系统流量小的时候,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本优点缺点系统开发速度快代码耦合度高,后期维护困难维护成本低无法针对不同模块进行针对性优化适用于并发要求较低的系统无法水平扩展单点容错率低,并发能力差...
2020-03-26 11:12:38 553
原创 ElasticSearch快速入门
ElasticSearch学习一、搜索与ElasticSearch1、什么是搜索2、数据库搜索3、什么是全文检索和Lucene4、什么是ElasticSearch5、ElasticSearch的功能、适用场景、特点6、ElasticSearch的核心概念7、ElasticSearch、Kibana的安装、启动(两者版本要一样)二、快速入门案例实战之电商网站商品管理1、集群健康检查、 CRUD操作(...
2020-03-26 10:57:10 614
翻译 通过IDEA快速定位和排除依赖冲突
通过IDEA快速定位和排除依赖冲突一、前言二、异常发生三、异常定位四、排除冲突五、总结一、前言 我们程序员在开发的时候经常会遇到各种各样的 BUG 问题,其中大部分是业务逻辑异常,还有一些是代码书写不规范造成的异常例如:NullPointException(NPE),IndexOutOfBoundsException 等等,其实这些我们都好定位和修复。但是还有一些运行时异常定位起来是特别头...
2020-01-20 09:57:33 1240
翻译 MySQL新增用户及赋予权限
MySQL新增用户及赋予权限创建用户查看用户权限赋予用户权限收回用户权限删除用户创建用户注: 在创建用户时,可能会报1396错误;此时,需要先 drop user 'username' ;尽管要创建的用户原本不存在,也可能报此错误# 创建用户需要操作 mysql 表 USE mysql;# 语法格式为如下([]:表示可选):注意,在 'username' 与 'host' 之间需要加上@...
2020-01-10 10:58:55 337
原创 java 限流器实现
java 限流器实现目录一、目的二、基本思路三、具体实现一、目的 并发问题处理:单位时间内请求次数过多,访问量较大时,报错提示用户。往往需要进行限流(每一秒限制请求几次)二、基本思路 使用 redis 缓存加 scheduler 定时器进行实现; 以每一小时为处理的时间单位,以每一秒为 job 的启动间隔; 在一小时内,为每一秒都分配一定的令牌数量(即限流的次数); ...
2019-09-21 14:09:32 4355 3
原创 scheduler 定时器注意事项
注意事项: scheduler 定时器只有在一个 job 运行完成之后,才开始计算下一个时间点 如:设置每 1 秒运行一次 job 而 job 使用了 Thread.sleep() 和 for 循环 3600 次,即每次 job 需运行 1 小时 此时,scheduler 定时器运行第一次 job ,会等到 1小时后 job 第一次运行完成后,才开始计算 ...
2019-09-21 11:59:19 465
原创 mongodb的分组求和(使用aggregate方法)
注意点: 1、要使用该管道方法,spring-data-mongodb 必须 是 1.10.10 版本以上 2、mongo数据库存储的是文档,就像java的.class文件;故而建议字段多单词时,使用驼峰命名 3、在此方法中,需特别注意的是字段映射问题,建议 java对象和mongo数据库 均 使用驼峰命名法(以避免映射问题) 结果如下:解读: ...
2019-07-25 08:47:47 21733 4
原创 MySQL: 1205时间超时解决
解决办法: 1、查询出可能死锁的线程 SELECT * FROM information_schema.innodb_trx 2、杀死线程 //杀死进程 kill trx_mysql_thread_id(字段值)
2019-07-13 16:28:05 536
原创 个人笔记
个人笔记目录1、MyBatis的sql文2、开发逻辑3、对象4、接口文档1、MyBatis的sql文 (1)基础的4条 insert、update、get(单条)、delete,严格固定 是根据表主键id操作,同时是包含 所有字段 (包括创建者、创建时间、最后更新者、最后更新时间); (2)其次,一旦出现其他的sql语句,则用其他命名;2、开发逻辑 (1)MyBatis的 x...
2019-07-05 11:21:19 264
原创 枚举类型与自定义异常
枚举类型与自定义异常目录1、定义响应码与响应消息枚举型2、自定义异常(1)服务异常(2)业务异常3、自定义异常使用注: 个人认为一个项目中,最好有2个自定义异常;一个是 服务 异常,一个是 业务 异常1、定义响应码与响应消息枚举型 package com.xxx.xxx; /** * @Auther: Chengqb * @Date: 2019/6/27 8:40 */ ...
2019-06-27 09:07:56 2375
原创 MyBatis的xml文件中主键操作
<!-- 新增 --> <insert id="insert" parameterType="com.xxx.xxx.MiniPollingImage" useGeneratedKeys="true" keyProperty="id"> <selectKey keyColumn="id" keyProperty="id" resultType...
2019-06-03 17:50:10 3622
原创 前后端分离的登录:token机制
随着互联网的不断发展,技术的迭代也非常之快。我们的用户认证也从刚开始的 用户名密码 转变到 基于cookie的session认证 ,然而到了今天,这种认证已经不能满足与我们的业务需求了( 分布式,微服务 )。我们采用了另外一种认证方式: 基于token的认证一、与cookie相比较的优势: 1、支持跨域访问 ,将token置于请求头中,而cookie是不支持跨域访问的; 2、无...
2019-05-30 21:04:59 14168 14
原创 微信小程序获取各类信息(openid、session_key以及用户基本信息、解密unionId、手机号)及登录机制
微信小程序获取openid、session_key以及解密unionId、手机号的目录1、了解小程序启动时的文件加载顺序2、了解小程序自身的API3、发起网络请求与弹窗4、获取openid、session_key5、解密unionId6、解密手机号7、获取用户基本信息1、了解小程序启动时的文件加载顺序 在小程序编译启动时: 先加载app.json中的一些变量定义 再执...
2019-05-30 16:59:23 31721 9
原创 Java获取openid、session_key以及解密用户私密数据(UnionId或手机号)
Java获取openid、session_key以及解密用户私密数据目录1、引入依赖包2、创建工具类(2个:HTTP请求工具类与解密工具类)3、获取openid和session_key(后端)4、解密(后端)1、引入依赖包 在开始解密之前,需先引入org.bouncycastle:bcprov-jdk16-1.46.jar (1)直接下载 jar包,放入 本机 jre/lib/e...
2019-05-29 14:31:42 9809 3
原创 Java后端发起http请求第三方接口(路径)
package com.xxx.xxx.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;...
2019-05-28 21:16:22 14093 2
原创 spring-data-mongodb的增删改查操作(MongoTemplate方式)
spring-data-mongodb的增删改查操作目录一、架包 1、所需架包 2、注入MongoTemplate 3、获取集合() 4、增加操作(插入) 5、删除操作 6、修改操作 7、查询操作一、架包 1、所需架包 <!-- spring整合MongoDB --> <dependency> <groupId>org...
2019-05-27 15:11:32 12974 4
原创 maven下载依赖包报错 Failed to read artifact descriptor for com.xxx:test-interface:jar:1.0.0
目录一、报错情形 1、项目构架 2、报错信息 3、分析错误二、错误解决 1、原因一解决方案 2、原因二解决方案 3、解决如图一、报错情形 1、项目构架 存在三个功能模块(各自独立的),有功能模块 test 、test1、test2 test中存在test-interface子模块,test1中存在test1-interface子模块,test2中...
2019-05-22 11:06:33 2868 6
原创 多线程
多线程目录一、进程的概念二、线程的概念三、主线程的概念四、多线程的原理五、多线程原理的内存图解六、Thread类与Runnable接口的区别(就是Runnable的好处,推荐)七、并发与并行八、线程优先级(java当中的CPU执行是抢占式调度的)九、线程安全注意: 多线程创建的两种方法:Thread类、Runnable接口)一、进程的概念二、线程的概念三、主线程的概念四、多线程的原...
2019-05-18 09:16:04 229
原创 更多开发小插件(小框架 / 架包)
更多开发小插件(小框架 / 架包)目录 1、actuator架包 2、quartz任务调度框架 3、MyBatis的pagehelper分页 1、actuator架包 详细教程 2、quartz任务调度框架 详细教程 3、MyBatis的pagehelper分页 详细教程...
2019-05-18 09:05:30 291
原创 如何查看与解决端口占用
1、开始---->运行---->cmd,或者是window+R组合键,调出命令窗口2、输入命令:netstat -aon|findstr “端口号”,在本地地址中找到想找的端口号,记下其对应的PID3、输入tasklist|findstr “PID”,回车,查看是哪个进程或者程序占用了这个PID 或者打开任务管理器,切换到进程选项卡,在PID一列查看对应的进程是谁 ...
2019-05-18 08:59:00 317
原创 SpringBoot的定时器
SpringBoot的定时器目录 1、SpringBoot使用@Scheduled定时器任务(开启定时器任务) 2、定时任务具体实现类(例子) 3、@Scheduled参数描述 4、cron规则注意: 需要在定时任务的类上加上注释:@Component,在具体的定时任务方法上加上注释@Scheduled即可启动该定时任务。 1、SpringBoot使用@Scheduled定...
2019-05-18 08:48:50 672
原创 pom.xml文件中nonFilteredFileExtension标签
maven打包项目的时候pom.xml配置文件里可以配置对项目进行统一编码,但是部分文件 可能不需要进行重新编码,例如: 证书文件;重新编码后可能导致证书不可用。 需要过滤掉不需要编码的文件:过滤后缀为.crt或者.p8的所有文件,不对其进行统一编码。 <nonFilteredFileExtensions> <nonFilteredFileExtensi...
2019-05-17 11:18:17 14933 1
原创 AOP编程(面向切面编程)
AOP编程(面向切面编程)目录一、类与切面的比较二、AOP编程的相关概念三、AOP编程的五种增强通知四、AOP编程的使用 详细讲解一、类与切面的比较 1、面向对象编程(OOP):操作对象即为类; 面向切面编程(AOP):操作对象即为切面。 类是纵向的,而切面是横向的。 当多个类中有相同部分并需要对该部分操作时;如果是面向对象编程,则需要获取所有类,进而获取部分进行操作...
2019-05-17 11:07:41 439
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人