@THINK
码龄17年
关注
提问 私信
  • 博客:29,146
    社区:450
    29,596
    总访问量
  • 27
    原创
  • 490,130
    排名
  • 11
    粉丝
  • 0
    铁粉

个人简介:java 性能 磁盘IO交互 开销

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2008-01-06
博客简介:

【 Think 】

博客描述:
居安思危 思则有备 有备无患
查看详细资料
博客首页
个人成就
  • 企业官方账号
  • 获得12次点赞
  • 内容获得9次评论
  • 获得46次收藏
  • 博客总排名490,130名
创作历程
  • 24篇
    2021年
  • 8篇
    2017年
成就勋章
TA的专栏
  • Java基础
  • 基础知识
    4篇
  • JVM
    2篇
  • 常用框架
  • spring
  • springmvc
    1篇
  • springboot
  • redis
    1篇
  • mybatis
    10篇
  • 数据库
  • mysql
    1篇
  • 消息队列
    1篇
  • 算法
    2篇
  • 数据结构
    3篇
  • hibernate
    1篇
  • hadoop
    1篇
  • 线程
    1篇
  • 集合
  • 流
  • 高并发
  • 系统优化
  • maven
    1篇
  • 脚本
    1篇
  • http/https
    1篇
兴趣领域 设置
  • 大数据
    redis
  • 后端
    spring架构
  • 搜索
    elasticsearch
创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

81人参与 去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

多线程---彻底搞懂线程池

多线程1 线程池的优势2 线程池的使用3 线程池的工作原理4 线程池的参数4.1 任务队列(workQueue)4.2 线程工厂(threadFactory)4.3 拒绝策略(handler)5 功能线程池5.1 定长线程池(FixedThreadPool)5.2 定时线程池(ScheduledThreadPool )5.3 可缓存线程池(CachedThreadPool)5.4 单线程化线程池(SingleThreadExecutor)6 总结1 线程池的优势总体来说,线程池有如下的优势:(1)降低
转载
发布博客 2021.07.04 ·
366 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

数据结构优缺点及底层原理

数据结构分类线性表数组队列链表散列表(Hash表)栈非线性表树二叉树红黑树B-TreeB+Tree堆图线性表零个或多个数据元素的有限序列。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。连续的内存空间和相同类型的数据:这两个限制也让数组的很多操作变得非常低效,比如要想在数组中删除、插入一个数据,为了保证连续性,就需要做大量的数据搬移工作。但是数组的随机访问效率确
原创
发布博客 2021.06.17 ·
1259 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Java 名词解释

名词解释1.内存泄漏(Memory Leak)2.内存溢出(Out Of Memory,简称OOM)锁乐观锁CAS悲观锁AQS1.内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。2.内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自动关闭软件
原创
发布博客 2021.06.15 ·
944 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(9)插件体系

插件体系概述插件机制是为了对MyBatis现有体系进行扩展 而提供的入口。底层通过动态代理实现。可供代理拦截的接口有四个: Executor:执行器 StatementHandler:JDBC处理器 ParameterHandler:参数处理器 ResultSetHandler:结果集处理器 这四个接口已经涵盖从发起接口调用到SQl声明、参数处理、结果集处理的全部流程。接口中任何一个方法都可以进行拦截改变方法原有属性和行为。不过这是一个非常危险的行为,稍不注意
原创
发布博客 2021.06.12 ·
298 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

MyBatis(8)Configuration配置体系

Configuration配置体系Configuration概述Configuration 是整个MyBatis的配置体系集中管理中心,前面所学Executor、StatementHandler、Cache、MappedStatement...等绝大部分组件都是由它直接或间接的创建和管理。此外影响这些组件行为的属性配置也是由它进行保存和维护。如cacheEnabled、lazyLoadingEnabled ... 等。所以说它MyBatis的大管家很形象。核心作用总结总结一下Configur
原创
发布博客 2021.06.12 ·
417 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(7)动态SQL全流程解析

