自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书院二层楼

夫子有好几层楼那么高

  • 博客(66)
  • 收藏
  • 关注

原创 Java ForkJoinPool: 3秒计算100万的阶乘

Java ForkJoinPool: 3秒计算100万的阶乘

2020-12-31 14:28:56 819

原创 记一次使用spring-data 查询mongodb,进行表关联的实现过程[aggregation,lookup,project,filter,cond]

记一次使用spring-data 查询mongodb,进行表关联的实现过程[aggregation,lookup,project,filter,cond]

2020-12-02 12:30:45 1358

原创 java启动jar包的shell脚本,常见的配置jvm参数方案

针对普通的可执行的jar文件,提供启动,停止,重启等功能配置JVM参数: 打印GC日志,当内存溢出OOM时导出一份heapdump

2020-11-26 18:00:39 3341 1

原创 MongoDB高手课学习笔记(一,再入门)

这是极客时间-MongoDB高手课的学习笔记,第一章:再入门.按照数据库排名网站db-engines.com的统计,最近几年MongoDB一直保持在前四五名,前面几位是年龄30多岁的关系型数据库(Oracle,Mysql,SQLServer,PostgreSQL).

2020-09-21 11:48:08 1378

原创 MySQL(七)服务器参数设置,补充redo_log&undo_log&bin_log,锁机制

文章目录前言通用参数(general)字符(character)连接(connection)前言这个参数没有标准答案,根据实际业务调整mysql的参数非常多,咱们也没必要每个都闹明白,先把常用的搞定…默认的配置文件: /etc/my.cnf通用参数(general)参数含义datadir=/var/lib/mysql数据文件存放的目录socket=/var/lib/mysql/mysql.sockmysql.socket表示server和client在同一台服务器,

2020-07-27 21:26:10 219

原创 MySQL(六)分区表

对于用户而言,分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。分区表对于用户而言是一个完全封装底层实现的黑盒子,对用户而言是透明的,从文件系统中可以看到多个使用#分隔命名的表文件。mysql在创建表时使用partition by子句定义每个分区存放的数据,在执行查询的时候,优化器会根据分区定义过滤那些没有我们需要数据的分区,这样查询就无须扫描所有分区。分区的主要目的是将数据安好一个较粗的力度分在不同的表中,这样可以将相关的数据存放在一起。

2020-07-22 23:55:45 162

原创 MySQL(五)查询优化

文章目录前言查询慢的原因优化数据访问减少访问数据量(扫描行)是否向数据库请求了不需要的数据执行过程的优化语法解析器和预处理查询优化器前言如果表里数据不多的话,就无所谓优化啦,优化前后差别不大;一旦表中的数据上了规模,查询慢的情况应该就经常发生啦.这也是我们要解决的,最大的问题.查询慢的原因网络CPUIO上下文切换n多个任务并发执行,就会有上下文切换,比较浪费时间系统调用生成统计信息show profile,performance_schema等锁等待时间并发场景下,锁会非常复杂

2020-07-22 22:19:09 385

原创 MySQL(四)基础概念PLUS-优化小细节,索引失效的情况

聚簇索引与非聚簇索引优化小细节索引失效的情况

2020-07-19 17:31:46 308

原创 数据结构和算法基础(四)[堆结构,堆排序,堆的常见题目:部分有序的数组排序,小根堆中,修改一个元素后仍保持大根堆,要求O(logN)]

数据结构和算法基础(四)[堆结构,堆排序,堆的常见题目:部分有序的数组排序,小根堆中,修改一个元素后仍保持大根堆,要求O(logN)]

2020-07-07 14:11:34 473

原创 Spring(一)Spring的作用,概览,看源码:BeanFactory和FactoryBean

Spring正如其名,给Java带来了春天;企业中如果使用Spring,可以大大降低开发的成本.虽然日常工作中我们只要会使用Spring的功能就可以了但是偶尔有些定制化需求或者BUG时,我们也可以修改其源码Spring本身也是很优秀的代码,可以学习下设计模式这节主要从这几个方面学习: Spring的作用,概览,看源码:BeanFactory和FactoryBean

