自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hue docker 安装

https://blog.csdn.net/weixin_42660202/article/details/115611879补充:1、docker 查看宿主机网络:ifconfig 有一个 docker0 的虚拟网卡,容器可以通过该ip访问宿主机2、docker容器安装vim , 需要先更新本地包源,通过 apt-get update ,然后执行apt-get install vim -y即可3、执行 ./hue syncdb初始化过程,会遇到 Did you install mysqlclien

2022-03-29 19:10:36 2224 1

原创 MySQL复制

复制Master记录二进制日志, 每次提交事务完成数据更新前,Master将数据更新的时间记录到二进制日志中,MySQL会按事务提交的顺序而非每条语句的执行顺序来记录二进制日志。记录二进制日志后,主库会告诉存储引擎可以提交事务了。在Slave服务器上执行start slave命令开启主从复制开关,开始进行主从复制。此时,Slave服务器的IO线程会通过在master上已经授权的复制用户权限请求连接Master服务器,并请求从执行binlog日志文件中的指定位置(日志文件名和位置就是在配置主从复制服

2022-03-06 13:16:50 464

原创 presto/trino连接clickhouse 字符串问题

当使用presto将clickhouse作为数据源进行查数据,如果其中有字符类型的话,比如说String或者FixString时,当我们对该字段进行筛选时,会报错 varbinary

2021-06-17 20:37:39 2550 2

原创 mysql 索引

1 索引常见模型hash : 适合等值查询,对范围查询无力有序数组:对于范围查询和等值查询都可以(使用二分法),但是知识后静态存储,如果数据时常发生变化,索引重构的复杂度很高。b+ tree , 范围查询和等值查询都可以跳表:适用场景和 b+树类似,redis zset 就是使用的跳表mysql 中使用的索引是hash 和b+树,innodb 默认使用b+树2 主键索引和非...

2020-12-31 10:30:55 116

原创 java 实现 excel,doc,ppt 文件加密

这里我们使用docx4j 进行加密。要进行加密的文件为office 2007 套件生成的文件,即文件名后缀有x的,比如pptx,docx,xlsx等。导入pom 依赖。 <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j-core</artifactId> <version&g

2020-10-20 11:01:41 493

原创 java 反射中的坑

1 class 中的getMethod , getField , getDeclaredField,getDeclaredMethods 区别get打头的可以获取当前类以及父类或者接口中声明的public 修饰的字段或者是方法getDeclared 只能获取当前类中声明的所有方法或者是字段,包括private , protected ,public ,以及默认的包修饰符。2 fianl 字段可以修改吗可以通过反射来进行修改,如果被final 修饰的字段同时被static 修饰,那么只有类加载

2020-06-24 11:51:38 389

原创 计算机原理笔记整理

本文是读书笔记,大部分摘抄于极客时间:计算机原理。系统大纲:1. 计算机组成CPU: 计算机所有的计算都是由CPU来进行的。CPU从内存中读取数据进行计算,然后在写回内存内存:你撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。主板:主板是一个有着各种各样,有时候多达数十乃至上百个插槽...

2020-04-07 14:18:14 1516

原创 shell 编程补充

1 反引号可以进行命令的执行 ,如 `pwd` 会执行pwd这个命令。也可以通过$(pwd)来执行2 $0 代表当前命令本身的路径。3 dirname 可以读取指定路径名,并删除最后一个斜杠后的路径。比如有 dirname /opt/apps ,结果为 /opt4 `dirname "$0" `来获取当前脚本的目录。5 位置参数可以用shift命令左移。比如shift 3表示原来的...

2019-12-26 10:17:39 157

原创 Springmvc form-data body 解析为对象

1背景本文只适用与Content-type 为form-data 媒体类型。springmvc 是默认支持将form-data 传过来的表单数据的,但是有一个限制,那即是表单的key值要和对象的属性值是一样的,然而生产环境中,一般前端使用的参数都是下划线的,而我们对象里的key是驼峰的,这样就设置不到对应的值了。这里有俩种方法:一种为将对象里的key全部改为下划线(不推荐); 自...

2019-11-22 17:12:08 2662 2

原创 常见排序算法及其实现

算法优劣:执行效率 内存消耗,看是否是原地排序(既不需要额外的空间) 稳定性 ,即相同元素,如果排序前 a1 在 a2 前,排序完依旧是这样根据比较来进行排序的算法有:冒泡,插入,选择 。一 基于比较和交换的算法:1 冒泡算法:每次通过比较来判断与后一位的大小关系,来确定是否交换,每次内层循环结束,表明有一个最大的或者是最小的被筛选出来。如果某次循环没有进行过任何的交换,说...

2019-11-20 19:40:03 251

原创 性能调优以及分析

1 查看当前内存:free :2 查看进程以及线程情况1 ps :ps aux 可以查看所有运行的进程-mp pid -o THREAD,tid,time 可以查看pid对应的所有线程,以及每个线程的具体情况-T -p pid 列出进程所有的线程,相当于上述的简化版,只有tid,没有其他的2 top (推荐使用,比较简单)top -H -p pid ,可以动...

2019-08-14 19:43:43 316

原创 java 组合注解

可以先参考https://blog.csdn.net/qq_28802119/article/details/83573950这篇文章本文是在上篇文章的补充。获取注解的注解:annotationType().getAnnotations()需要通过上述方法来实现,直接通过getAnnotations 获取不到 。方便起见,我们可以使用 spring Annotation...

2019-08-05 17:28:47 2047

基本数据结构

数组定义:数组是种线性表数据结构,他用一组连续的内存空间,来存储一组具有相同类型的数据。对内存的要求比较高首先是线性表:每个数据只有前后俩个方向连续的内存空间和相同的数据类型:可以支持下标随机访问。插入操作:O(n),由于涉及到后续数组元素的迁移如果是无序的话,假设现在要向 数组a中第三个元素后插入一个数据,我们可以直接将第四个元素一直数组末尾,然后将数据放入第四个元素,时间复...

2019-08-02 13:45:14 149

原创 HashMap源码解析

变量//默认容量,为16,如果需要自己设置的话,最好设置为2 的 n 次方 ,即使设置的不是2的次方,也会自动寻找最近的2的次方作为默认容量。至于为什么是2的次方,是为了减少hash的冲突static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//最大的容量,如果设置的超过最大容量,则map的容量为该值 s...

2019-08-01 14:13:09 133

原创 分布锁

redission 分布锁redission 分布锁使用了map 这种数据结构,key为锁的名称,map的key客户端,value为重入的个数代码进行分析,大致代码都写到RedissionLock这个类里。加锁://判断该锁是否存在,如果该锁不存在if (redis.call('exists', KEYS[1]) == 0) 向map类型中添加数据, key为客户端id ,...

2019-07-31 13:50:23 171

原创 mysql 参数

mysql 参数对于mysql性能调优至关重要,我们可以使用 show VARIABLES 查看mysql参数。可以使用以下语句进行查询show VARIABLES like '%bin%'show VARIABLES where variable_name like '%bin%'select @@sync_binlog更新操作:set global slow_qu...

2019-07-25 18:05:12 198

原创 Springboot Condition 注解 和EnableAutoConfiguration

1 EnableAutoConfiguration如果我们想自己写一个框架,并希望springboot加载时可以将我们自己框架的一些配置加载,那么该怎么做呢。肯定不能直接让用户在 scanBasePackages 中将我们的包加进去。这里我们需要用到@EnableAutoConfiguration 注解,这个注解的是自动配置,如果做到自动配置呢?springboot 在启动是会扫描...

2019-07-17 13:16:06 348

原创 linux 实用命令

1sz 和 rzyum install lrzsz // 下载 上传下载工具sz和rz安装完之后,输入命令 sz 文件名就可以看到以下界面:会弹出保存路径的弹窗之后你就选择保存文件位置就可以了rz 与sz相反,则是将本地文件上传到服务器。2 curlcurl命令可以用来执行下载、发送各种HTTP请求,指定HTTP头部等操作。如果系统没有curl可以使用...

2019-07-15 17:07:32 186

原创 java Fork/Join模型

当我们需要执行大量的小任务时,有经验的Java开发人员都会采用线程池来高效执行这些小任务。然而,有一种任务,例如,对超过1000万个元素的数组进行排序,这种任务本身可以并发执行,但如何拆解成小任务需要在任务执行的过程中动态拆分。这样,大任务可以拆成小任务,小任务还可以继续拆成更小的任务,最后把任务的结果汇总合并,得到最终结果,这种模型就是Fork/Join模型。Java7引入了Fork/Joi...

2019-07-11 19:27:07 314

原创 spring 技巧

ApplicationContextAware实现该接口,获取获取spring的bean。InitializingBean ,DisposableBean实现该接口,可以在bean初始化和销毁前进行操作BeanPostProcessor实现该接口,BeanPostProcessor也称为Bean后置处理器,它是Spring中定义的接口,在Spring容器的创建过程中(具体为...

2019-07-10 13:31:49 215

原创 Reactor 模型

传统IO模型:PPC 是 Process Per Connection 的缩写,其含义是指每次有新的连接就新建一个进程去专门处理这个连接的请求。TPC shi Thread Per Connection 的缩写,其含义是每次有新的连接就创建一个线程去处理。缺点:资源浪费,每次连接就创建一个线程,结束后线程就销毁了基于以上缺点,我们可以使用线程池进行线程复用,但是如果某个线程阻塞...

2019-07-09 11:27:41 545

原创 CompletionService

如果我们现在有一组类似的任务提交给Executor,并希望能够按照执行时间来获取最终结果。我们可以使用Executor 和 BlockingQueue来实现,java已经帮我们实现这个。1 创建:ExecutorCompletionService(Executor executor);ExecutorCompletionService(Executor executor, Bloc...

2019-07-08 19:49:19 138

原创 java 并发容器

java并发容器基本可以分为4个,list,map,set,queue,如下如:11 list只有一个实现 CopyOnWriteArrayList ,顾名思义就是写的时候会将共享变量新复制一份出来,这样做的好处是读操作完全无锁。但是新插入的数据不会立即更新,对源数据的增,删,改是没用的。适用于读多写少2 MapMap 接口的两个实现是 ConcurrentHashM...

2019-07-08 11:42:20 172

原创 多线程步调一致

并发编程三个核心问题:分工、同步、互斥背景介绍这里我们来模拟一下商城对账单流程,如下图:总共分为4个步骤:1 查询未对账订单2 查询派送单3 进行对账4 将对账结果写入差异库代码实现1 首先我们新建一个类,OrderTest,使用单元测试。这里为了模拟,我们将所有操作都模拟为一秒。public class OrderTest { List&l...

2019-07-08 11:17:58 212

原创 java 读写锁实现简单缓存

读写锁规则:读与读不互斥(所以多个线程可以同时读),读与写互斥,写与写互斥。适用于读多写少的情况。public class Cache<K,V> { // 这里不需要使用线程安全的类,因为写就是安全的。 private final Map<K,V> map = new HashMap<>(); private Rea...

2019-07-05 15:10:03 642 1

原创 java semphore实现 简单数据库连接池

1 自定义实现(semphore/阻塞队列)首先我们先介绍一下什么是信号量:类似于我们去公共澡堂洗澡,需要先去前台付款拿到储物柜的钥匙,如过没有空闲的储物柜,我们就需要一直等待,直到有别人洗完澡,让出储物柜,这里的钥匙就相当于信号量(有限的数量)。信号量可以使共享变量可被指定数量的线程访问。一个计数器,一个等待队列,三个方法。在信号量模型里,计数器和等待队列对外是透明的,所以只能通...

2019-07-05 13:49:43 204

转载 分库分表中间件

mysql中间件研究,整理互联网上的一些中间件文章mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。1.TDDL Smart Client的方式(淘宝)淘宝根据自己的业...

2019-07-03 17:30:42 563

原创 跨域请求

1、基本知识XMLHttpRequest遵守同源策略(same-origin policy),导致我们在不同源的情况下未必可以成功请求道服务器端的接口。在请求接口发生的过程中,浏览器会根据需要发起一次预检(也就是option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源或者域),还有是否需要Credentials(认证信息)等。option请求:...

2019-06-18 17:52:51 699

原创 antlr4 实战 idea

ANTLR 是用JAVA写的语言识别工具,它用来声明语言的语法,简称为“元语言”(meta-language)。ANTLR 语法识别一般分为二个阶段:1.词法分析阶段 (lexical analysis)对应的分析程序叫做lexer,负责将符号(token)分组成符号类(token class or token type)2.解析阶段根据词法,构建出一棵分析树(parse ...

2019-06-14 14:26:46 2088 3

原创 java 动态代理 和动态编程

概述代理分两种技术,一种是jdk代理(机制就是反射,只对接口操作),一种就是字节码操作技术。前者不能算技术,后者算是新的技术。未来将有大的动作或者较为广泛的应用和变革,它可以实现代码自我的编码(人工智能,代码智能)。什么是动态编程?动态编程解决什么问题?Java中如何使用?什么原理?如何改进?(需要我们一起探索,由于自己也是比较菜,一般深入不到这个程度)。什么是动态编程动态编程是...

2019-05-30 19:34:34 927

转载 java序列化框架(protobuf、thrift、kryo、fst、fastjson、Jackson、gson、hessian)性能对比

我们为什么要序列化举个栗子:下雨天我们要打伞,但是之后我们要把伞折叠起来,方便我们存放。那么运用到我们java中道理是一样的,我们要将数据分解成字节流,以便存储在文件中或在网络上传输,这叫序列化。我们要用的时候,就需要将字节流重构成对象,这叫反序列化。不知道我这么说大家能不能理解。java序列化的缺点java自己提供序列化而且用起来也非常简单,但是在远程服务调用中很少用...

2019-05-29 19:05:41 1260

转载 要怎样才能够完美的编写高性能的RPC框架

在 RPC Benchmark Round 1 中,Turbo 性能炸裂表现强悍,并且在 listUser 这一项目中,取得了 10x dubbo 性能的好成绩。本文将介绍 Turbo 强悍性能背后的原理,并探讨如何编写高性能的 RPC 框架。过早的优化是万恶之源?这句话是 The Art of Computer Programming 作者,图领奖得主 Donald Knuth 大神说的...

2019-05-29 19:03:37 264

原创 原码,反码,补码

原码:将一个整数,转换成二进制,就是其原码。 如单字节的5的原码为:0000 0101;-5的原码为1000 0101。反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。 如单字节的5的反码为:0000 0101;-5的反码为1111 1010。补码:正数的补码就是其原码;负数的反码+1就是补码。 ...

2019-05-29 11:22:04 263

原创 mysql冷知识

1.分区mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对...

2019-05-29 10:20:41 338

转载 RoundingMode 参数详解

RoundingMode的几种模式,具体是什么舍入行为呢?看API完全没看懂,还好有人总结过了:https://blog.csdn.net/alanzyy/article/details/8465098下面是我对这篇文章的图形理解,个人感觉比较好记,具体的示例可以看上边的原文:UP正数向右边靠,负数向左边靠DOWN和up正好相反,正数向左边靠,负数向右边靠CEILI...

2019-05-27 18:45:30 194

原创 pdf 合并

由于某些原因需要进行pdf合并,但是网上的大部分都只能合并俩到三个,而且有限制,求人不如求己,就自己写了参照网上的写了个工具类。我们使用的是apache的pdf处理工具类。maven: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pd...

2019-05-22 19:42:45 282

原创 获取包以及jar 包下的类

首先,Java中的getResourceAsStream获取项目下的指定资源有以下几种:一:获取src下的指定资源通过Class.getResource 来获取。path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下(即'/'代表src)获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源 //必须要从...

2019-05-22 18:53:32 1204

转载 spring boot logback

前言今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用?正文Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback...

2019-05-11 14:50:22 120

原创 SpringMVC路径规则以及使用正则

@RequestMapping中指定的路径也可以使用通配符*,表示任意字符。如下的处理器方法可以映射请求/antstyle/a,可以映射请求/antstyle/b,但是它不能映射请求请求/antstyle/a/b,因为它只能映射一级路径。@RequestMapping("/antstyle/*")public Object testAntStyle() { return "antS...

2019-05-09 20:13:01 1853

原创 xml 解析

DOM解析是将这个xml文件装入内存DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();Document document = builder.parse("books.xml"...

2019-04-26 17:24:16 178

jquery.qrcode.js

这个是改过的jquery.qrcode.js,添加了中间生成Logo的功能, $('#code').qrcode({ text : "hello world", //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接 width : "200", // //二维码的宽度 height : "200", //二维码的高度 background : "#ffffff", //二维码的后景色 foreground : "#000000", //二维码的前景色 src : 'head.jpg' //二维码中间的图片 }); src填写路径即可

2018-04-24

空空如也

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

TA关注的人

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