动态SQL全流程解析动态SQL是MyBatis 强大功能之一,他免除了在JAVA代码中拼装SQL字符串麻烦,同时保留了我们对SQL的自主控制,更方便进行SQL性能优化改造。动态SQL中我们使用XML 脚本元素控制SQL的拼装,这都是日常开发中要用到元素,我们一起来回顾一下(如果你对动态使用已经非常熟悉了可直接跳过本节)。 if choose (when, otherwise) trim (where, set) foreach if<if tes
原创
发布博客 2021.06.11 ·
1510 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

MyBatis(6)映射体系二

懒加载&嵌套映射前言:基于动态代理实现懒加载,在使用过程中,如果会话关闭、跨线程、序列化等情况下,是否能够继续加载?懒加载懒加载是为改善,解析对象属性时大量的嵌套子查询的并发问题。设置懒加载后,只有在使用指定属性时才会加载,从而分散SQL请求。<resultMap id="blogMap" type="blog" autoMapping="true"> <id column="id" property="id"></id>...
原创
发布博客 2021.06.11 ·
244 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(5)映射体系一

结果集映射体系一前言本章你将学会MetaObject的使用与原理,以及嵌套子查询原理,包括子查询当中的循环依赖映射工具MetaObject所谓映射是指结果集中的列填充至JAVA Bean属性。这就必须用到反射,而Bean的属性 多种多样的有普通属性、对象、集合、Map都有可能。为了更加方便的操作Bean的属性,MyBatis提供了MeataObject 工具类,其简化了对象属性的操作。其具体功能如下: 查找属性:勿略大小写,支持驼峰、支持子属性 如:“blog.comment.us
原创
发布博客 2021.06.11 ·
350 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

MyBatis(4)Jdbc处理器StatementHandler解析

MyBatis Jdbc处理器StatementHandler解析StatementHandler概要MyBatis一个基于JDBC的Dao框架,但前面我们所学的会话、执行器半点没有提到jdbc,原因是MyBatis把所有跟JDBC相关的操作全部都放到了StatementHandler中。一个SQL请求会经过会话,然后是执行器,最由StatementHandler执行jdbc最终到达数据库。其关系如下图:这里要注意这三者之间比例是1:1:n。也就是说多个SQL操作对应一个会话,和唯一的执
原创
发布博客 2021.06.11 ·
349 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

MyBatis(3)二级缓存源码解析

MyBatis二级缓存源码解析文本主要目的为掌握二级缓存的使用场景、熟悉其执行结构、以及执行过程源码二级缓存概述二级缓存也称作是应用级缓存,与一级缓存不同的,是它的作用范围是整个应用,而且可以跨线程使用。所以二级缓存有更高的命中率,适合缓存一些修改较少的数据。在流程上是先访问二级缓存,在访问一级缓存。二缓存需求二级缓存是一个完整的缓存解决方案,那应该包含哪些功能呢?这里我们分为核心功能和非核心功能两类:存储【核心功能】即缓存数据库存储在哪里?常用的方案如下: 内存:
原创
发布博客 2021.06.11 ·
294 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(2)一级缓存源码解析

MyBatis一级缓存源码解析本文将探讨一级缓存命中场景以,一级缓存源码实现MyBatis缓存概述myBatis中存在两个缓存,一级缓存和二级缓存。 一级缓存:也叫做会话级缓存,生命周期仅存在于当前会话,不可以直接关关闭。但可以通过flushCache和localCacheScope对其做相应控制。 二级缓存:也叫应用级性缓存,缓存对象存在于整个应用周期,而且可以跨线程使用。 关于二级缓存将在后续章节,详细说明。文本先聚焦一级缓存。首先来看如何才能命中一级缓存。
原创
发布博客 2021.06.11 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(1)深入理解Executor执行器