2020-07-06 21:58:27 321

原创 MySQL(三)索引基本知识,数据结构,匹配方式

MySQL(三)索引基本知识,数据结构,匹配方式

2020-07-01 23:40:14 546

原创 MySQL(二)explain查看执行计划

MySQL(二)explain查看执行计划鲁迅说过,没有度量就没有进度(鲁迅:我没说过);如果不知道自己的SQL是执行的,就不能加快SQL语句的执行效率.可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。DESCRIBE 和 EXPLAIN 其实功能一毛一样,就是同义词;只是我们一般用EXPLAIN查看执行计划.The DESCRIBE and EXPLAIN sta

2020-06-30 22:46:58 3436

原创 MySQL(二)数据类型和schema优化

结构客户端 : 发送连接请求,SQL请求MySQL-server:连接器: 提供连接服务,权限认证分析器: 把SQL语句切分,语法分析,词法分析,转换成AST(抽象语法树)优化器: 优化SQL语句,规定执行流程两种优化方式,RBO(基于规则的优化)和CBO(基于成本的优化),更多的使用CBO可以查看SQL语句的执行计划,采用对应的优化点,加快查询执行器: SQL语句的实际执行组件,和存储引擎挂钩,查询数据MySQL8之前还有一层缓存,8之后去掉了;因为数据经常变化,命中率不高存储

2020-06-30 08:09:19 189

原创 MySQL(一)MySQL结构介绍,性能监控:show profile,Performance Schema,show processlist

MySQL结构介绍,性能监控:show profile,Performance Schema,show processlist

2020-06-28 23:00:51 488

原创 Zookeeper(三)实战应用案例-代码实现,分布式配置,分布式锁

Zookeeper(三)实战应用案例-代码实现,分布式配置,分布式锁

2020-06-25 08:48:23 380

原创 Zookeeper(二)原理知识,paxos-zab原子广播协议,ZK集群选举Leader的过程,JAVA客户端API使用及说明

原理知识,paxos-zab原子广播协议,ZK集群选举Leader的过程,JAVA客户端API使用及说明

2020-06-21 18:53:29 401

原创 Zookeeper(一)概览,安装,zkCli.sh使用

Zookeeper 概览,安装,zkCli.sh使用

2020-06-19 13:23:24 610

原创 Redis(六)面试常问:缓存击穿,缓存穿透,缓存雪崩,分布式锁

Redis面试常问:缓存击穿,穿透,雪崩,分布式锁

2020-06-16 07:37:03 290

原创 Redis(五)redis的高可用理论推导,主从复制,哨兵,cluster,分区,代理,实操twemproxy/Predixy/cluster

redis的高可用理论推导,主从复制,哨兵,cluster,分区,代理,实操twemproxy,Predixy,cluster

2020-06-14 23:45:17 507 2

原创 Redis(四)redis持久化RDB&AOF

redis持久化RDB&AOFsave,bgsave快照的时点混乱问题fork,copy on writeBGREWRITEAOF ,隐式触发重写

2020-06-12 09:06:20 275

原创 Redis(三)常用配置,缓存LRU,有效期Expire,管道piplining,发布订阅PubSub,事务multi-command-exec,布隆过滤器RedisBloom

有效期Expire,管道piplining,发布订阅PubSub,事务multi-command-exec,布隆过滤器RedisBloom

2020-06-11 17:42:56 532

原创 JVM系列(十)[CMS和G1的GC日志分析解读,JVM常用参数]

文章目录

2020-06-04 23:45:30 692

原创 JVM系列(九)[G1垃圾回收器,CMS&G1 的 三色标记算法]

G1垃圾回收器,CMS&G1 的 三色标记算法card table(大家都有)Collection Set,Remenber Set

2020-06-02 23:31:26 1216

原创 JVM系列(七)[JVM实战调优之:认识并观察GC日志,衡量JVM-GC的两个指标,如何定位JVM运行中的问题]

