自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

原创 git 基础命令集合

git 命令1、从远程仓库更新到本地git status(查看本地分支文件信息,确保更新时不产生冲突)git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地)git checkout – [file name] (若文件有修改,可以还原到最初状态; 若文件需要更新到服务器上,应该先merge到服务器,再更新到本地)git checkout remote branch (若分支为本地分支,则需切换

2021-05-12 10:24:58 218

原创 redis分布锁的一些问题解析

我在使用redis分布式锁的时候,遇到过的一些问题,如下:加锁解锁实现方式一:/** * @param key 锁的key,全局唯一的key * @param value 锁的value,开始value和key值一样 * @return 加锁成功或失败 **/public boolean tryLock(String key, String value) { // 第一步设置key,如果存在就设置失败,加锁失败 Long set = jedisCluster.setnx(key

2020-12-10 15:34:48 322

原创 java面向对象编程的三大特性

前言java面向对象的特性包括继承、多态、封装。一、继承继承可以这样理解,比如孩子继承父母的财产一样,子类可以继承父类的所有属性和方法,同时子类也可以拥有自己独有的属性或者方法。需要注意的是java的继承是单继承的,也就是说一个类只能继承一个类,一个子类只有能一个父类。继承的好处:代码新的是实现很容易,代码简洁;比如A继承B,那么A就可以直接使用B类的非私有方法了;方便扩展继承的坏处:打破了封装,因为父类向子类暴露了实现细节增加了耦合度,如果父类做了一些修改,对应的子类可能也会面临着

2020-12-07 17:19:43 347

原创 2020年12月PMP考试心得

昨天考完了PMP,说实话,心里是没有底的,跟自己平时做测试的时候状态完全不一样。这次考试都没有做完,有20道题来不及做就蒙了。深夜分享下考试的体会吧!1、 首先,很重要考试的前一天一定要休息好,我这次考试前就因为没有休息好,导致考试的时候精力不集中审题很慢,状态不佳;2、 心态很重要,考试前也不要过多纠结,当做是小考;3、做题的时候看关键词也是很重要的,有的题目很长,有点费时间,但是能快速抓住关键词就能快速定位答案解题;4、考试当天的早餐很重要,一定要吃好;要不然考试的时候,饥饿影响发挥,大脑供能不

2020-12-06 00:35:15 1451 2

原创 浅谈spring注解之Autowired的required属性

我在使用spring框架进行开发过程中,会使用@Autowired注解进行对已有的bean进行注入。那么我们来简单分析下@Autowired的属性以及具体的使用。1、Autowired注解@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME

2020-10-30 11:34:07 6532

原创 AggregationBuilders.terms分词问题

使用elasticSearch想对一个字段进行聚合的时候,但是又不想对该字段进行分词,那么应该怎么处理呢?首先我们在创建mapping的时候将fields的type设置为keyword"your_field_name": { "type": "text", "fields": { "keyword": { "type": "keyword" } }, "fielddata": true}在聚合查询的时候使用:Agg

2020-10-27 16:32:50 4586

原创 SpringBoot和Elasticsearch整合启动报错

报错:NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{2PVl0_lVSuaqdH-I3wMeoQ}{127.0.0.1}{127.0.0.1:9300}]]原因可能分析:配置的cluster.name不正确;端口不正确,tcp访问端口是9300;SpringBoot和Elasticsearch版本对应不上SpringBoot和Elasticsearch版本对应关系

2020-10-23 14:41:13 407

原创 HashMap之tableSizeFor方法算法详解

