孙悟空2015
码龄7年
  • 1,033,327
    被访问
  • 259
    原创
  • 220,812
    排名
  • 844
    粉丝
关注
提问 私信

个人简介:追根溯底,回归本质,挖掘兴趣,激发思考。

  • 目前就职: 阿里巴巴
  • 加入CSDN时间: 2015-01-19
博客简介:

路漫漫,水迢迢

博客描述:
八十一难拦路七十二变制敌
查看详细资料
  • 4
    领奖
    总分 732 当月 12
个人成就
  • 博客专家认证
  • 获得667次点赞
  • 内容获得160次评论
  • 获得1,489次收藏
创作历程
  • 3篇
    2021年
  • 1篇
    2020年
  • 6篇
    2019年
  • 25篇
    2018年
  • 78篇
    2017年
  • 1篇
    2016年
  • 161篇
    2015年
成就勋章
TA的专栏
  • JVM与多线程
  • 深入浅出设计模式
    17篇
  • 深入浅出Hibernate
    23篇
  • JVM
    5篇
  • 深入浅出Spring
    12篇
  • Java并发编程
    25篇
  • 深入浅出Mysql
    9篇
  • Java基础
    16篇
  • Spring
    25篇
  • Hibernate
    25篇
  • Struts2
    12篇
  • WebService
    2篇
  • java综合技能
    9篇
  • JVM
    5篇
  • UML
    3篇
  • java设计模式
    18篇
  • java并发编程
    36篇
  • Mysql
    13篇
  • Redis
    18篇
  • 开发环境与Maven
    14篇
  • 程序人生
    9篇
  • Web前端
    9篇
  • 架构设计
    9篇
  • dubbo
    6篇
  • Linux
    2篇
  • Lua
    4篇
  • SpringMVC
    1篇
  • 加密
    1篇
  • Kafka
    4篇
  • Java异常集锦
    1篇
  • zookeeper
    1篇
  • NIO
    5篇
  • 技术驱动
    2篇
  • RocketMq
    4篇
  • netty
    1篇
  • nginx
    3篇
  • 算法
    10篇
  • Springboot
    3篇
  • SpringCloud
  • 面试指南
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MySQL之索引详解

索引的涉及原则索引的设计可以遵循一些已有的原则,创建索引的时候请尽量考虑符合这些原则,便于 提升索引的使用效率,更高效地使用索引。搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在 WHERE 子句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。 使用区分度高的字段当做索引,例如性别、状态等字段就不适合添加索引。使用短索引。如果对字符串列进行索引,应该指定一个前缀长度,只要有可能就应 该这样做。例如,如果有一个 name CHAR(200)列
原创
发布博客 2021.09.05 ·
176 阅读 ·
0 点赞 ·
0 评论

MySQL之SQL语句执行过程

