自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 MySQL的B+树索引结构

MySQL的B+树索引结构

2022-09-15 15:47:03 492

转载 如何设计网络

如何设计网络你是一台电脑,你的名字叫A很久很久之前,你不与任何其他电脑连接,孤苦伶仃。直到有一天,你希望与另一台电脑B建立通信,于是你们各开了一个网口,用一根网线连接了起来。用一根网线连接起来怎么就能“通信”了呢?我可以给你讲IO,讲中断,讲缓冲区,但这不是研究网络时该关心的问题。如果你纠结,要么去研究一下操作系统是如何处理网络IO的,要么去研究一下包是如何被网卡转换成电信号发送出去的,要么就仅仅把它当做电脑里有个小人在开枪吧~反正,就是它们连起来了,并且可以通信。有.

2022-02-14 15:34:05 1059

原创 用风控的思想玩项目

众所周知,一个项目的成功离不开项目经理这一角色在整个项目周期中发挥的重要作用。不同的项目中会遇到不同的项目经理,他们的管理方式,把控手段也大不相同。共事遇到的项目经理多了,也对项目管理有了一定的认知与思考。刚好最近任职的公司是做风控这块。就有了用风控的思想玩项目这篇心得体会。风险控制概念:指风险管理者采取各种措施和方法,消灭或减少各种风险事件发生的可能性,或减少风险事件发生时造成的损失。总会有些事情是不可控的,风险总是存在的。作为管理者会采取各种措施减小风险事件发生的可能性,或者把可能的损

2021-09-08 14:27:09 223

转载 Java垃圾回收-G1垃圾收集器

以下文章来源于艾小仙 ,作者艾小仙所有的垃圾回收器的目的都是朝着减少STW的目的而前行,G1(Garbage First)收集器的出现颠覆了之前版本CMS,Parallel等垃圾收集器的分代收集方式,从2004年sun发布第一篇关于G1的论文后,直到2012年JDK7发布更新版本,花了近10年的时间G1才达到商用程度,而到JDK9发布之后,G1成为了默认的垃圾收集器,CMS也变相的相当于被淘汰了。G1结构G1抛弃了之前的分代收集的方式,面向整个堆内存进行回收,把内存划分为多个大小相等的独立区域R.

2021-08-13 09:48:37 1172

转载 线程池基础知识

文章来源:https://mp.weixin.qq.com/s/HWoyHgZiUz7pqFhYxfLDNA公众号: yes的练级攻略什么是线程池?基于池化思想管理线程的工具。Java中的线程与操作系统线程是一比一的关系线程的创建和销毁是一个“重”的操作多线程是为了提高CPU的利用率线程的切换有开销,线程数的多少需要结合CPU核心数与I/O等待占比线程池的优点?降低资源消耗:重复利用已创建的线程,降低线程创建和销毁造成的损耗提高响应速度:任务到达时,无需等待创建线程即可立.

2021-06-28 17:23:37 103

转载 动态规划详解

动态规划(英语:Dynamic Programming 简称DP)是一种在数学,管理科学,计算机科学,经济学和生物信息中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。简单来说:给定一个问题,把它拆成一个个子问题,直到子问题可以直接解决。把子问题答案保存起来,减少重复计算。再根据子问题答案反推,得出原问题解的方法。动态规划最核心思想,就在于拆分子问题,记住过往,减少重复计算一只青蛙一次可以跳上一级台...

2021-05-13 14:55:46 344

原创 深入浅出Mybatis-XML映射器

Mybatis的真正强大在于它的语句映射,这是它的魔力所在;1.select查询语句标签<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id}</select>select元素属性属性描述id命名空间唯一标识符parameterType参数的类全限定名或别名,通过类型处理器解.

2021-04-29 16:16:08 307

原创 深入浅出Mybatis配置文件

简介什么是MybatisMybatis 是一款优秀的持久层框架;它支持自定义SQL,存储过程以及高级映射;Mybatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作;Mybatis可以通过简单的XML或注解来配置和映射原始类型,接口和Java POJO为数据库中的记录;特点简单易学:本身就很小且简单;灵活;解除SQL和程序代码的耦合,SQL和代码分离,提高可维护性;提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组建维护;

2021-04-27 16:43:29 557

转载 分布式锁

以下文章来源于公众号:艾小仙 作者:艾小仙1.什么是分布式锁?单机系统:可以通过synchronized或者ReentrantLock这些常规的加锁方式来实现。|分布式集群系统:单纯的本地锁无法解决问题,需要用到分布式锁。通常会引入三方组件或服务来解决这个问题。比如:数据库,Redis,Zookeeper等。通常来说,分布式锁要保证互斥性,不死锁,可重入等特点。互斥性:对于同一资源,任意时刻,都只有一个客户端能持有锁。不死锁:必须要有锁超时这种机制,保证在出现问题的时候释放锁,不会.