认识并观察GC日志衡量JVM-GC的两个指标如何定位JVM运行中的问题找到Java进程,观察各线程,观察gc情况,查找前20各最多对象的类,导出堆dump文件并对其分析

2020-05-27 23:30:28 413 2

原创 JVM系列(六)[JVM调优前置基础理论知识,堆内存逻辑分区(分代)模型,对象分配逻辑,常见的垃圾回收算法,常见的垃圾回收器以及组合参数设定]

JVM调优前置基础理论知识,堆内存逻辑分区(分代)模型,对象分配逻辑,常见的垃圾回收算法,常见的垃圾回收器,常见垃圾回收器组合参数设定(JDK1.8)

2020-05-13 00:37:43 601 2

原创 JVM系列(五)[Runtime Data Area运行时数据区,栈帧的组成,JVM Stack Instructions 指令集]

Runtime Data Area运行时数据区,概念,组成结构栈帧frame的结构:局部变量表local variable table,操作数栈operand stacks, dynamic linking, return addressJVM Stack Instructions JVM指令集常见方法的JVM字节码指令

2020-05-10 23:05:32 295 2

原创 String相关的一些琐碎小事[new String("xx")会创建几个对象?intern()是干嘛的?stringA+StringB是咋实现的,一定会生成新对象吗?]

1. 每次new String("xx")都会在堆中创建一个"xx"对象,然后在常量池中也创建一个对象,这俩不是同一个对象2. String a = "xx";这种直接字符串,会检查常量池中有没有"xx"对象,如果有直接返回;如果没有则只在常量池中创建一个"xx"对象,然后返回3. String.intern()方法,会返回常量池中的"xx"对象,如果常量池已有则直接返回;如果没有,就把堆中的对象放入常量池,他俩是同一个对象,然后返回.4. 字符串变量的相加,设String a = "aa", Str

2020-05-07 17:20:23 298

原创 数据结构和算法基础(三)[归并排序(递归和迭代实现),快速排序(分区,荷兰国旗分区)]

深入理解 归并排序,快速排序归并排序的递归实现,和迭代实现法分区,荷兰国旗分区,快速排序

2020-05-07 14:26:13 335

原创 JVM系列(四)[JMM内存模型,Volatile和Synchronized的实现细节,大厂面试题-对象的内存布局,大小,对象头内容,创建过程,定位,分配]

Volatile和Synchronized的实现细节,Java并发内存模型,happens-before原则;对象的内存布局:对象大小,对象头,对象创建过程,对象怎么定位

2020-05-05 22:07:12 276

原创 JVM系列(三)[计算机硬件的内存模型,数据一致性问题,CPU指令乱序执行,合并写]

计算机硬件的内存模型,数据一致性问题,CPU指令乱序执行,合并写.JVM嘛,Java虚拟机,也就是一个虚拟的硬件机器,所以它的一切功能都是基于真实的硬件机器,可能做了一些灵活的应用.所以学习JVM的并发问题前,需要先了解下计算机硬件是如何解决并发带来的数据一致性和乱序执行问题.JVM的内存模型和计算机的内存模型是有一定的映射关系的,但很多定义并不相同.

2020-05-04 19:03:08 611

原创 数据结构和算法基础(二)[链表结构,栈和队列[用栈实现队列,用队列实现栈],递归行为,哈希表HashMap,有序表TreeMap]

链表结构,栈和队列[用栈实现队列,用队列实现栈],递归行为,递归的时间复杂度Master公式,哈希表HashMap,有序表TreeMap

2020-04-27 00:31:51 190

原创 为什么:不要在"foreach循环"里进行元素的 remove/add 操作,而是使用Iterator方式

背景前两天阿里的JAVA开发手册,出了新品–泰山版,下载来看看.编程规约–(六)集合处理,第14条中这么写:14.【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。正例:List<String> list = new ArrayList<&gt...

2020-04-26 12:20:57 252

原创 数据结构和算法基础(一)[初识复杂度,对数器,二分法,位运算及简单应用:找到二进制最右面的1,找到数组中的唯一/唯二奇数次出现的数]

