自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程及线程池的实现

本文简短总结一下java里面多线程的实现(重点会讲一下线程池 实际工作使用最多的)。简单介绍一下概念:进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)线程的运行状态 有 :创建、就绪、运行、阻塞、终止。如图:简单对每个状态解释一下:创建:New 就是新建了一个线程对象就绪:Run

2020-06-02 09:40:04 285 1

原创 spring ioc 相关内容

上一篇我们介绍了Aop相关的内容这一篇我们来谈谈ioc。谈起ioc那么们就不的不一起谈di简单了解一下什么是ioc/di:所谓的控制反转(ioc),依赖注入(di)。简单讲就是我们把程序用的bean本来由我们自己创建的现在交给spring去创建管理并根据@Autowired/@Resource(他俩的区别请参看前面的博客)给我们安装我们需要的bean其实他并不是一门技术仅仅是一种设计思想。举个...

2020-04-28 09:39:36 209

原创 spring 动态代理及事务

1:首先我们来简单了解一下spring的概念它是一个 full-stack 框架,提供了从表现层到业务层再到持久层的一套完整的解决方案。我们在项目中可以只使用 spring 一个框架,它就可以提供表现层的 mvc 框架,持久层的 Dao 框架。它的两大核心 IoC 和 AOP 更是为我们程序解耦和代码简洁易维护提供了支持当然他还有一个不是功能的功能及集成其他框架(当年面试官问我的时候怎么也没...

2020-04-23 11:00:42 316

原创 第十一章 附 Spring Cloud alibaba 集成 mybatisplus

1:mybatisplus 从名字上来看其实就是mybatis的加强版为我们封装了一些方法省去了写xml的环节,具体这里不做详细介绍,直接上代码:2.1:在pom里引入 依赖 <!--mybatisplus--><dependency> <groupId>com.baomidou</groupId> <artifactId&g...

2020-04-17 14:41:23 1653

原创 第十章spring cloud alibaba 集成Seata做分布式事务解决方案

本章对整个分布式系统来讲是非常重要的一个环节所以留在最后讨论,但是实际开发中有又显的并没那么重要,因为很多中小公司不会去保证分布式系统的分布式事务,一般会采用人为干预的方法实现数据的最终一致性。(本章之前要对项目做好和mybatis的集成这不做具体操作演示,参考第十一章 )简单解释一下什么是分布式是事务,简单来讲就是对分布在不同项目的事务做统一管理,要嘛同时成功要嘛同时失败。在来介绍一下目前常...

2020-04-17 14:39:14 555 1

原创 第九章spring cloud alibaba集成 Nacos做配置中心

本章我们来介绍第二章遗留的问题,在第二章部署nacos时我们简单提到要对nacos配置简单修改但是我们直到现在也没用到(没有修改的可以自己参看第二章怎么修改当然也可以不改不影响使用仅仅是每次重启配置信息丢失)1:简单介绍一下Nacos ConfigNacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Clo...

2020-04-17 14:33:58 444

原创 第八章 spring cloud alibaba集成Sleuth链路追踪

1:在微服务架构中,众多的微服务之间互相调用,如何清晰地记录服务的调用链路是一个需要解决的问题。同时,由于各种原因,跨进程的服务调用失败时,我们门希望能够通过查看日志和查看服务之间的调用关系来定位问题,而Spring cloud sleuth组件正是为了解决微服务跟踪的组件当然 还有很多其他产品。2:简单了解了sleuth干嘛用的之后我们开始对项目进行整合。2.1 修改pom文件在里面添加&...

2020-04-17 14:30:30 1163

原创 第七章集成spring cloud alibaba集成 Gateway

1:首先了解一下什么是GatwaySpring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态...

2020-04-17 14:26:03 1509

原创 第六章集成Spring cloud alibaba Sentinel做限流

1:先简单介绍一下什么是 Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。2:Sentinel 的特征丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的 双十一大促流量 的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断...

2020-04-17 14:19:47 353

原创 第五章spring cloud alibaba 集成Feign客户端开启远程调用

1:前面我们已经构建了消费者和生产者并成功注册到nacos注册中心那么生产者和消费者之间是如何调用呢,本章我们讲讨论Feign 帮我们实现远程调用。首先我们简单对 Feign 了解一下Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS 注解。Feign...

2020-04-17 14:07:45 400 1

原创 第四章构建消费者

1 :右键我们的父工程建立新spring-cloud-alibaba-study-consumer的项目步骤同生产者2:修改pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200...

2020-04-17 13:57:55 169

原创 第三章构建生产者

1:右键我们的父工程建立新spring-cloud-alibaba-study-provider 的项目(本演示项目用例采父子节点项目)之后点击下一步下一步即可。2:修改pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs...

2020-04-17 13:55:41 199

原创 第二章spring cloud Alibaba 集成 nacos安装

1:什么是 Nacos (可以直接略过介绍,简单理解就是注册中间加配置中心)下图会介绍介绍架构部。(本图来自于nacos官网)2:看官方给出的解释反正觉得就是很厉害的样子,那么我们现在直接动手搭建Nacoshttps://nacos.io/zh-cn/docs/quick-start.html下载解压后出现如下目录:简单对nacos配置 当然也可以不配置直接直接去bin目录(我们都以...

2020-04-17 13:53:05 333

原创 第一章 spring cloud alibaba构建父工程

Spring Cloud Alibaba 简介相关简介自己去看官方文档 这里不做过多解(https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md),写代码主要注重在写上面,所以直接动手上代码1:创建父项目用户maven配置管理打开idea创建spring-cloud-alibaba-study项目 本项目...

2020-04-17 13:48:21 591

原创 详解 Exception 和 Error

我们在日常开发过程中,如何处理好异常是比较考验功底的,我个人觉得对于异常需要掌握两个方面即可。1:第一,理解 Throwable、Exception、Error 的设计和分类。掌握一些常用的异常如 :NullPointerException 空指针引用异常,ClassCastException 类型强制转换异常,IndexOutOfBoundsException 下标越界异常这里不做太...

2020-04-13 08:43:08 258

原创 java 泛型详解

1:什么是泛型java文档给出的解释:泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不...

2020-04-09 09:18:23 103

原创 浅谈CAS

简述cas前 先了解一下java锁首先了解java锁按不同方式可分为 重入锁和非重入锁,重量级锁和轻量级锁,悲观锁和乐观锁…本文将从悲观锁/乐观锁这一方面讨论CAS。1.什么是乐观锁和悲观锁乐观锁:乐观锁总是乐观的认为美好的事情会发生,所以它认为竞争不总是会发生,因此它不需要持有锁,将比较-替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那么就应该有相应的重试...

2020-04-07 09:31:28 161

原创 es 安装及问题

(elasticsearch 不能用root用户启动)#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz //下载es#tar -zvxf elasticsearch-6.6.0.tar.gz //解压 es#创建用户组 es /hyl123456groupadd...

2020-04-03 11:21:41 349

原创 浅谈 HashMap,Hashtable,ConcurrentHashMap

浅谈 HashMap,Hashtable,ConcurrentHashMap相同点这3个集合都是采用key-value的数据结构存储数据。java 1.8之前底层采用数组+链表的形式 (链表是为了解决hash冲突),java1.8及以后采用数组+链表+红黑树的新式(当长度大于等于8时有链表转成红黑树,使用红黑树以加快检索速度)。不同点1, HashMap和ConcurrentHashMa...

2020-04-03 11:19:20 116

原创 List插入大量数据效率不一致问题

最近发现对list的多次插入后面的总是比前面的效率高。写如需代码测试:public class test { public static void main(String [] age){ List<Integer> list1 = Lists.newArrayList(); //导入了谷歌的包 可换成 new ArrayList<>(); ...

2019-10-26 11:47:46 976

原创 volatile是怎么保证可见性的

volatile可见性:是指当多个线程并发访问共享变量时,一个线程对共享变量的修改,其它线程能够立即看到。那么volatile是如何保证可见性的,首先我们来简单看一下Java内存模型图:假设有一个变量 static int vlt = 0;那么首先在主内存中会一个vlt变量;同时在线程1和线程的2的线程内都有一个vlt 的副本,目的是为了提高执行效率,变量随线程结束消失。如果此时...

2019-09-02 10:06:18 3901 3

原创 单例的双重检验锁模式

1:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。2:单例模式的实现有很多种本文着重讨论双重校验锁 首先写如下代码:package ...

2019-08-26 11:26:13 268

原创 stream的效率问题

近期看来有些文章说stream使java循环效率慢30倍,因此写以下代码做对比。定义一下自定义类型:@Datapublic class StreamEntity {private Long id;private String name;private Integer value;}测试类:public class StreamTest {public static v...

2019-08-13 10:43:43 5986 7

原创 @Resource注解与@Autowired注解使用

@Resource注解与@Autowired注解使用1:@Autowired1.@Autowired 的意思就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。2.@Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。同时也可和其他...

2019-08-08 10:23:00 251

原创 final关键字

1、修饰类当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法注:被final修饰的类不能被代理 不论是jdk动态代理还是CGlib代理2、修饰方法使用final方法,以防任何继承类修改它的含义;注:...

2019-08-07 09:04:30 101

原创 关于List的循环效率问题

关于List的循环效率问题以 ArrayList 和LinkedList 为例:写如下代码public class TestList {public static void main(String []ages){ ArrayList<Integer> list = Lists.newArrayList(); LinkedList<Integer&gt...

2019-08-06 16:44:33 1504

空空如也

空空如也

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

TA关注的人

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