自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式架构

分布式系统就是把多个计算机通过网络连接起来,然后协同工作,做到对内分解对外统一。

2023-06-02 17:29:27 787 1

原创 微信公众号开发(二)

文章目录前言一、token获取接口调用请求说明java实现二、自定义菜单三、用户信息获取数据返回java实现四、模板消息回复模板id获取发生模板消息java实现整体框架前言上篇学习了微信公众号开发的基本配置和消息的接受和回复,这篇学习微信公众号token的获取和自定义菜单栏以及微信用户信息的获取和消息模板使用。一、token获取参考文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_toke

2021-10-26 16:19:07 861

原创 微信公众号开发流程(一)

文章目录前言一、 微信公众号基本配置1、注册并登陆微信公众号2、服务器配置3、 创建微信连接检验工具包:CheckUtil4、创建controller层用来接收和返回参数二、消息的接收与处理1、接收普通消息文本消息图片消息语音消息视频消息小视频消息地理位置消息链接信息接受事件推送关注与取消关注自定义菜单栏事件2、消息接受处理XML格式处理消息接收消息处理建立消息实体消息实体基础类文本消息链接消息视频消息其他消息消息分类处理消息回复回复消息基类文本消息类图片消息类消息回复格式转换消息内容填充前言微信公众

2021-10-26 15:24:26 758

原创 mybatis缓存机制

文章目录缓存介绍一级缓存二级缓存二级缓存使用步骤二级缓存和一级缓存的区别:缓存介绍缓存主要是对查询起作用,减轻数据库的压力,提高数据库的性能mybatis中提供了一级缓存、二级缓存一级缓存是SQLSession级别的缓存,同一个SQLSession上的查询可以使用一级缓存,不同的SQLSession缓存是相互独立的,互不影响二级缓存是mapper级别的缓存,多个SQLSession会命中二级缓存,及二级缓存可以在多个SQLSession之间共享一级缓存一级缓存是SQLSession级别缓存,

2021-07-25 16:52:47 239

原创 mybatis动态代理

文章目录动态SQLif关键字where 标签where和if联合使用set标签trim标签foreach标签动态代理JDK自带动态代理动态SQL采用OGNL表达式来进行SQL的淘汰不需要的元素。根据不同的添加进行动态的SQL的组装和拼接if关键字if标签:包含test表达式 必填,通过ognl表达式进行判断,true和false,如果为真,会执行if中的SQL如果为假,则不执行if中的SQLwhere 标签where标签作用:如果where标签包含了具有返回值时,就会插入一个where,如果

2021-07-25 13:17:30 184 2

原创 netty使用

文章目录netty介绍netty特点:netty介绍网络通讯框架 mina、netty应用案例:阿里RPC框架:Dubbonetty官网:https://netty.io/netty特点:1、是高性能、异步事件驱动模型,他提供对TCP、UDP、HTTP和文件传输的支持2、使用更加高效的socket底层,对epoll空轮训引起CPU飙升问题在netty内部进行处理,避免的直接使用NIO的陷阱3、采用了多种编码、解码的支持、对TCP的粘包、分包做了自动化处理...

2021-07-24 16:24:46 131 2

原创 BIO与NIO比较

文章目录BIO 同步阻塞BIO介绍BIO的编程流程BIO实现通信实现思路:服务器:客户端:BIO 同步阻塞服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销BIO介绍Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.ioBIO(blocking I/O) : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做..

2021-07-23 21:11:22 648 1

原创 String、StringBuffer、StringBuilder介绍

文章目录String 源码分析继承关系CharSequence底层数据结构常用构造器:无参构造器入参为String类型入参为char数组类型入参为StringBuffer:入参为StringBuilder:常用方法length()equals()String 源码分析继承关系public final class String implements java.io.Serializable, Comparable<String>, CharSequencefinal修饰的类 不可

2021-07-21 19:43:27 127

原创 Redis缓存穿透、击穿、雪崩及主从复制

文章目录Redis缓存穿透概念解决方案1-布隆过滤器解决方案2-缓存空对象缓存击穿概念解决方案1-热点数据永不过期解决方案2-加互斥锁缓存雪崩概念解决方案1-Redis高可用解决方案2-限流降级解决方案3-数据预热Redis主从复制简介Redis缓存穿透查不到概念用户需要查询数据时,发现Redis中没有,也就是缓存没有命中,于是就向持久层数据库发起查询,发现也没有这个数据,于是本次查询失败。当用户很多的时候,缓存都没有命中,又会请求数据库,就会给数据库带来很大的压力,这个就是缓存穿透解决方案.