初识复杂度对数器二分法位运算及简单应用:找到二进制最右面的1找到数组中的唯一/唯二奇数次出现的数

2020-04-21 20:58:06 341

原创 设计模式(一)单例模式Singleton,并没有你想的那么简单

前言设计模式是开发中的一柄利剑,有助于提高效率,减少冗余代码,更适应将来的变化等好处.但在实际项目中,我们要尽量做到"心中有剑,手中无剑",不要被这些条条框框所限制,使用设计模式的目的是为了帮助我们开发,不要让它成为我们的限制/禁锢.单例模式下面说的"完美"不一定适用于所有场景,其他不那么"完美"的方式也未必就一点都不能用,还是要具体问题具体分析."完美"的两种方式(都算是懒汉)懒汉...

2020-04-15 00:46:29 149

原创 给IntelliJ IDEA换了个皮肤,加了几个插件,发现我爱上了敲代码:)

起因最近在做一个复杂的统一权限授权/鉴权项目,MySQL数据库的关系特别复杂.排查问题的时候要分析日志中打印的SQL嘛,就很头疼,大家都知道打印的SQL日志是带着一堆问号的(prepared statement),还得自己改SQL才能再数据库运行.以前都是找一两条SQL就解决问题了,也就没当一回事.今天这次可是愁坏了,头发都为它多掉了好几根!遂决定,上CSDN看看大家是咋做的,搜到个Myb...

2020-04-13 00:06:42 1858

原创 MySQL中,关联多张表批量更新-update join on set,关联删除

先说方法update table1join table2 on table1.关联字段=table2.关联字段set table1.要改变的字段=table2.对应的字段这个table2经常是一张表的聚合后的查询结果应用场景项目中经常会有多张表的各种关联,一对多,多对多等关系很多,导致查询一张表格的东西要关联很多表,速度很慢;这时候考虑添加一个冗余字段,减少查询时表的关联;但是已经...

2020-04-10 21:58:14 3127

原创 日常算法练习(一)[快速排序]

文章目录description快速排序思路:代码实现:description一些简单的排序算法,日常记录一下,慢慢更新.快速排序快速排序是很经典的算法了,其中用到了"分而治之"的思想.思路:参考菜鸟教程首先选中一个基准数x,一般就选择第一个了,然后把小于x的都挪到左边,大于x的都挪到右边然后再对左右两边区间各自找基准数,排序,递归执行前两步,直到当前区间只有1个元素了,那就结束...

2020-04-10 17:11:24 118

原创 游戏项目服务端(一)简单认识Netty&用Netty创建个服务器

文章目录前言Netty Reactor工作模型从0创建个项目pom.xml添加依赖和打包方式:log4j.properties代码主启动类:简单消息处理器:打印前言我其实是主要做web后端的,学习这个游戏项目主要是为了学习其netty,gRpc,反射的运用和设计模式等作为一个web后端,可以了解学习下前端js,vue/react等,但是这个游戏项目完全没必要学习前端东西了…这个Demo项目...

2020-04-08 00:06:06 614

原创 JVM系列(二)[Class加载过程,双亲委派机制,自定义一个ClassLoader,LazyLoading,父子类构造器加载顺序,混合型-解释&编译]

类加载和初始化class cycle首先一个class文件在硬盘里面然后JVM去对它进行以下行为:Loading,把class文件load到内存,双亲委派(安全)Linkingverification,class格式校验preparation,准备,这时候静态变量赋默认值resolution,解析,把符号引用转换为可以直接访问的地址Initializing,初始化,这时候...

2020-04-07 18:39:41 411 2

原创 Redis(二)类型-string(字符串,数值和bitmap),list,set,hash,sorted_set

类型-string(字符串,数值和bitmap),list,set,hash,sorted_set二进制安全bitmap为图的使用sorted_set底层使用skip list跳跃表实现

2020-03-29 21:19:23 278

空空如也

空空如也

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

TA关注的人

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