最近在看HashMap的源码的时候,发现有参构造方法会调用tableSizeFor方法来确认容量的大小,tableSizeFor方法里面的算法挺巧妙的,所以专门研究了下,下面跟大家分享下我对tableSizeFor方法的一个理解。我们先看看方法源码:/** * Returns a power of two size for the given target capacity. */static final int tableSizeFor(int cap) { int n = cap -

2020-09-24 15:30:55 789 2

原创 Java设计模式之单例模式的7种写法

简介单例模式是23种设计模式中比较基础的设计模式了。什么是单例呢,就是全局唯一的一个实例,一个类只有一个实例,只能通过唯一的入口来获取实例。下面就跟大家分享下7种实现方式饿汉式顾名思义,取名叫饿汉式,就是一开始创建实例。public class Hungry { private int age; private static final Hungry instance = new Hungry(); private Hungry() {} public Hung

2020-09-23 16:24:38 189

原创 Java位运算符>>和>>>的区别

今天给大家分享运算符>>和>>>的区别首先我们先看下例子:public class ShiftOperatorTest { public static void main(String[] args) { int a = 8; System.out.println("a >> 1 = " + (a >> 1)); System.out.println("a >>> 1 = "

2020-09-23 10:56:09 275

原创 教你快速理解雪花算法的原理和java实现

一、简介雪花算法是Twitter开源的分布式ID生成算法。生成的ID是一个64位的Long类型的数字,是一个全局唯一的ID;当然这64位的全局唯一ID是由时间戳、机器ID、序列号组成的,如果涉及到不同的机房,可以改进下由由时间戳、机房ID、机器ID、序列号组成。具体是如何分配的,如下图所示:组成部分详解1、最高位是符号位,始终为0,因为需要正数;2、时间戳第二部分是41位的时间戳,自增的时间戳(毫秒级),最大可以存(2^41 - 1)的毫秒数,差不多可以存69年3、机房ID第三部分是5位的

2020-09-22 19:11:24 484

原创 java动态代理使用举例

一、什么是代理举个例子,比如小明想要买房子,但是他自己由于上班没有时间,不能打乱上班的节奏,这个时候就想到了中介,小明就找到中介代替小明看房子,看好过后,小明再自己去确认并付钱,然后中介再代理小明办好手续。这就是代理,这里的中介就是代理对象,小明就是被代理对象。代理的好处:通过代理对象间接操作被代理的目标对象,防止直接修改目标对象,通过代理对原有业务进行增强。一、静态代理在使用动态代理之前,我们先看看静态代理的实现。接口:public interface Peopleable { voi

2020-09-18 14:17:27 253

原创 JVM内存模型之运行时数据区简介(初级篇)

JVM内存模型一、JVM 1.8内存区域划分1、程序计数器(线程私有)每个线程都有自己的程序计数器,用于记录当前线程虚拟机字节码的指令地址,如果CPU切换,切换回来可以继续执行;如果当前线程是native方法,则为空。2、虚拟机栈(线程私有)java每启动一个线程,就会有自己的一个虚拟机栈,每个方法会创建一个栈帧,用于存放:局部变量表操作数栈动态链接方法返回地址如果线程请求的虚拟机栈深度大于虚拟机所允许的最大深度则会抛出StackOverflowError异常;如果虚拟机栈可以动态

2020-09-10 14:40:20 134

原创 redis常用命令手册大全 - 笔记

一、redis key 命令1、EXISTSredis的 EXISTS 命令用于检查指定的key是否存在。返回值说明0key不存在1key存在基本语法:127.0.0.1(127.0.0.1:6379)>EXISTS test_key"0"127.0.0.1(127.0.0.1:6379)>EXISTS yes_key"1"2、PEXPIREredis PEXPIRE 这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key

2020-09-03 16:13:09 593

原创 阻塞队列之LinkedBlockingQueue - 源码解析(一)

一、概述LinkedBlockingQueue是一个单向链表的阻塞队列,FIFO队列,是无界队列,当前如果初始化的时候指定大小,也可以是有界队列。二、思想LinkedBlockingQueue思想:数据结构是单项链表生产者和消费者使用同一个队列生产者和消费者分别使用自己的锁,读写分离,生产者使用putLock,消费者使用takeLock生产者只有在队列未满时生产,队列满时生产者线程就进行阻塞消费者只有在队列有数据时消费,队列没有数据消费者线程就进行阻塞三、源码解析撤销:Ctrl/Co

2020-08-27 20:04:12 159

原创 SpringCloud Alibaba nacos源码解析(一)-客户端发送服务注册

概述nacos作为服务注册中心,关键特性包括服务发现和服务健康监测、动态配置服务、动态DNS服务、服务及其元数据管理等,详细的介绍可以去nacos官网:https://nacos.io 查看。本文只针对客服端服务注册的主要流程讲解和源码解析,其他功能后续会持续更新。如果有不对的地方,还望指出。nacos版本我用的nacos服务端版本1.1.4,github地址:https://github.com/alibaba/nacos客户端:spring-cloud-alibaba-nacos-discove

2020-08-26 17:38:44 451

原创 win10 RabbitMQ延时队列插件的安装与配置

RabbitMQ延时队列插件的安装与配置延时队列的应用场景在实际应用中可能会用到延时队列。比如:商城的订单管理,如果提交订单后在规定的时间内未支付,自动取消订单;定时处理指定的消息;消息重试,业务削峰…等等rabbitmq_delayed_message_exchange插件的安装一、下载插件我当前的rabbitmq版本是3.8.5,到rabbitmq网站下载,链接链接: https://www.rabbitmq.com/community-plugins.html,然后找到rabbit

2020-07-19 10:58:43 2158

原创 linux上安装rabbitmq及遇到的问题解决

一、安装ErlangRabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发,所以RabbitMQ依赖Erlang,需要先安装Erlang。安装过程如下:[root@vmware rabbitmq]# wget https://packages.erlang-solut...

2018-07-20 16:36:50 6813 2

用类写的职工管理档案

用C++类写的关于职工档案的代码,对类可以有深入的了解,对于初学者来说可以好好看看。。。。

2012-11-22

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

TA关注的人

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