2021-07-21 18:57:02 90

原创 SSM整合使用

文章目录数据库准备# 项目结构数据库准备

2021-07-20 20:38:54 88

原创 JavaSE基础复习总结

文章目录面向对象的三大特征封装继承多态final关键字修饰属性:修饰方法:修饰类:Static关键字Static和非Static的区别变量方法代码块单例模式懒汉饿汉线程安全的懒汉静态内部类双重检查懒汉式面向对象的三大特征封装封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。继承继承是面向对象的基本特征之一,继承机制允

2021-07-20 20:35:17 94

原创 SPringMVC使用总结

文章目录SpringMVC介绍SPringMVC的运行原理各组件介绍前端控制器处理器映射器处理器适配器处理器视图解析器视图SpringMVC的使用目录结构:1.引入jar依赖2.在web.xml中配置前端控制器3、创建SpringMVC的配置文件4.将spring-mvc.xml配置文件加载到web.xml配置文件中5.编写controller层6.编写jsp页面7.部署服务SpringMVC介绍SpringMVC是属于SPring中web模块的支持一部分实现了web mvc的设计模式 进行we..

2021-07-09 09:24:53 143

原创 Spring使用总结

文章目录IOC使用IOC介绍:使用步骤:1.集成依赖:2.Spring的配置文件(Applicationcontext.xml)3.创建实体类(User)4.将实体类交给容器管理5.通过容器来获取User对象Spring对Bean的实例化与依赖注入基于xml配置形式set形式有参数构造器方式非基本数据类型注入:基于注解的形式配置注解扫描在实体类上添加注解类的注解属性的注解AOP实现AOP基于Aspectj配置的实现1.引入AOP相关依赖2.引入AOP相关约束3.业务实现类4.增强类实现5.配置对象6.配置.

2021-07-07 16:51:18 88

原创 Mybatis使用总结

文章目录前言mybatis原理mybatis流程图MyBatis原理mybatis使用流程1. 引出依赖2.配置全局配置文件(mybatis-config.xml)3.与数据库表对应pojo类(Class.java)4.Mapper接口文件(ClassMapper.java)5.配置与接口文件对应的mapper.xml文件(ClassMapper.xml)6.在全局配置文件中引入mapper配置文件7.测试方法的实现mybatis中遇到的问题及解决方法1.没有引入mysql依赖2.配置文件中数据库操作语言与

2021-07-06 14:39:28 687

原创 Redis事务

文章目录Redis事务事务命令正常执行放弃事务编译时异常执行时异常watch正常情况下使用watch当做乐观锁使用Redis事务Redis中事务可以一次执行多个命令,是一组命令的集合,一个事务中所有的命令都会被序列化,在事务的执行过程中,会按照顺序串行化执行队列中的命令Redis是一次性,顺序性,排他性的执行一个队列中的一系列命令Redis不保证原子性Redis中,单条命令的执行是原子性,但事务是不保证原子性,而且没有回滚的概念,事务中任意的命令执行失败,其他的命令是可以执行的Redis中的事务

2021-07-02 16:07:13 55

原创 Redis持久化

文章目录Redis持久化RDB(Redis DateBase)内存快照触发时机优点缺点AOF(Apended Only File)日志文件AOF回写机制优点缺点:Redis持久化Redis是内存数据库,如果不将内存中的数据保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态也就会消失,所以Redis提供了持久化的功能RDB(Redis DateBase)内存快照RDB是Redis默认的持久化方式内存快照指内存中的数据在某一时刻的状态记录,类似于拍照,将瞬间的形象记录下来。Redis将某一

2021-07-02 15:19:08 94

原创 redis.conf详解

文章目录redis.conf详解网络 NETWORK通用 GENERAL快照 SNAPSHOTTING安全 SECURITY内存管理 MEMORY MANAGEMENTAOF持久化 APPEND ONLY MODEredis.conf详解# Redis configuration file example# Note on units: when memory size is needed, it is possible to specify# it in the usual form of