我们可能每天都或多或少的写一些SQL语句,但是你有没有思考过MySQL接收到SQL的执行命令之后底层是如何执行的呢,从这篇文章开始我们开始揭开MySQL底层执行过程的面纱。首选创建表create table user_info ( id int not null primary key, username varchar(16) not null, city varchar(16) not null, salary int not null default 0, createti
原创
发布博客 2021.08.23 ·
378 阅读 ·
0 点赞 ·
0 评论

Mysql知识点一网打尽——学习提纲

后面每一个模块我会出一篇文章进行详解,让我们一起学习共同进步。
原创
发布博客 2021.08.19 ·
115 阅读 ·
1 点赞 ·
0 评论

Java工程师技术栈

原创
发布博客 2020.09.06 ·
745 阅读 ·
2 点赞 ·
3 评论

数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

背景对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池。 NOTE: 本文所有测试均是MySQL库测试结论 1:性能方面hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。 2:druid功能最为全面,sql拦截...
转载
发布博客 2019.07.11 ·
1955 阅读 ·
0 点赞 ·
0 评论

SpringBoot学习笔记四之【自动配置原理与举例】

版本2.1.1springboot只有一个application的启动,我们就从这个启动开始分析,首先我们跟进注解@SpringBootApplication如下:/** Class, interface (including annotation type), or enum declaration */@Target(ElementType.TYPE)@Retention(Ret...
原创
发布博客 2019.01.26 ·
1395 阅读 ·
2 点赞 ·
0 评论

SpringBoot学习笔记三之【多Profile文件的Maven发布使用】

在springboot工程中配置文件编写的时候可以使用application-{profile}.properties/yml,默认使用application.properties/yml,例如:每个环境配置如下:#application-dev.propertiesserver.port=8080#application-test.propertiesserver.port=...
原创
发布博客 2019.01.24 ·
1279 阅读 ·
0 点赞 ·
1 评论

SpringBoot学习笔记二之【yml配置举例与语法介绍】

  Resource目录结构说明:static:保存所有的静态资源; js css images;templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf、velocity);application.properties(application.y...
原创
发布博客 2019.01.06 ·
3422 阅读 ·
2 点赞 ·
3 评论

SpringBoot学习笔记一之【Idea下创建springboot示例、启动原理分析与两种部署启动方式】

1、使用背景首先说下我们为什么使用springboot,原因有以下几点1、快速创建独立运行的spring项目以及与主流框架继承2、使用嵌入式的Servlet容器,无需打成war包3、starters自动依赖于版本控制4、大量的自动配置,简化开发,也可修改默认值5、无需配置xml,无代码生成,开箱即用6、生产环境的运行时应用监控,配合springcloud全家桶7、与...
原创
发布博客 2019.01.06 ·
1574 阅读 ·
2 点赞 ·
0 评论

RocketMQ学习笔记四之【DefaultMQPullConsumer使用与流程简单分析】

我们首先看下DefaultMQPullConsumer使用例子:package com.swk.springboot.rocketmq;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import org.apache.rocketmq.client...
原创
发布博客 2019.01.05 ·
4667 阅读 ·
0 点赞 ·
6 评论

RocketMQ学习笔记三之【DefaultMQPushConsumer流量控制】

上一节我们已经把DefaultMQPushConsumer的大体流程分析了一下,从这节开始我们分析一部分消息处理的细节问题。继续在DefaultMQPushConsumerImpl的pullMessage方法中有个ProcessQueue,待会我们来分析这个队列的作用。 public void pullMessage(final PullRequest pullRequest) { ...
原创
发布博客 2018.12.24 ·
3766 阅读 ·
0 点赞 ·
1 评论

RocketMQ学习笔记二之【DefaultMQPushConsumer使用与流程原理分析】

版本:        <dependency>        <groupId>org.apache.rocketmq</groupId>        <artifactId>rocketmq-client</artifactId>        <version>4.3.0</v...
原创
发布博客 2018.12.23 ·
13700 阅读 ·
7 点赞 ·
1 评论

RocketMq学习笔记之一【常用操作命令与简单配置】

【为什么使用RocketMq】1、应用解耦2、流量削峰3、消息分发4、保证最终一致性5、方便动态扩容【RocketMq的角色】producerconsumerBrokerNameServerbroker配置文件:#nameServer 地址,分号分割namesrvAddr=192.168.100.131:9876;192.168.100.132:...
原创
发布博客 2018.12.18 ·
1463 阅读 ·
0 点赞 ·
0 评论

RocketMq学习笔记之一【常用操作命令与简单配置】

【为什么使用RocketMq】1、应用解耦2、流量削峰3、消息分发4、保证最终一致性5、方便动态扩容【RocketMq的角色】producerconsumerBrokerNameServerbroker配置文件:#nameServer 地址,分号分割namesrvAddr=192.168.100.131:9876;192.168.100.132:...
原创
发布博客 2018.12.18 ·
1463 阅读 ·
0 点赞 ·
0 评论

多线程复习笔记之四【多线程中的异常】

在一个线程组中如果其中一个线程执行报错并不影响其他线程的继续执行,例如:package com.fyw.thread.lock.exception;public class MyThread extends Thread { private String num; public MyThread(ThreadGroup group,String name,String num) ...
原创
发布博客 2018.12.16 ·
939 阅读 ·
0 点赞 ·
1 评论

多线程复习笔记之三【多线程中的Lock使用】

Lock1、getHoldCount()查询当前线程保持此锁锁定的个数,也就是调用lock方法的次数2、int getQueueLength返回正等待此锁定的线程估计数,例如有5个线程,1个线程首先执行await,那么调用getQueueLength返回43、int getWaitQueueLength(Condition condition)返回等待与次锁定相关的给定条件...
原创
发布博客 2018.12.16 ·
1284 阅读 ·
0 点赞 ·
0 评论

多线程复习笔记之二【线程间的通信】

Object.wait:释放锁,当时代码不会往下继续执行,需要等待notify通知,wait(1000)超过1秒自动唤醒Object.notify:不释放锁,需要等到同步代码块执行完毕,如果没有wait线程,notify命令将被忽略。condition如果有多个线程处于等待状态,我想唤醒指定的一个线程,Object.notify是唤醒随机一个是无法实现的。condition实现过程如下...
原创
发布博客 2018.12.15 ·
291 阅读 ·
0 点赞 ·
0 评论

多线程复习笔记之一【关键属性与常用关键字概述】

1、并发和并行的区别?并发可以发生在一个或多个CPU,同时处理多个任务,多个任务之间可以进行切换执行;并行只能发生在多核CPU,一核对应一个任务同时运行2、线程和进程之间的区别?a) 一个程序至少有一个进程,一个进程至少有个线程b) 进程在执行过程中拥有独立的内存单元,线程之间的内存却是共享的c) 线程不能独立运行,必须依赖进程举个例子:我们执行一个Main方法,里面其...
原创
发布博客 2018.12.15 ·
340 阅读 ·
0 点赞 ·
0 评论

多线程设计模式:Master-Worker模式

Master-Worker是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master进程和Worker进程。Master负责接收和分配任务,Worker负责处理子任务。当各个Worker子进程处理完成后,会将结果返回给Master,由Master作归纳总结。其好处就是能将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞吐量。处理过程如下图所示:Master进程为主要进...
转载
发布博客 2018.11.21 ·
889 阅读 ·
0 点赞 ·
0 评论

java定时器之Timer使用与原理分析

Timer和TimerTaskTimer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。【使用举例】【schedule(TimerTask task, long delay) 延迟 delay 毫秒 执行】...
原创
发布博客 2018.11.07 ·
15530 阅读 ·
2 点赞 ·
2 评论
加载更多