2021-03-28 18:16:21 301

转载 缓存一致性问题怎么解决

文章来源「公众号:艾小仙」「https://mp.weixin.qq.com/s/aJ33A5O2PUcUOA34kL-Nzw」对于缓存和数据库的操作,主要有以下两种方式。存在的问题存在脏数据的可能。线程A删除缓存,线程B查缓存不存在,从数据库读取,存入缓存...

2020-12-23 17:29:05 205

原创 Mac系统Homebrew命令

Homebrew命令:1.brew install mysql gradle maven node.本地软件库列表:brew ls.查找软件:brew search google(其中google替换为要查找的软件关键字).查看brew版本:brew -v 更新brew版本:brew updateSVN:1.安装: brew install svnNginx1.安装: brew install nginx2.启动: nginx x.指定配置文件启动: nginx -

2020-12-14 15:49:28 429

转载 java中的关键字transient

阅读HashMap源码过程中,看到以下一行代码,对显眼的transient关键字产生好奇,于是上网查阅,看到一篇好文,便记录下来,以便之后查看。/** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We also tolerate length zero in some operat.

2020-11-27 17:23:51 218

转载 JVM夺命连环10问

以下文章来源于科技缪缪,作者科技缪缪https://mp.weixin.qq.com/s/tmMpFmmCx2sWqpB_KibdQwJava虚拟机主要包含几个区域:堆:Java虚拟机中最大的一块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间,堆区细分为Yound区年轻代和Old区老年代,其中年轻代又分为Eden,s0,s1三个部分,他们默认的比例大小是8:1:1的大小。栈:栈是线程私有的内存区域,每一个方法执行的时候都会在栈创建一个栈帧,方法的调用过程就对应着栈的入.

2020-10-30 15:25:48 285

转载 Nginx知识点收录

来自:CSDN,作者:渐暖°链接:https://blog.csdn.net/yujing1314/article/details/107000737Nginx 是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发性能强。1.Nginx知识网结构图正向代理局域网中的电脑通过代理服务器来达到访问网络的目的,称为正向代理。反向代理用户通过代理服务器访问目标服务器,隐藏了真实服务器的IP地址。负载均衡代理服务器根据配置的负载均衡策略将请求转发给服务器集群的某台服务器上。

2020-10-12 14:59:41 103

转载 为什么不能用uuid做MySQL的主键

在MySQL中设计表的时候,MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment。本文从以下几个部分来分析这个问题,探讨以下内部的原因:MySQL程序实例使用uuid和自增id的索引结构对比总结MySQL程序实例:首先来建立三张表,分别是:user_auto_key:自动增长的主键user_uuid:uuid作为主键user_random_key:随机key作为主键根.

2020-09-23 14:26:44 1241

转载 代理模式

【 故事背景 】小明想买法国香水送女朋友,但国内内有货源售卖小明托在法国的小红帮忙购买,并给5%辛苦费小红答应并开启代购模式,转到了很多手续费故事中,[ 小明是一个客户 ],他让小红帮忙购买香水,[ 小红就成了代理对象 ],而[ 香水提供商是一个真实的对象 ],可以售卖香水,小明通过代理商小红,购买到法国的香水,这就是一个代购的例子。这就是最典型的代理模式,代购从供应商购买货物后返回给调用者。代理可以分为静态代理和动态代理两大类:【 静态代理 】优点:代码结构简单,较容易实现缺点

2020-09-04 15:39:32 150

转载 如何决定使用HashMap还是TreeMap

问:如何决定使用HashMap还是TreeMap?介绍:TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap是按照Key值默认升序排序;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的,均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用在Map中插入,删除,定位元素。结论:TreeMa

2020-08-17 10:23:59 148

转载 Java中的JVM级锁

以下文章来源于阿里巴巴中间件 ,作者楚昭简介在计算机行业有一个定律叫“摩尔定律”,在此定律下,计算机的性能突飞猛进,而且价格也随着越来越便宜,CPU从单核到了多核,缓存性能也得到了很大提升,尤其是多核CPU技术的到来,计算机同一时刻可以处理多个任务。在硬件层面的发展带来的效率极大提升中,软件层面的多线程编程已经成为必然趋势,然而多线程编程就会引起数据安全性问题,有矛必有盾,于是发明了“锁”来解决线程安全性问题。在这篇文章中,总结了Java中几把经典的JVM级别的锁。synchronizedsyn

2020-07-30 15:07:01 186

转载 多线程知识解析

1.synchronized的实现原理以及锁优化?</>synchronized的实现原理synchronized作用于【方法】或者【代码块】,保证被修饰的代码在同一时间只能被一个线程访问。synchronized修饰代码块时,JVM采用[monitorenter、monitorexit]来个指令来实现同步synchronized修饰同步方法时,JVM采用[ACC_SYNCHRONIZED]标记符来实现同步monitorenter、monitorexit或者ACC_SYNCHRON

2020-07-29 16:16:22 369

原创 JVM指令手册

栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈lconst_0 将long类型常量0压入栈lconst_1 将long类型常量1压入栈fconst_0 将

2020-07-21 14:24:46 108

原创 Redis详细知识点

1.Redis简介1.1 概念Redis(Remote Dictionary Server)使用c语言开发的一个开源的高性能键值对(key-value)数据库1.2 特征数据见没有必然的关联关系内部采用单线程机制进行工作高性能:读的速度是11w/s,写的速度是8w次/s多数据类型支持字符串类型 string列表类型 list散列类型 hash集合类型 set有序集合类型 sorted_set持久化支持。可以进行数据灾难恢复1.3 应用为热点数据加速查询(主要场景

2020-06-24 17:01:29 859

转载 权限系统设计方案

来源:cnblogs.com/iceblow/p/11121362.html前言1.权限模型2.授权流程3.表结构4.权限框架5.结语前言权限管理是所有后台系统都会涉及到的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的安全问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块,所以队权限这块的涉及比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个APP等.

2020-05-29 14:50:38 1665

转载 Docker入门

容器简介什么是 Linux 容器Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。更加详细的来说,假定您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用依赖于您当前的配置,还要依赖于某些特定文件。与此同时,您的企业还拥有标准化的测试和生产环境,且具有自身的配

2020-05-27 17:44:27 782

转载 40道Java多线程问题总结

文章转载自 https://www.cnblogs.com/xrq730/p/5060921.html#!comments1.多线程有什么用发挥多核 CPU 的优势防止阻塞便于建模2.创建线程的方式?继承Thread类实现Runnable接口后者要好一点,因为实现接口的方式比继承类的方式更灵活,也能减少程序之间的耦合度,面向接口编程 也是设计模式6大原则的核心。3. start() 方法和 run() 方法的区别只有调用了 start() 方法,才会表现出多线程的特性,

2020-05-19 17:44:53 150

转载 HashMap面试问题

前言HashMap 是无论在工作还是面试中都非常常见常考的面试结构。比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到HashMap的,高频考题 **LRU Cache**是需要用到 LinkedHashMap 的。HashMap 用起来很简单,底层实现也不复杂,先来看几道常见的面试题吧。相信大家多多少少都能回答上来一点,不清楚的地方就仔细阅读文本吧。==...

2020-05-07 15:50:49 625

转载 Linux环境下安装 MySQL

作者 | 红颜祸水nvn来源 | CSDN博客,责编 | 夕颜1.准备软件首先准备 mysql 客户端和服务端的 rpm 安装包mysql-client【提取码:1jrb】mysql-server【提取码:xfww】2.安装mysql之前首先查看一下本机是否已经安装了MySQLrpm -qa | grep -i mysql如果有则强制删除rpm -e mysql-libs...

2020-05-07 09:49:30 123

转载 9条MySQL总结

作者:Java建设者https://mp.weixin.qq.com/s/iuqrj7cV_GL72WUVmoBulgMySQL事务四大特性一说到MySQL事务,你肯定能想起来四大特性:原子性,一致性,隔离性,持久性 ,下面在对这事务的四大特性做个描述原子性(Atomicity):原子性指的就是MySQL中包含事务的操作要么 全部成功,要么全部失败回滚,因此事务的操作如果成功就必须...

2020-04-29 10:02:47 226

原创 Linux防火墙常用命令

首先得知道自己系统是什么版本的:cat /etc/redhat-releaseCentOS 6linux防火墙常用命令1.永久性生效,重启后不会复原开启:chkconfigiptables on关闭:chkconfigiptables off2.即时生效,重启后复原重启防火墙方式一:/etc/init.d/iptables restart方式二:service iptables...

2020-04-21 14:55:05 337

转载 为什么代码规范要求SQL语句不要过多的join?

来源:juejin.im/post/5e0443ae6fb9a0162277a2c31.Linux如何查看内存的使用情况?free 或者 top2.free命令可以看到那些信息?total 总内存used 已用内存fres 空闲内存buff/cache 已使用的缓存avaiable 可用内存3.如何清理已使用的缓存(buff/cache)?sync; echo...

2020-04-17 10:01:36 399

转载 书写高质量SQL的30条建议

以下文章来源于捡田螺的小男孩 ,作者捡田螺的小男孩前言本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助1,查询SQL尽量不要使用select *,而是select具体字段反例select * from employee;正例select id,name from employee;理由只取需要的字段,节省资源,减少网...

2020-03-27 09:20:16 135

转载 一道java面试题

作者:方志宏https://zhuanlan.zhihu.com/p/57859872题目很简单,完成代码,判断一个整数是否是奇数:public boolean isOdd(int i)菜鸟:public boolean isOdd(int i){ if(i%2 == 1){ System.out.println("是奇数"); }else{ System.out.pr...

2020-03-25 10:46:54 157

转载 Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

来源:jianshu.com/p/6189275403ed一,概念幂等性,通俗得说就是一个接口,多次发起同一个请求,必须保证操作只能执行一次比如:订单接口,不能多次创建订单支付接口,重复支付同一笔订单只能扣一次钱支付宝回调接口,可能会多次回调,必须处理重复回调普通表单提交接口,因为网络超时等原因多次点击提交,只能成功一次等等二,常见解决方案唯一索引 – 防止新增脏数据...

2020-02-14 14:32:40 176

转载 Git基本命令大全

1,命令: git clone -b < 指定分支名 > < 远程仓库地址 >作用:克隆指定分支例子:git clone -b bestore_master ssh://git@git-ssh.xxx.com/xxx.git2,命令:git branch作用:查看当前分支3,命令:git branch -r 或 git branch -a作用:查...

2020-02-01 11:46:58 216

转载 Mybatis十八连环问!!!

来自:开源中国,作者:祖大俊链接:https://my.oschina.net/zudajun/blog/7476821.#{}和${}的区别是什么?${}是properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如 ${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的...

2020-01-31 18:18:15 203

转载 java实现8种排序算法

转载自作者:KaelQ,www.jianshu.com/p/5e171281a3871.直接插入排序经常碰到这样一类的问题;:把新的数据插入到已经排好的数据列中。1.将第一个数和第二个数排序,然后构成一个有序数列。2.将第三个数插入进去,构成一个新的有序序列。3.对第四个数,第五个数…直到最后一个数,重复第二步。如何写成代码:1.首先设定插入次数,即循环次数,for(i...

2020-01-20 13:53:31 194

原创 SpringCloud多模块打包报错:Unable to find main class

解决方案:不使用springboot的maven插件改为使用普通的maven插件,使用springboot的maven插件意味着每个模块都需要有启动类,而使用普通的插件则不需要。<!-- 使用springboot的maven插件会报找不到主类错误 --> <!--<build> <plugins> <plugin> &...

2020-01-10 19:30:30 1149

转载 单例模式-懒汉式&饿汉式&枚举

以下文章来源于程序员修炼 ,作者静幽水1.问题背景某公司老板在招程序员是承诺帮忙解决单身问题,给程序员分配一个女朋友,于是单身的小强毫不犹豫的去应聘了,并被顺利录用。那么我们怎么用代码来模拟一下呢?首先定义一个女朋友的类,拥有俩个属性,姓名和年龄。public class GirlFriend { private String name; private int age; public...

2019-12-31 19:38:23 531

转载 ArrayList集合为什么不能使用foreach增删改?

译者:奋斗的小程序员链接:http://suo.im/4XaI8Q编程过程中常常需要使用到集合,而ArrayList是我们常常使用的,但是最近在一次删除和增加中出现了一些问题,分享记录下。分下如下俩段代码List<String> arrayList1 = new ArrayList<String>();arrayList1.add("1");arrayList1...

2019-12-25 11:00:40 398

转载 理解悲观锁和乐观锁

以下文章来源于公众号:Java建设者,作者elliottsJava按照锁的实现分为乐观锁和悲观锁,乐观锁和悲观锁并不是一种真实存在的锁,而是一种设计思想,乐观锁和悲观锁对于理解java多线程和数据库来说至关重要,那么本片文章就来详细探讨以下这俩种锁的概念以及实现方式。悲观锁悲观锁 是一种悲观思想,他总认为最坏的情况可能会出现,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把...

2019-12-15 17:19:31 195

转载 SpringBoot整合Scheduled(定时任务器)

原文:http://mrw.so/57DDRRScheduled 定时任务器:是Spring3.0以后自带的一个定时任务器。我们来看下在SpringBoot中我们怎么使用一、项目使用1.创建项目添加依赖创建一个SpringBoot项目,并添加如下依赖<dependencies> <dependency> <groupId>org...

2019-12-02 09:58:54 187

空空如也

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

TA关注的人

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