MyBatis深入理解Executor执行器本文的目的是理解MyBatis整体执行流程,并且理解Executor在整个流程当中的意义。源码阅读网内部资料,转载前请联系作者。JDBC执行过程回顾MyBatis是一个Dao层映射框架,底层还是用的JDBC来访问数据库,在学习MyBatis之前有必要先回顾一下JDBC的执行过程:具体代码我就不贴了,不懂的自行百度。这里重点说一下预编译器 Statement,通过该组件来发送对应的SQL与参数。它有三种类型:分别是简单Statemen
原创
发布博客 2021.06.11 ·
875 阅读 ·
2 点赞 ·
2 评论 ·
5 收藏

Mybatis原理之图解

Mybatis结构与原理JDBC执行过程Executor执行器体系缓存体系一级缓存二级缓存JDBC处理器StatementHandler结构StatementHandler流程参数处理结果集处理MetaObject流程ResultMap结果集映射动态SQL脚本组成结构脚本解析流程目录Mybatis结构与原理JDBC执行过程Executor执行器体系缓存体系一级缓存二级缓存JDBC处理器StatementHandl
原创
发布博客 2021.06.11 ·
376 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Mysql详解及原理

mysql如何应用原理B-树 & B+树myisam & innodb联合索引innodb page (默认大小为16KB)buffer pool => free链表&flush链表&lru链表redo log & log bufferinnodb内存和磁盘结构事务底层原理优化
原创
发布博客 2021.06.11 ·
667 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

RabbitMQ

RabbitMQ优劣势优:应用解耦 异步提速 削峰填谷劣:系统可用性降低 系统复杂度提高组成部分Message,Publisher,Exchange,Binding,Queue,Connection,ChannelConsumer,Virtual Host,Broker交换机Direct类型Fanout类型 广播模式, 一对多 速度快 会丢消息Topic类型工作模式直联工作队列发布订阅路由主题过期时间,死信队列,延迟队列消息事务 cha
原创
发布博客 2021.06.11 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis详解

Redis特性优缺点应用场景及案例案例场景命令集数据类型事务持久化RDBAOF回收策略哈希槽分布式锁集群redis和memcache的比较特性读写性能优异持久化数据类型丰富数据自动过期发布订阅分布式单线程,多路复用方式提高处理效率优缺点1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。3.
原创
发布博客 2021.06.09 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM原理详解

JVM知识脉络jvm的结构jvm内部执行运行流程各模块的生命周期JVM结构图各模块的内容程序计数器(Program Counter Register)Java虚拟机栈(Java Virtual Machine Stack)本地方法栈(Native Method Stack)Java 堆(Java Heap)方法区(Method Area)本地(native)方法双亲委派机制类加载器子系统(class loader subsystem)执行引擎(Executionengine子系统)解释器即时(Just-In
原创
发布博客 2021.06.08 ·
2600 阅读 ·
7 点赞 ·
2 评论 ·
23 收藏

Java 关于强引用,软引用,弱引用和虚引用的区别与使用场景

强引用我们使用的大部分的引用都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。Arraylist中的clear方法 public void clear() { modCount++; // clear to let GC do its work fo
原创
发布博客 2021.06.07 ·
1488 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

ThreadLocal使用与原理

ThreadLocal使用与原理知识脉络应用场景使用原理基本使用实现原理相关知识知识脉络1.内存泄漏问题2.Hash冲突处理3.弱引用 --> 4.InheritableThreadLocal应用场景在处理多线程并发安全的方法中,最常用的方法,就是使用锁,通过锁来控制多个不同线程对临界区的访问。但是,无论是什么样的锁,乐观锁或者悲观锁,都会在并发冲突的时候对性能产生一定的影响。那有没有一种方法,可以彻底避免竞争呢?答案是肯定的,这就是ThreadLocal。从字面意思上看,Th
转载
发布博客 2021.06.07 ·
246 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

java 名词解释

1.内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
原创
发布博客 2021.06.07 ·
241 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多