-
docker安装redis
docker安装redis查找docker search redisNAME DESCRIPTION STARS OFFICIAL AUTOMATEDredis Redis is an open source key-value store that… 76...…
-
docker安装rabbitmq
docker安装rabbitmq查找#docker search rabbitmqNAME DESCRIPTION STARS OFFICIAL AUTOMATEDrabbitmq RabbitMQ is an open sou...…
-
docker安装elasticsearch及常用操作
安装elasticsearchdocker pull elasticsearch:7.2.0下载完毕后启动esdocker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.2.0浏览器中打开http://localhost:9200 看到以下表示安装成功{ "name" : "530dd7820315", "cluster_name...…
-
Win10安装docker及常用操作
#安装Win10需要开启Hyper-V选择应用和功能->启用或关闭Windows功能选中Hyper-V点击确定,电脑重启配置配置完成后,安装Toolboxhttps://www.docker.com/get-docker安装完成后docker图标就会出来,可以用docker version查看版本号。#docker versionClient: Docker Engine - Community Version: 19.03.5 API version: ...…
-
微服务使用实例
使用环境 jdk 8 maven 3.6 编辑器 idea提前准备 RabbitMQ mac环境下 (brew 安装)brew install rabbitmq brew services start rabbitmq 默认用户名和密码:guest,guest nacos https://github.com/alibaba/nacos/releases nacos-server-1.1.4.zip 解压 目录 bin中 sh startup.sh -m ...…
-
Spring Boot 拦截器操作 (三)
#Spring Boot 拦截器操作 (三)@(Spring Boot)[Filter]使用示例package com.example.demo.filter;import org.apache.catalina.filters.RemoteIpFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean...…
-
Spring Boot 线程操作 (二)
#Spring Boot 线程使用(二) @(Spring Boot)[SyncTaskExecutor|SimpleAsyncTaskExecutor|ThreadPoolTaskExecutor]使用示例package com.example.demo.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.task.AsyncTaskExecut...…
-
Spring Boot 添加日志配置 (一)
#Spring Boot 添加日志配置 (一) @(Spring Boot)[log|slf4j|logback]spring.io下载或者idea生成Spring Bootpom.xml 添加配置<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId></dependency><dependen...…
-
IDEA 快捷键
快捷键 介绍 Tab 缩进 / 配合代码提示实现自动完成 Shift + Tab 取消缩进 Ctrl + Z 撤销 Ctrl + Shift + Z 取消撤销 Ctrl + Y 删除光标所在行 或 删除选中的行 Ctrl + X 剪切光...…
-
Eclipse 快捷键
java智能提示 打开Eclipse,选择打开” Window - Preferences”。 在目录树上选择”Java-Editor-Content Assist”,在右侧的”Auto-Activation”找到”Auto Activation triggers for java”选项。默认触发代码提示的就是”.”这个符号。 在”Auto Activation triggers for java”选项中,将”.”更改:.abcdefghijklmnopqrstuvwxyzABCDE...…
-
Java 面试题整理
JavaEE 企业JavaSE 标准JavaME 微型JRE 包含 JVMJDK 包含 JREJava程序初始化的顺序是怎么样的?初始化一般遵循三个原则: 静态对象(变量)优先于非静态对象(变量)初始化,其中静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次。 父类优先于子类进行初始化。 按照成员变量定于顺序进行初始化。父类静态变量、父类静态代码块、子类静态变量、子类静态变量代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类...…
-
新建一个laravel项目!
本地环境搭建 mysqlphp > 7 PHP OpenSSL 扩展 PHP PDO 扩展 PHP Mbstring 扩展 PHP Tokenizer 扩展 PHP XML 扩展php新版本 > 7 快速启动,可以抛弃集成环境包,直接启动 php - S localhost:8000Composer安装Laravel installer composer global require "laravel/installer"安装完成后,新建项目 lar...…
-
md的常用语法
下面列举了一些常用的方法链接淘宝网图片标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题tips:几个 # 就是几级标题,最小到六级斜体这是斜体这是斜体链接斜体,这是斜体链接tips:斜体和链接可以混用为字体加颜色 这是红色字体 这是绿色字体 这是黄色字体 这是蓝色字体tips:修改color为对应的颜色英文字母即可,复杂的颜色不要想了,况且大家也用不到为自体加粗加粗字体EmailEmail:test@test.com无...…
-
Java ThreadLocal 作用(线程本地存储)
ThreadLocal叫线程本地变量,也叫线程本地存储,ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。ThreadLocalMap(线程的一个属性) 每个线程中都有一个自己的ThreadLocalMap类对象,可以将线程自己的对象保持到其中,各管各自,线程可以正确的访问到自己的对象。 将一个公共的ThreadLocal静态实例作为key,将不同对象的引用保存到不同线程的ThreadL...…
-
Java如何在两个线程之间共享数据
Java如何在两个线程之间共享数据Java 里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要关注点有两个,可见性和有序性原子性。Java内存模型解决了可见性和有序性的问题,而锁解决了原子性的问题,理想情况下我们希望做到同步和互斥。 将数据抽象成一个类,并将数据的操作作为这个类的方法。public class MyData { private int j=0; public synchronized void add(){ j++; Sy...…
-
volatile 关键字的作用(变量可见性、禁止重排序)
Java volatileJava语言提供乐一种稍弱的同步机制,volatile变量,用来确保将变量的更新操作通知到其他线程,volatile变量具备两种特性,volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量总是会返回最新的写入值。变量可见性保证该变量对所有线程可见,这里的可见性是指当一个线程修改乐变量的值,那么新的值对于其他的线程可以立即获取。禁止重排序volatile禁止了指令重排,比synchronized更轻量级的同步锁。在访...…
-
Java Semaphore(信号量-控制同时访问的线程个数)
Semaphore(信号量-控制同时访问的线程个数)信号量,Semaphore可以控制同时访问的线程个数,通过acquire()获取一个许可,如果没有就等待,而release()释放一个许可。semaphore类中比较重要的方法: public void acquire();用来获取一个许可,若无,则一直等待,直到获取许可成功。 public void acquire(int permits);获取permits个许可。 public void release();释放许可,在释放之...…
-
Java CyclicBarrier(回环栅栏-等待至 barrier 状态再全部同时执行)
CyclicBarrier(回环栅栏-等待至 barrier 状态再全部同时执行)字面意思回环栅栏,可以实现让一组线程等待至某个状态之后再全部同步执行。当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态叫做barrier,当调用await()方法之后,线程就处于barrier了。CyclicBarrier中最重要的方法就是await方法,它有2个重载版本: public int await(); 用来挂起当前线程,直至所有线程都到达barrier...…
-
Java CountDownLatch (线程计数器)
CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,需要等待其他4哥任务执行完毕后才能执行,此时就可以用CountDownLatch来实现。final CountDownLatch latch = new CountDownLatch(2);new Thread(){ public void run() { System.out.println("子线程"+Thread.currentThre...…
-
Java 阻塞队列原理
Java 阻塞队列原理在阻塞队列中,线程阻塞有两种情况: 当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。 当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。阻塞队列的主要方法 方法类型 抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e)...…