自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 16进制与byte数组互转

一个十六进制数(Hex),正好为4个二进制位。一个字节(byte)为8个二进制位。因此,一个字节可表示为两个十六进制数字。我们可以将一个byte用两个Hex表示,同理,我们也可以将两个Hex转换为一个byte。private static final char[] HEX_CHARS = {'0','1','2','3','4','5','6','7','8','9','a',...

2019-09-25 16:56:39 10808

原创 JDK1.8 HashMap

人狠话不多,菜就完了!public static void main(String[] args) { HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("1", "A"); hashMap.put("1", "B"); hashMap.put("2", "C"); System.out.println(hashMap.get("1"));}HashMap中定义

2021-01-17 13:06:28 233

原创 国密sm4加密算法

国密sm4加解密算法工具类,可用于生产环境package com.example.demo.endecryption.utils;import org.apache.commons.codec.binary.Base64;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.BadPa...

2020-04-29 09:21:08 11187 7

原创 Windows下Mycat实现分库分表(简单实现)

深入理解Mycat的使用可阅读官方文档Mycat权威指南:[http://www.mycat.io/document/mycat-definitive-guide.pdf]Mycat下载地址:http://mycat.io,根据自己需要选择Linux版或Windows版下载完成后解压,以管理员身份运行cmd,进入到bin目录下运行以下命令启动Mycat1:mycat.bat inst...

2020-03-08 19:05:05 586

原创 Mybatis 一级缓存 二级缓存

mybatis缓存分为一级缓存和二级缓存一级缓存:一级缓存存在于 SqlSession 的生命周期中,在同一个 SqlSession 中查询时, MyBatis会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个 Map对象中。如果同一个 SqlSession 中执行的方法和参数完全一致,那么通过算法会生成相同的键值,当 Map 缓存对象中己经存在该键值时,则会返回缓...

2020-02-17 07:05:31 146

原创 Mybatis Generator逆向工程简单配置文件

配置文件config.propertiesjdbc.driverClass=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/user_center?nullCatalogMeansCurrent=truejdbc.user=rootjdbc.password=root123project_src =src/m...

2020-02-16 17:03:03 148

原创 分布式锁-zoomkeeper锁【享学课堂】

public class ZookeeperDistrbuteLock extends ZookeeperAbstractLock { // zk连接地址 private static final String CONNECTSTRING = "127.0.0.1:2181"; // 创建zk连接 private ZkClient zkClient = new Zk...

2020-02-14 21:13:56 8352

原创 Redis常见的应用场景

redis作为一个键值对的数据库,其常用的数据类型有5种:字符串类型(String),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)应用场景分布式锁(String)分布式锁的实现主要有3中方案:zoomkeeper的zk锁、数据库锁以及redis锁。redis锁采用setnex命令实现。setnex key value:当key不存在时,将k...

2020-02-14 11:23:21 273

原创 阻塞队列 BlockingQueue【享学课堂】

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIF...

2019-11-29 15:15:32 213

原创 Callable、Future 和 FutureTask【享学堂】

Runnable 是一个接口,在它里面只声明了一个 run()方法,由于 run()方法返回值为 void类型,所以在执行完任务之后无法返回任何结果。Callable 位于 java.util.concurrent 包下,它也是一个接口,在它里面也只声明了一个方法,只不过这个方法叫做call(),这是一个泛型接口,call()函数返回的类型就是传递进来的 V 类型。Future ...

2019-11-12 20:49:02 149

原创 并发编程-ForkJoin【享学】

Fork-Joinjava下多线程的开发可以启用多线程,线程池,还可以使用forkjoin, forkjoin 可以让我们不去了解诸如Thread,Runnable 等相关的知识,只要遵循 forkjoin 的开发模式,就可以写出很好的多线程并发程序。分而治之forkjoin 在处理分而治之的问题非常有用。十大计算机经典算法:快速排序、堆排序、归并排序、二分查找、线性查找、 深度优先、...

2019-11-12 15:46:15 211

原创 导出csv文件【多文件导出zip包】

问题之前在项目中导出数据都是用的excel,但是随着生产数据量的增大,excel已经无法满足实际业务的需要。主要问题是如果一次性导出的数据过于庞大,excel格式导出速度慢,且存在内存被撑爆的可能。综合考虑采用csv格式导出,动态设定每个csv文件的数据条数,多个csv文件打成zip包。/** 采用apache commons cvs*导出csv文件,设定每个文件的最大数量,多个csv文...

2019-11-11 15:47:26 827

原创 归并排序

归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。算法描述归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放...

2019-11-08 15:51:24 120

原创 堆排序

一、算法基本思想(1)基本思想堆排序的基本思想就是:从最大(小)堆得顶部不断取走堆顶元素放到有序序列中,直到堆的元素被全部取完。堆排序完全依赖于最大(小)堆的相关操作。(2)运行过程堆排序算法的运作如下:1、创建一个最大(小)堆H;2、把堆首和堆尾元素互换;3、把堆的大小减1,重新构造一个最大(小)堆;4、重复步骤2、3,直到堆的大小减少为1。(3)最大堆的构建(4)堆排序过...

2019-11-08 15:46:48 102

原创 快速排序

快速排序算法思想在数组中选取一个数(一般都是选第一个数),分别与其它的每一个数比较,把比这个数小的数放到它的前面,比他大的数放到它的后面,此时数组分成两部分,该数前面的都比它小,后面的都比它大,然后分别对这两部分递归排序算法,就可以实现整个数组的排序。/**任取一个元素 (如第一个) 为中心*所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表;*对各子表重新选择中心元...

2019-11-08 15:35:40 102

原创 MySQL主从复制

复制原理复制过程master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件,binary log events;slave将master的binary log events拷贝到它的中继日志(relay log);slave重做中继日志中的事件,将改变应用到自己的数据中。MySQL复制是异步的且串行化的复制基本原则每个slave只有一个maste...

2019-11-03 20:54:55 108

原创 MySQL - 锁

MySQL中,MyISAM是表级锁,InnoDB是行级锁读锁【共享锁】针对同一份数据,多个读操作可以同时进行而不会互相影响写锁【排它锁】当前写操作没有完成前,它会阻断其他写锁和读锁表锁手动给添加表锁--查看表锁SHOW OPEN TABLES;-- 加表锁LOCK TABLE 表名1,表名2... read|write;-- 释放锁UNLOCK TABLES;...

2019-11-03 19:05:39 88

原创 MySQL-SQL性能优化

性能下降 SQL执行慢查询SQL写的烂索引失效:没有建索引或索引没有使用,符合索引使用不正确 - 单索引:CREATE INDEX t_sm_user_name ON user(name); - 复合索引: CREATE INDEX t_sm_user_name_age_tel ON user(name,age,tel);关联查询join太多SQL的加载顺序 1. ...

2019-10-24 22:15:12 213

原创 MySQL-函数

函数 函数和call语句类似,但存储过程可以没有返回值,也可以有一个或多个返回值,函数必须有返回值,且只能有一个返回值-- 创建语法: 参数=参数+参数类型DELIMITER 结束符CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数体END 结束符-- 调用语法SELECT 函数名(参数列表) 结束符案例DELIMITER...

2019-10-21 21:59:57 168

原创 MySQL-存储过程

变量系统变量 全局变量:服务器重启,全局变量都会恢复默认值,如果想要永久生效,需修改配置文件 会话变量:只对当前session有效,如使用navicat,新建一个查询页就是一个新的会话-- 查看全局变量SHOW GLOBAL VARIABLES;-- 查看会话变量 SESSION可省略SHOW SESSION VARIABLES;-- 查看指定的变量 SESSION可省略S...

2019-10-20 18:59:42 121

原创 MySQL-语法

多表更新update user u,left join order o on u.id = o.id set u.address = 'Chian',o.paymod = '支付宝';多表删除【级联删除】--delete后面跟上需要删除数据的表,例:只删订单表数据,则delete后面无需跟user表delete u,o from user u left join order o...

2019-10-19 15:00:58 107

原创 MYSQL-函数

单行函数-- 字符函数-- 拼接字符串SELECT CONCAT(email,nick_name) from user;-- 列转行SELECT GROUP_CONCAT(email) from user;-- 列转行SELECT group_CONCAT(email) from `user`;-- bcd 从第二个字符开始截取SELECT SUBSTR('abcd...

2019-10-14 00:20:51 153

原创 设计模式-装饰者模式

装饰者模式定义 指在不改变原有对象的基础上,将功能附加到对象上,提供了比继承更有弹性的替代方式适应场景 1.用于扩展类的功能或添加附加属性 2.动态的给一个类添加功能,并且在不需要时可以撤销下面以员工能力及薪水为例1.抽象员工类/** * 定义一个员工类 */public abstract class Employee { /** * 技能 ...

2019-10-12 20:41:40 83

原创 设计模式-模板模式

模板模式定义 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。优缺点优点:1.提高代码的复用性2.提高代码的扩展性3.符合开闭原则缺点:1.类数目增加2.间接增加了系统实现的复杂度3.继承关系自身缺点,如付类新增新的抽象方法,子类都要重写下面就以代码粗略的实现JdbcTempla...

2019-10-12 17:55:08 98

原创 设计模式-策略模式

策略模式定义算法家族,分别封装对象,使算法的变化不会影响用户的使用。下面以支付为例,采用策略模式实现支付宝,微信,京东支付的选择支付基类,所以支付类都需继承该类/** * 支付基类 */public abstract class Payment { public abstract String getName(); /** * 判断余额 */...

2019-10-10 14:07:14 73

原创 设计模式-委派模式

委派模式不属于23种设计模式,在Spring中有许多运用,如Spring的子项目Spring MVC中的前端控制器DispatcherServlet就是委派模式的运用。下面就以老板(Boss),领导(Leader),员工(Employee)为例。/** * @description:老板 */public class Boss { public void command(Str...

2019-10-09 10:11:45 108

原创 设计模式-代理模式

为其他对象提供一种代理以控制对这个对象的访问。

2019-10-07 00:02:59 79

原创 设计模式-原型模式

原型模式原型模式是23种设计模式之一,和单例模式一样,相对其他设计模式较为容易理解。定义原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。[1] 原型模式通过克隆一个已经存在的对象实...

2019-10-03 22:22:06 256

原创 设计模式-单例模式

设计模式-单例模式 单例模式是23种设计模式中较为简单的设计模式,面试中也是经常被面试官问到。但要真正在实际开发中运用好单例设计模式并不简单。本文主要介绍5种单例:饿汉式,懒汉式,懒汉式(内部静态类),注册式(枚举单例,threadlocal型单例(容器式))。前两种只要知道单例模式的人都知道,应付面试能讲出后三种绝对可以给自己加分。 本文不提供测试结果!饿汉式...

2019-10-02 23:32:53 157

原创 面试题:实现引用类型Integer的值互换

此处不做解释,具体原理自己去探索/**实现引用类型数据Integer互换*/public classSwapInteger {public static void main(String[] args) throws Exception, Exception {Integer a = 1;Integer b = 2;...

2019-09-24 14:23:11 123

原创 weblogic 上传图片无法访问

场景:项目部署在weblogic服务器中。之前做微信公众号关键字回复功能开发,用户回复指定的关键字,需返回一张带链接的图片。因为项目比较老,上传的图片是直接拖到weblogic中项目所在的图片存放的目录中。问题:在测试环境中,直接拖到服务器上的图片可以直接访问,并不需要重启weblogic服务。但功能上线时,在生产环境却无法访问该图片。经过测试,同级目录下,其他图片均能访问,唯独我拖进

2018-02-04 19:46:35 1160

空空如也

空空如也

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

TA关注的人

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