2021-07-02 14:48:15 99

原创 Redis三种特殊类型

文章目录geospatial 地理空间geoadd 添加地理位置geoposgeodistgeohashgeoradiusgeoradiusbymembergeo底层hyperloglogspfaddpfcountpfmergebitmapsetbitgetbitbitcountgeospatial 地理空间城市的经纬度查询:http://www.jsons.cn/lngcodegeoadd 添加地理位置格式:geoadd key 纬度 经度 名称geopos返回给定名称的经度和纬度 格式:

2021-07-02 12:35:03 81

原创 Redis介绍

文章目录Redis基本概念Redis基本操作Redis服务端启动:Redis客户端启动:Redis关闭 :切换数据库:查看数据库大小查看所有的keys清空数据库Redis是单线程Redis五种基本数据类型1、字符串 stringset getexistsappendstrlenincr decrincrby decrbygetrangesetrangesetex ttlsetnx2、列表 list3、 集合 set4、哈希 hash5、有序集合 zsetRedis基本概念Redis是一个开源的(B

2021-07-01 23:28:18 51

原创 线程的状态及方法

文章目录新建状态(NEW)就绪状态(RUNNABLE)运行状态(RUNNING)阻塞状态(BLOCKED)等待状态(WAITING)睡眠等待(TIMED_WAITING)终止状态(TERMINATED)线程状态转换线程方法start():启动线程run():子线程执行体yield():线程让步sleep():线程睡眠join():线程同步# 线程的状态及状态转换## 线程状态jdk中提供了线程的状态,在Thread类中提供了一个内部的枚举类:Statepublic enum State {

2021-07-01 23:20:33 1113

原创 基础网络总结

文章目录OSI参考模型物理层:数据链路层:网络层:传输层:会话层:表示层:应用层:TCP/IP协议族网络接口层网络互连层(IP层)传输层(TCP层)应用层各层协议简介应用层传输层网络层链路层数据包数据处理流程# 网络概述计算机网络指通过传输介质、通信设备和网络通信协议,将分散在不同地点的计算机互联起来,实现资源功能共享和数据传输的系统传输介质:光纤、线缆...通信设备:路由器、猫、交换机...网络通信协议:http、tcp、ip...网络编程:就是指编写程序使互联网中两个或者多个设备直接进..

2021-06-22 19:43:24 410 2

转载 JVM调优

文章目录前言:JVM参数配置标准参数前言:我们学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上JVM参数配置在Java虚拟机的参数中,有3种表示方法标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可

2021-06-22 16:43:51 52

转载 Java内存模型

文章目录Java内存布局介绍程序计数器:虚拟机栈本地方法栈堆方法区示例:new Object()过程Java内存布局介绍Java内存布局共有 5 大块,它们分别是堆区(Java Heap)、虚拟机栈(Virtual Machine Stacks)、本地方法栈(Native Method Stacks)、元空间(Meta Spaces)、程序计数器(Program Counter Register)。程序计数器:特点:占用的 JVM 内存空间较小每个线程生命周期内独享自己的程序计数器(内..

2021-06-16 15:21:59 59

原创 mysql优化

文章目录mysql的优化方式:1、设计:存储引擎:字段类型选择范式与逆范式mysql的优化方式:MYSQL优化主要分为以下四大方面:1、设计:存储引擎:存储引擎是一种用来存储MySQL中对象(记录和索引)的一种特定的结构(文件结构),处于MySQL服务器的最底层,直接存储数据。导致上层的操作,依赖于存储引擎的选择。面对不同业务选择合适的存储引擎innodb擅长事务、数据的完整性及高并发处理,不擅长快速插入(插入前要排序,消耗时间)和检索。myisam:高速查询及插入。擅长插入和查询。..

2021-06-16 12:03:25 48

转载 JVM介绍

文章目录JVM概念Java的跨平台性JRE/JDK/JVM是什么关系JVM生命周期JVM的工作过程类加载的子系统类加载时机类加载器双亲委派模型类加载的详细过程运行时数据区域(JMM)执行引擎JVM概念JVM,即 Java Virtual Machine,Java 虚拟机JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器..

2021-06-16 12:03:02 143

原创 MYSQL事务特点

文章目录事务的定义:事务的特征(ACID):事务的原子性(Atomic)事务的一致性(Consistency)事务的隔离性(Isolation)事务的持久性(Durability)事务的使用1、查看事务:select @@autocommit2、事务设置:set autocommit3、事务操作3.1、开启事务:begin或start transaction3.2 事务提交:commit3.3、事务回滚:rollback3.4、保存点:savepoint point14、查看隔离级别:select @@..

2021-06-15 15:34:30 119

原创 MySQL存储引擎介绍

文章目录各存储引擎介绍INNODBMyISAMmomery存储引擎相关命令查看存储引擎创建表时指定存储引擎修改表的存储引擎MyISAM和InnoDB区别MyISAM和INNODB存储引擎使用的锁各存储引擎介绍MySQL中的存储引擎常用的INNODB和MyISQAM,其次是memoryMySQL默认支持的是INNODBINNODBINNODB存储引擎提供了具有提交、回滚等事务功能,支持自动增长列,外键等功能,INNODB采用聚集索引,索引和数据是存储在同一个文件下,所以INNODB的表在磁盘上.

2021-06-15 12:45:22 52

原创 MySQL索引介绍

文章目录索引索引是什么?索引分类:索引SQL1、创建表时可以创建索引2、在已有表上添加索引索引索引是什么?索引是一种数据结构,索引是创建在表上,是对数据库表中的一列或者多列的值进行排序的一种结果,索引能提高查询效率,避免全表查询索引分类:1.普通索引:没有任何限制条件,可以给表中的任何的字段创建索引2.唯一性索引:使用unique修饰的字段,值是不能重复的,主键索引就属于唯一性索引3.主键索引:使用primark key修饰的字段会自动添加主键索引4.全文索引:使用fulltext修..

2021-06-15 12:24:22 85

原创 MySQL基础语句总结

SQL分类:DDL 数据定义语言(CREATE,ALTER,DROP,DECLARE)DML数据操作语言(SELECT,DELETE,UPDATE,INSERT)DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)DDL 数据定义语言:创建数据库:CREATE DATABASE database-name;删除数据库:drop database name;创建新表:create table name(columnName dataType(length),…

2021-06-11 14:10:53 201

原创 多线程的创建

进程和线程进程是计算机正在运行的一个独立的应用程序,进程是一个动态的概念,必须是运行状态,如果一个应用程序没有启动,那就不是一个进程线程就是组成进程的基本单位,可以完成特定的功能,一个进程是一个或者多个线程组成的进程和线程的区别1.内存空间的区别进程是有独立空间的,在线程创建时就会分配的空间(例如:堆)线程有共享空间,也有独立空间2.安全性进程之间是相互独立的,一个进程的崩溃不会影响到其他的进程,进程和进程之间是安全的线程之间存在内存共享,一个线程的崩溃可能会影响到其他线程的执行,线程

2021-06-11 10:30:09 69 2

原创 ConcurrentHashMap介绍

ConcurrentHashMapConcurrentHashMap底层原理:ConcurrentHashMap底层数据结构和HashMap差不多 ,而是在产生Hash冲突时使用synchronized加锁来 和CAS模式来保证线程的安全! CAS + synchronized + Node + 红黑树ConcurrentHashMap的重要属性:private transient volatile int sizeCtl;当sizeCtl当为负数时,-1 表示正在初始化,-N 表示 N -

2021-06-07 20:29:05 104 1

原创 IO流之过滤流介绍:

过滤流:IO流按功能分类可以分为节点流和过滤流,节点流是用来直接操作目标设备的流,比如我们前面介绍的FileReader、FileWriter、FileInputStream、FileOutputStream,而过滤流是对应已存在的流进行包装,以提供更强大和灵活的读写功能。转换流:将字节流和字符流进行相互转换的高级流:InputStreamReader :将字节输入流转换为字符输入流OutputStreamWriter:将字节输出流转换成字符输出流public class OutputStrea

2021-06-05 11:22:36 196

转载 IO流中的设计模式

文章目录一、装饰器模式Decorator装饰器:代码实现装饰器特点装饰器在IO流中的使用总结:适配器模式Adapter适配器代码实例适配器特点适配器优缺点适配器在IO中的使用一、装饰器模式Decorator装饰器:装饰模式是在不必改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。注意其中的几点:• 不改变原类文件• 不使用继承• 动态扩展Component:为统一接口,也是装饰类和被装饰类的基本类型。Concrete..

2021-06-03 17:59:50 359

原创 对象流及序列化

文章目录前言对象流序列化:序列化的特点:serialVersionUID:序列化版本号序列化的过程反序列化:反序列化的过程:补充:前言使用对象和磁盘打交道的IO类是ObjectInputStream和ObjectOutputStream而序列化和反序列化是对象是否可以使用对象流的关键对象流ObjectInputStream:对象输入流:存入到磁盘中一个对象实体ObjectOutputStream:对象输出流:从瓷盘中取出一个对象实体注意:对象流操作的对象需要 实现序列化。序列化:..

2021-06-03 14:33:36 101

原创 字节流和字符流介绍

文章目录前言一、字节输入流:InputStream继承关系:核心方法:实现类FileInputStream:二、字节输出流:OutputStream继承关系:核心方法:实现类FileInputStream:三、Reader:字符输入流继承关系:核心方法:实现类FileReader:四、Writer:字符输出流继承关系:核心方法:FileWriter:文件输出流:总结前言字节流是以byte为单位进行读取,字符流是以char为单位进行读取。他们都是节点流:用于直接操作目标设备的流。下面我们对比着对下列..

2021-06-03 14:07:06 1262

转载 File类及相关方法介绍

File类File类主要作用是对文件和目录的抽象表示,该类主要是对目录和文件进行创建、修改、删除、过滤等操作File的构造器:File(String pathname) //将路径字符串实例化File实例File(String parent, String child)// 从父路径名和子路径名来构建file实例File(File parent, String child) //根据父路径File实例和子路径名来构建实例绝对路径和相对路径绝对路径:从盘符开始的路径,表示一个完整的路径 (w

2021-06-03 13:22:53 106

原创 Queue接口及是实现类PriorityQueue介绍

文章目录前言一、Queue接口Queue接口的特点:QueueAPI的方法:二、PriorityQueue构造器扩容机制:方法:add()和offer()remove(Object o)和poll()element()和peek()top K问题总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、Queue接口数据可重复,保证有序性(基于数据类型)、不可以存储null。Queue接口的特点:队列的主要特点是在基本的集合方法之外,还提供特殊的插入、获取和检验操作。每个操作都提供两个..

2021-06-02 22:37:25 343

原创 Set接口介绍

文章目录前言一、Set接口:1.Set接口特点:2.Set的实现类:Set接口提供的方法API:二、HashSet1.HashSet的特点:2.HashSet的属性:3.HashSet的构造函数:4.HashSet方法:三、LinkedHashSet:1.LinkedHashSet的特点:2.LinkedHashSet的继承关系和构造器:3、LinkedHastSet的应用场景:四、TreeSet1.TreeSet的特点:2.属性:3.构造器方法总结前言Set接口是Collection接口的子类,..

2021-06-02 17:01:01 3534

原创 WeakHashMap和四种引用总结:

WeakHashMap当一个键对象被GC(垃圾回收)回收时,响应的值对象的引用从map中删除,WeakHashMap能节约存储空间,来实现缓存那些非必要的数据四种类型的引用:强运用(Srtrong):不管如何都不会被GC回收,当jvm内存空间不足,JVM宁愿抛出OOM运行时错误,使得程序终止,也不会随时回收强引用所引用的对象通过new出来的对象都是强引用软引用(SoftReference)当内存空间充足时软引用的对象不会被GC回收 当内存空间不足时软引用的对象可以被GC回收 Object o

2021-06-01 20:37:17 84

原创 LinKedHashMap和TreeMap介绍

文章目录前言一、LinKedHashMap源码分析:继承关系:属性:构造器:私有内部类put 方法:LinKedHashMap总结二、TreeMap源码分析:继承关系:属性:构造器:私有内部类方法:TreeMap总结:前言我们对LinKedHashMap和TreeMap研究都是基于HashMap为参考来研究一下他们独有的特点,和维护这些特点的方法。提示:以下是本篇文章正文内容,下面案例可供参考一、LinKedHashMap源码分析:LinKedHashMap继承自HashMap<K,V

2021-06-01 20:28:20 2722

空空如也

空空如也

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

TA关注的人

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