![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 93
遇见我是你的荣幸
这个作者很懒,什么都没留下…
展开
-
springboot中整合elasticsearch(基于springboot2.5.4,es版本7.13.2)
1.新建springboot工程,增加es依赖和配置pom.xml配置如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0原创 2021-09-21 22:15:07 · 4079 阅读 · 0 评论 -
springboot整合dubbo简易入门
dubbo官方文档dubbo是基于rpc的微服务架构RPC远程过程调用 : Remote Procedure Call Protocol远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。dubbo主要角色registry注册中心. 是用于发布和订阅服务的原创 2021-09-05 12:53:10 · 641 阅读 · 0 评论 -
jdk动态代理基本实现
动态代理的实现主要包括三部分:接口:声明业务方法代理对象:真正对象的代理对象,通过真正对象的业务方法实现抽象类或接口的方法,并可附加自己的业务逻辑真是对象:实现接口的方法,供代理对象调用jdk中创建动态代理主要通过java.lang.reflect.Proxy类的newProxyInstance(ClassLoaderloader, Class<?>[]inte...原创 2018-12-15 15:28:13 · 459 阅读 · 0 评论 -
Java多线程基础
一、进程和线程 当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。 线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。二、线程实现的几种方式1.实现方式一:子类继承Thread 继承Thread类,重写run()方法,调用sta...原创 2019-01-27 14:39:33 · 116 阅读 · 0 评论 -
RabbitMQ消息的可靠性投递和接收
在rabbitmq中,作为消息的发送方希望杜绝任何的消息丢失或投递失败的场景。RabbitMQ为我们提供了两种方式来控制消息的投递可靠性模式。confirm 确认模式 return 回退模式rabbitmq中消息发送路径为:producer 》 borker 》exchange 》 queue 》consumer消息从producer到exchange会返回一个confirmCallback回调函数(不管发送成功或失败都会回调,只是返回的值是false和true的区别),从exchange到q.原创 2021-04-04 09:12:18 · 680 阅读 · 1 评论 -
rabbitmq基本使用和springboot整合
1.mq简介MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。 在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2.应用程序解耦合MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 例如大数据处理中,主要项目为Ja原创 2021-04-01 19:41:49 · 235 阅读 · 0 评论 -
如何保证多个线程同时执行?如何保证多个线程在并发下依次执行?如何保证多个线程有序交错执行?
Thread提供了一个让一个线程等待另一个线程执行完的方法——join();当线程A调用B线程join()方法后,线程A将会阻塞,只有等B线程执行完后在会执行线程Apublic class ThreadMain { public static void main(String[] args) throws Exception { Thread myThread1 = new Threa...原创 2019-01-27 15:08:08 · 7156 阅读 · 0 评论 -
Java线程锁机制是什么样的?偏向锁、轻量级锁、重量级锁有什么区别?锁机制是如何升级的
Java线程锁机制新建maven工程导入如下包:<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.10</version></dependency>执行如下代码:public class Demo1 { public原创 2021-03-20 12:58:09 · 332 阅读 · 0 评论 -
仿springmvc功能实现
1.注解定义 Autowired注解 @Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Autowired { boolean required() default true;}Controller注解@Documented@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNT原创 2020-10-25 14:54:57 · 115 阅读 · 0 评论 -
redis基本操作和在springboot中的使用
1.redis的基本操作 redis支持的存储主要有5种:string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。1)字符串的操作命令:set key ...原创 2020-05-23 22:41:17 · 887 阅读 · 2 评论 -
jmap的使用以及内存溢出分析
jmap命令主要作用是内存使用情况的汇总、对内存溢出的定位与分析。1.查看内存使用情况首先使用jps查找进程(这里启动了tomcat)再输入命令 : jmap -heap 1940Heap Configuration: 堆内存配置信息Heap Usage: 堆内存的使用情况PS Young Generation :年轻代PS Old Generation :年老代2.查看内存中对象数量及大小2.1查看所有对象,包括活跃以及非活跃的:jmap...原创 2020-08-22 21:35:56 · 1154 阅读 · 1 评论 -
基于jwt的 Token Auth 认证方式的基本使用
1.jwt简介JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的 信息。在Java世界中通过JJWT实现JWT创建和验证。2.jjwt的入门使用2.1token的创建和解析2.1.1引入依赖<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> &.原创 2020-07-09 20:45:17 · 3220 阅读 · 0 评论 -
JVM的内存模型
1.jdk1.7的内存模型Young 年轻区(代)Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有 其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在Eden区间变满的时候, GC就会将存活的对 象移到空闲的Survivor区间中,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移 动到Tenured区间。Tenured 年老区Tenured区主要保存生命周期长的对象,一般是一些老的对.原创 2020-06-30 21:20:40 · 553 阅读 · 0 评论 -
JVM调优的运行参数的使用和jvm监控
1.什么情况下要进行JVM优化1.运行的应用“卡住了”,日志不输出,程序没有反应2.服务器的CPU负载突然升高3.多线程运行下如何分配线程数量,并不是线程分配的越多程序执行效率越高等等。2.JVM的运行参数2.1JVM的三种参数JVM的参数分为三种类型分别是: 标准参数: 标准参数一般都是很稳定的,在JVM未来的版本中不会改变 -help -version使用java -help检索出所有的标准参数j...原创 2020-06-21 12:31:05 · 914 阅读 · 0 评论 -
LocalDate和LocalDateTime使用DateTimeFormatter的解析不同格式的问题
LocalDate和LocalDateTime一个是带时间一个不带时间,正常情况下一般的使用如下:DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyyMMdd");LocalDate localDate1 = LocalDate.parse("20200228", dtf3);System.out.println(localDate1.format(dtf3)); DateTimeFormatter dtf4 = DateTim原创 2020-06-16 20:33:25 · 4441 阅读 · 0 评论