自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JAVA菜鸟

演变过程

  • 博客(47)
  • 资源 (2)
  • 问答 (8)
  • 收藏
  • 关注

原创 Typora篇-忍痛开启

下面开启我的Typora整活历程, 大家有什么好用的插件快捷方式一起来分享啊。语雀专业会员即将到期, 我看着99元的学费款, 我决定重新用回Typora。虽然里面有一些文件但是我还是舍不得ಥ_ಥ 99元巨款。

2024-07-08 19:32:22 76

原创 Class文件结构及解析

class文件结构及解析

2023-07-11 10:55:55 249

原创 Mybatis XML文件转换SQL

Mybatis 动态XML转换SQL

2023-07-06 18:40:03 1965

原创 ElasticSearch-索引别名

假如我们的日志数据是以月数格式存储, 列如1,2,3月分别创建索引, 当我们想查询一个用户3个月中一个出现次数, 需要分别查询索引, 这种方式比较低效, 可以创建索引别名(比如一个索引在创建以后, 有些值是不能改变的(主分片个数), 但是随着业务的增大,需要更改索引参数进行优化, 我们需要平滑解决, 即更改索引设置,又不更改索引名称,当一个别名只绑定了一个索引时,可以指定别名进行写入,如果一个别名绑定了多个索引,不可以指定别名写入。为例, 一个主分片的默认值是1, 我们需要将主分片的数量设置成10。

2022-09-11 21:48:56 829 1

翻译 Mysql 8.0查看锁状态

查看运行中的锁状态, 以及类型

2022-08-26 10:40:02 2832

原创 InnoDB - 锁(持续更新中...)

快速了解Mysql锁类型以及锁的分类

2022-08-23 16:18:29 242

原创 并发与并行

并发并行摘要(1): Concurrency and ParallelismIn a multithreaded process on a single processor, the processor can switch execution resources between threads, resulting in concurrent execution.In the same multithreaded process in a shared-memory multiprocess.

2022-04-21 16:17:58 864

原创 一 简单使用ReentrantLock

ReentrantLock在多线程中可以使用,Synchronized关键字实现线程与线程之间的同步互斥但在JDK1.5中新增ReentrantLock类也能达到相同的目的, 并且扩展的功能也十分强大比如 嗅探锁定/多路分支通知等功能, 而且在使用上也比Synchronized灵活很多ReentrantLock 实现同步public class ReentrantLockTest { static ReentrantLock reentrantLock = new Reentran

2022-03-15 15:24:22 733

原创 设计模式之适配器模式

适配器模式文章目录适配器模式@[toc]适配器中的角色简单案例类适配器模式案例对象适配器将一个类的接口转化为客户希望的另外一个接口, 使得原本由于接口不能兼容而不能一起工作的哪些类可以在一起工作.该模式的有点如下客户端通过适配器可以透明的调用目标接口复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类将目标类和适配者类解耦,解决了目标类和适配者类接口不一致问题在很多业务场景符号开闭原则缺点:适配器编写过程中需要结合业务场景全面考虑, 可能增加系统复杂性增加

2021-09-24 16:37:21 97

原创 Mysql性能优化-架构介绍(1)

Mysql架构介绍文章目录Mysql架构介绍Mysql 储存引擎InnodbMyISAMMemoryMysql逻辑架构SQL执行流程架构图Connection Pool(连接池)SQL Interface(SQL接口)parser(解析器)Optimizer(优化器)Cache & Buffer(查询缓存)Pluggable Storage Engines(可插拔存储引擎)Mysql 储存引擎Mysql数据库以及其分支最重要的储存引擎有 Innodb, MyISAM, Memory 简单说 存

2021-09-11 20:56:56 149

原创 Arthas-java诊断工具

ArthasArthas 是 alibaba 开源的java诊断工具, 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。安装方式使用arthas-boot(推荐)下载arthas-boot.jar,然后用java -jar的方式启动:curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jar打印帮助信息:

2021-09-09 16:42:15 140

翻译 设计模式中原则篇

设计模式中原则文章目录设计模式中原则开闭原则实现思路里氏替换原则里式替换的作用实现方法里式替换部分内容摘译 https://www.jianshu.com/p/5d677d9eafb4全篇内容摘译 http://c.biancheng.net/view/1317.html开闭原则当应用的需求进行改变时,在不修改软件实体源代码的基础上, 可以扩展模块功能,使其满足新需求软件实体项目中规划分出的模块类与接口方法实现思路​ 可以通过抽象约束,封装变化来实现开闭原则,通过接口

2021-09-06 14:46:33 104

原创 LDAP介绍

LDAP 讲解什么是LDAPLDAP(Light Directory Access Portocol)是一款轻量级目录访问协议, 属于开源账号集中管理的实现,且支持众多系统版本OpenLdap是LDAP的一种开源实现, OpenLdap是在X.500的基础上进行改进的, 但与X.500 也有不同之处,例如OpenLDAP 支持TCP/IP 协议等,目前TCP/IP 是Internet 上访问互联网的协议。OpenLDAP 则直接运行在更简单和更通用的TCP/IP 或其他可靠的传输协议层上,避免了在O

2021-06-04 21:23:34 449

翻译 Class文件组成介绍

Class文件组成介绍参考 1- 9 https://blog.csdn.net/zhangjg_blog/article/details/22432599整理在这里帮自己梳理描述符概述每种基本数据类型都有一个大写字母做对应, void也有一个大写字符做对应基本数据类型和void类型类型的对应字符byteBcharCdoubleDfloatFintIlongJshortSbooleanZvoidV那

2021-04-23 11:33:58 463

翻译 StringTable字符串池介绍

String_Table常量池与字符串池的关系我们先准备了一点简单的代码:public class StringTable1 { public static void main(String[] args) { String s1 = "a"; String s2 = "b"; String s3 = "ab"; }}上面代码运行完成以后生成StringTable1.class对象, 然后通过javap -v StringTab

2021-04-20 20:00:40 117

原创 JVM 内存区域介绍

JVM介绍JVM整体结构首先我们需要知道java中都由什么组成?对象,对象引用,类, class文件,成员变量,局部变量,静态变量,方法,基本数据类型(int…) 下面我们介绍这些组成在JVM那一块存储方法区方法区存储的内容:运行时常量池, 字段和方法数据, 以及方法和构造函数的代码, 包括用于类和实例初始化以及接口初始化的特殊方法JDK1.8以前JDK1.8以前, hotspot方法区成为永久代, 方法区存在与JVM管理,设置永久代参数 -XX:MaxPermSize

2021-04-20 19:59:11 335 1

原创 Spring AOP 与 IOC

Spring AOP 与 IOCIOC (Inversion of control控制反转)IOC 不是一个技术, 而是一种思想在传统的Java SE中, 我们使用一个对象时需要明确new一个对象, 而引入一个Spring IOC后 我们将控制权限教给了Spring容器来控制.所有对象创建到销毁由Spring来控制,**控制以后怎么来使用呢? 这里引入了一个DI(依赖注入)**来实现IOC 扩展 DI(依赖注入)上面我的讲到 Spring 的IOC 将 对象的创建于销毁进行了控制, 只是控制了

2020-12-07 21:46:17 170 1

原创 Redis 淘汰策略

Redis 淘汰策略Redis可选项volatile-lru从设置了过期时间中的数据集中, 选择最近最少没有使用的数据,进行释放allkeys_lru在全部的数据集中, 选择最近最少没有使用的数据,进行释放LRU算法LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最

2020-11-24 12:11:12 329

原创 根据链表算法学习对象引用

根据链表算法学习对象引用题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链

2020-11-18 18:02:17 205

原创 volatile

volatile问题介绍​ 为了提高处理器的处理效率, 在处理器与内存之间添加了多级缓存, 由于引入了多级缓存就会发生缓存不一致问题, 每个线程都有自己工作内存, 自己的工作内存当中保存了自己使用到的变量从主内存复制到自己的工作内存中,注意: 介绍一下status修饰静态变量, 当一个变量被status修饰,该变量所有实例共享,存在一个误区在多线程中静态变量的改变其他线程JVM尽量也会保证可见性,但是不能完全保证详细status关键字介绍地址 : 未更新...volatile 可见性

2020-11-17 12:06:19 67

原创 冗余表数据同步方案(简单理解)

冗余表数据同步方案(简单理解)看了很多冗余的文章, 大概也就饭强一致与最终一致, 简单谈谈自己的理解业务场景已网约车为例, 当一个用户下了一个订单王司机接单,并且完成了订单, 订单表冗余存储了用户手机号码, 和用户姓名, 司机姓名, 司机车辆信息, `司机手机号当司机修改了手机号码, 用户在打开订单时拨打司机电话, 我的天????.打不通啊,强一致性在司机修改手机号码时同步修改订单中司机的手机号码, 这种情况保证强一致,但是这种情况, 司机修改一个手机号码的时间会特别漫长, 这是司机吧手机都

2020-11-12 21:54:20 690

原创 Elasticsearch(ES)简介及基本使用

ES 简介ES是一个使用java语言编写的并且基于Lucene编写的搜索引擎, 他提供了分布式的全文搜索服务, 还提供了一个RESTful风格的web接口, 官方还对多种语言提供了相应的APILucene?Lucene 本身就是一个搜索引擎的底层,ES特点分布式: ES主要为了横向扩展能力全文检索: 将一段词语进行分词, 并且将分出的单个词语统一的放入一个分词库中,在搜索时,根据关键字去分词库中搜索去找到想找到的内容,(倒排索引)RESTful风格web接口: 操作ES非常简单, 只需要

2020-11-05 22:08:06 25242 1

原创 BigDecimal介绍使用

Bigdecimal在小数小点计算中如果使用double.float经常会遇到丢失经度,这个时候就要使用Bigdecimal来保证精度首先介绍一下初始化方式Bigdecimal 有两种创建方式new BigDecimal() Bigdecimal.valueOf()这里建议如果是小数类型使用valueOf()方式,因为如果使用new Bigdecimal在初始化时还是有可能出现精度丢...

2020-04-21 14:31:42 495

原创 IDEA创建MAVEN项目

以前开发都用的eclipse,该为IDEA有点吃不消,作为记录使用tomcat

2019-04-08 11:47:52 76

原创 并发编程---入门

Synchronized关键字synchronized有加锁的作用,所有的synchronized修饰方法都会顺序执行(占用CPU的顺序)当synchronized关键字修饰静态方法(static)时升级为类锁,如果不是静态方法两个对象之间没有关系Synchronized代码块可以做更细粒度的 可以做对象锁 可以做类锁 可以任意对象锁 同类型锁互斥,不同类型锁互不干扰不要在线程内部...

2019-04-08 00:24:12 68

原创 TCP三次握手浅谈

TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机)ACK(acknowledgement 确认)PSH(push传送)FIN(finish结束)RST(reset重置)URG(urgent紧急...

2019-03-29 11:45:15 101

原创 设计模式之装饰模式

定义:动态的给一个对象添加一些额外的职责,就添加功能来说,装饰模式比生成子类更灵活给已有的功能动态添加更多功能的一种方式当系统需要新的功能时,时想旧的类中添加新的代码,这些新的代码主要装饰了新的功能或者核心职责在主类中添加新的代码,新的属性或者新的逻辑,从而添加的主类的复杂度装饰模式提供了一个非常好的解决方案,它吧每个要装饰的功能放在,并让这个类包装它所要装饰的对象,因此在需要装饰特殊行...

2019-03-18 21:53:43 82

原创 设计模式之策略模式

它定义了算法家族.分别封装起来让他们可以互相替换.这个模式让算法的变化不会影响到使用算法的用户策略模式是一种定义一系列的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不停,.简单来说策略模式就是来封装算法的,但是在实践过程中,我们发现可以使用它封装所有类的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理多变的可能性优点:简化测试...

2019-03-12 00:24:10 139

原创 设计模式之简单工厂模式

概念简单工厂决定实例化那个对象,简单工厂是最简单的工厂模式,工厂类是整个工厂模式的关键,通过工厂类外界可以从直接创建具体产品的尴尬局面摆脱出来,不需要管对象是如何创建出来如何组织的,明确各自的职责和权力有利于软件体系结构的优化.缺点:全部的创建对象的逻辑全部集中在工厂类中,违反了高内聚责任分配原则,它所能创建的对象都是实现考虑好的,如果要添加新的对象还是需要修改工厂类以下程序是实现输...

2019-03-07 19:07:11 168

转载 redis开启远程访问

启动是需要配合配置文件启动redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf 打开redis.conf文件在NETWORK部分有说明  ################################## NETWORK #####################################   # By defaul...

2019-01-17 13:26:18 948

原创 Mysql优化之建表原则

建表原则(表的优化与列类型原则)1.定长与变长分离 如 id int占4个字节,char(4) 占4个字符长度,也是定长,time即每一单元值占的字节是固定的 核心且常用字段,直建成定长,方在一张表上 而 varchar,text,blob这种变长字段,适合单方一章表,用主键与核心表关联起来2.常用字段要与非常用字段分离 需要结合网站的具体业务分析,分析字段的...

2019-01-08 20:25:57 1313

原创 SSH安装及配置

安装sshsudo apt install ssh开启sshservice ssh startssh设置 root登录密码passwd root (回车后按照提示输入密码)service ssh startssh设置root用户登录vim /etc/ssh/sshd_configPermitRootLogin yes重启sshservice ssh restart配置无密码...

2019-01-03 16:37:07 1616

原创 Docker安装Hadoop

首先需要Docker安装可以看这片文章安装完成以后pull最新办Ubuntudocker pull ubuntu:latest运行Docker容器docker run --privileged -it -h master --name master ubuntu:latest /bin/bash更新软件源apt-get update下载wgetapt-get i...

2019-01-03 16:01:46 1082

原创 Docker安装

Ubuntu 安装dockersudo apt-get install docker.ioCentos7安装步骤List item安装必要的一些系统工具yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息yum-config-manager --add-repo http://mirror...

2019-01-03 15:46:43 138

转载 Ubuntu下sublime Text3 无法输入中文

下载gitsudo apt install git获取sublime-text-imfix.gitgit clone https://github.com/lyfeyaj/sublime-text-imfix.git将 libsublime-imfix.so 放在sublime_text文件夹下cd ~/sublime-text-imfixsudo cp ./lib/libsubl...

2018-12-27 20:27:48 92

转载 Hadoop书籍

1.“Hadoop.Operations.pdf.zip”http://vdisk.weibo.com/s/vDOQs6xMAQH62.“Hadoop权威指南(中文版)(带书签).pdf”http://vdisk.weibo.com/s/wxJYuVE573j3."[Hadoop权威指南(第2版)].pdf"http://vdisk.weibo.com/s/vmaSwlKBP5...

2018-12-18 11:21:25 1099

原创 反射学习

什么是反射程序可以访问,检测和修改它本身或行为的一种能力JAVA反射是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,这种动态获取信息,以及动态调用对象的方法称为JAVA语言的反射机制在运行是给定类的名字就可以调用类的信息,获取累的所有信息以及方法(包括私有的,实现的接口)为什么要用反射机制这就涉及到了动态与静态编译类型初始化方式优...

2018-12-09 17:34:06 98

翻译 HashTable与HashMap

继承的父类不同HashTable继承Dictionary类HashMap继承AbstractMap类不过都实现了Map,Cloneable(可重复),Serializable(可序列化)对外提供的接口不同HashTable比HashMap多提供了elments()和contains()两个方法elments()方法继承自HashTable的父类Dictionary,el...

2018-12-06 18:59:26 90

原创 RabbitMQ初学习

1.消息队列解决了什么问题?异步处理应用解耦流量削峰日志处理2.rabbitMQ安装与配置echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.listwget -O- https://www.rabbitmq.com/rabbitmq-...

2018-10-10 22:51:46 116

转载 mysql 5.7 忘记密码

mysql忘记密码方法一:vi /etc/my.cnf在[mysqld]下加上 skip-grant-tables,如:[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables 重启mysqlservice mysqld restart 登陆...

2018-09-17 17:37:35 161

elasticsearch简单介绍及使用

初步学习elasticsearch, 对各种搜索的方式的介绍,ES是一个使用java语言编写的并且基于Lucene编写的搜索引擎, 他提供了分布式的全文搜索服务, 还提供了一个RESTful风格的web接口, 官方还对多种语言提供了相应的API

2020-11-08

RebbitMQ简单介绍

自己学习的的时候总结的RebbitMQ从安装到JAVA代码比较易懂

2018-12-05

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

TA关注的人

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