Spring Cloud

一分钟学会Java中的final、static关键词

烂漫一生 提交于 2020-12-25 08:24:41
final关键词 概念:final的意思为最终,不可变。final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。不能修饰构造方法。 特点: 1.final修饰的类不可以被继承,但可以继承别的类。 class Yy {} final class Fu extends Yy{} //可以继承Yy类 class Zi extends Fu{} //不能继承Fu类 2.final修饰的方法不可以被子类重写,但父类中没有被final修饰方法,子类重写后可以加final。 class Fu { // final修饰的方法,不可以被覆盖,但可以继承使用 public final void method1(){} public void method2(){} } class Zi extends Fu { //重写method2方法 public final void method2(){} }//加入Java开发交流君样:756584822一起吹水聊天 3 final修饰的变量称为常量,这些变量只能赋值一次。而且终身不变。 final int i = 20; i = 30; //赋值报错,final修饰的变量只能赋值一次 4.引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改。 final Person p = new Person(); Person p2

我们离得开 Spring 框架吗?

痞子三分冷 提交于 2020-12-25 05:54:39
后端程序员,尤其是 Java 后端程序员,离得开 Spring 框架吗? 显然,答案是否定的。这些年, Spring 早已成为 Java 后端开发事实上的行业标准 。无数大厂选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring 。 其实我理解 Spring 就是一个万能插排,可以对接几乎一切的开源接口,而且方便解耦,能简化开发。早些年框架还没有那么丰富,后面出现了 Spring Boot 和 Spring Cloud,它们可以 帮助工程师更好地基于 Spring 及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。 但 Spring 好用可不好学,记得我以前学习时,在代码之外,看着一堆依赖和配置,总是有些摸不清方向;组件那么多,总是不知道该从何入手;每天看公司使用 SSH 框架,就像看天书一样摸不着头脑: 依赖注入是什么玩意儿?直接 new 一个不就行了吗? 面向切面又是什么鬼? 我面向我的对象还不够吗? ...... 诸如此类的疑惑每天都在出现,为此也没少挨骂。其实,从宏观的视角想一想,框架出现的本质是什么?框架是为了解决一个又一个在开发中所遇到的问题而诞生的。不同的框架,都是为了解决不同的问题,而 一名合格的 Java 后端工程师,Spring Framework、Spring Boot、Spring

【1.5】SpringCloud入门之Eureka consumer OpenFeign

让人想犯罪 __ 提交于 2020-12-24 01:42:22
用maven创建一个eureka-consumer-feign 1.引入springcloud对应的pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> 2.新建启动类,服务调用类,请求入口类 2.1 EurekaConsumerFeignApplication package com.pimee; import org.springframework.boot.SpringApplication;

Java中不可或缺的50个小技巧,好用!

拥有回忆 提交于 2020-12-24 01:01:27
《Effective JavaJava》名著,必读。如果能严格遵从本文的原则,以编写API的质量来苛求自己的代码,会大大提升编码素质。 以下内容只记录了我自己整理的东西,还是建议读原文。为了聚焦知识点,一些说明故意忽略掉了。相当于是一篇摘要。 1、考虑用静态工厂方法替代构造函数 例子: Integer.valueOf(“1”)、Boolean.valueOf(“true”)等。 优势: 可读性高(方法名) 性能(不一定创建对象) 灵活性高 下面针对三个优势进行一些解读。 可读性高 new Point(x,y)和Point.at(x,y)、Point.origin()。构造函数只能看出两个参数,不知其意,后者更易理解。 性能 在某些情况下,可以事先进行实例化一些对象,调用时直接调用即可,不需要进行改变。比如,Boolean。 public final class Boolean implements Serializable, Comparable<Boolean> { // 预先设置两个对象 public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); public Boolean(boolean var1) { this

MSHA x Chaos 容灾高可用实践

我是研究僧i 提交于 2020-12-23 18:36:53
前言 由于外部环境的复杂以及硬件的不可靠,互联网服务的高可用面临着巨大的挑战,由于断网、断电等事故导致的各大互联网公司服务不可用的案例也不在少数。业务不可用,小到带来经济损失影响企业口碑,大到微信、支付宝这些国民级应用,影响国计民生。面对难以避免的天灾人祸,容灾架构的建设就成为了数字化企业的迫切诉求。 2020 年 12 月份,阿里云应用高可用产品 AHAS(Application High Availability Service)发布了新的功能模块 AHAS-MSHA,它是在阿⾥巴巴电商业务环境演进出来的多活容灾架构解决⽅案。本篇文章我们首先介绍容灾领域的几个重要概念,然后将结合一个的电商微服务案例,分享一下如何基于 AHAS 的异地多活能力(AHAS-MSHA)和混沌工程能力(AHAS-Chaos)帮助业务实现容灾架构的高可用实践。 容灾与评价指标 1. 什么是容灾? 容灾(Disaster Tolerance)是指在相隔较远的异地,建立两套或多套功能相同的系统,系统之间可以相互进行健康状态监视和功能切换,当一处系统因意外(如火灾、洪水、地震、人为蓄意破坏等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。 2. 容灾能力如何评估? 容灾系统主要为了在灾难发生时业务不发生中断,那么容灾能力如何评估和量化呢

距离Java开发者玩转 Serverless,到底还有多远?

社会主义新天地 提交于 2020-12-23 18:21:54
导读 :本文摘自 Spring Cloud Alibaba 开源项目创始团队成员方剑撰写的《深入理解 Spring Cloud 与实战》一书,主要讲述了 Java 微服务框架 Spring Boot/Cloud 这个事实标准下如何应对 FaaS 场景。 Serverless & FaaS 2019 年,O'Reilly 对 1500 名 IT 专业人员的调查中,有 40% 的受访者在采用 Serverless 架构的组织中工作。2020 年 DataDog 调查显示,现在有超过 50% 的 AWS 用户正在使用 Serverless 架构的 AWS Lambda。 Serverless 正在成为主流,于是就诞生了下面这幅图,从单体应用的管理到微服务应用的管理再到函数的管理。 Serverless 到目前为止还没有一个精准定义。Martin Fowler 在个人博客上有一篇《Serverless Architectures》文章,其对 Serverless 的的定义分成了 BaaS 或 FaaS。 Baas 是全称是 Backend-as-a-Service,后端即服务,FaaS 的全称是 Function-as-a-Service,函数即服务。 今天我们来聊聊 FaaS。这是维基百科对 FaaS 的定义: 函数即服务(FaaS)是一类云计算服务,它提供了一个平台,使客户可以开发

Java多线程访问Synchronized同步方法的八种使用场景

 ̄綄美尐妖づ 提交于 2020-12-22 01:50:58
简介 本文将介绍7种同步方法的访问场景,我们来看看这七种情况下,多线程访问同步方法是否还是线程安全的。这些场景是多线程编程中经常遇到的,而且也是面试时高频被问到的问题,所以不管是理论还是实践,这些都是多线程场景必须要掌握的场景。 八种使用场景: 接下来,我们来通过代码实现,分别判断以下场景是不是线程安全的,以及原因是什么。 两个线程同时访问同一个对象的同步方法 两个线程同时访问两个对象的同步方法 两个线程同时访问(一个或两个)对象的静态同步方法 两个线程分别同时访问(一个或两个)对象的同步方法和非同步方法 两个线程访问同一个对象中的同步方法,同步方法又调用一个非同步方法 两个线程同时访问同一个对象的不同的同步方法 两个线程分别同时访问静态synchronized和非静态synchronized方法 同步方法抛出异常后,JVM会自动释放锁的情况 场景一:两个线程同时访问同一个对象的同步方法 分析:这种情况是经典的对象锁中的方法锁,两个线程争夺同一个对象锁,所以会相互等待,是线程安全的。 两个线程同时访问同一个对象的同步方法,是线程安全的。 1 我们在前文中已经讲过了。代码和详细讲解在《Java中synchronized实现对象锁的两种方式及原理解析》中的第二部分《方法锁》中,在此就不再重述了。 场景二:两个线程同时访问两个对象的同步方法 这种场景就是对象锁失效的场景

JVM GC耗时频频升高,我来教你排查

好久不见. 提交于 2020-12-22 00:13:32
1. 背景 多个业务线的应用出现LongGC告警 最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。 2. 知识回顾 2.1 JVM堆内存划分 新生代(Young Generation) 新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。 老年代(Old Generation) 在新生代中经历了几次Minor GC仍然存活的对象,就会被放到老年代。Major GC针对的是老年代的垃圾回收。本文重点分析的CMS就是一种针对老年代的垃圾回收算法。另外Full GC是针对整堆(包括新生代和老年代)做垃圾回收的。 永久代(Perm) 主要存放已被虚拟机加载的类信息,常量,静态变量等数据。该区域对垃圾回收的影响不大,本文不会过多涉及。 2.2 CMS垃圾回收的6个重要阶段 1、initial-mark 初始标记(CMS的第一个STW阶段),标记GC Root直接引用的对象,GC Root直接引用的对象不多,所以很快。 2、concurrent-mark 并发标记阶段,由第一阶段标记过的对象出发,所有可达的对象都在本阶段标记。 3、concurrent-preclean 并发预清理阶段,也是一个并发执行的阶段。在本阶段,会查找前一阶段执行过程中

SpringCloud-Sentinel

半世苍凉 提交于 2020-12-21 17:57:53
TODO: 线程池线程异常,处理??? Add Dependency <!-- replace here with the latest version --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.0</version> </dependency> Define Resource // > - 2. Define Resource try (Entry entry = SphU.entry("HelloWorld")) { // Your business logic here. System.out.println("hello world"); } catch (BlockException e) { // Handle rejected request. e.printStackTrace(); } // try-with-resources auto exit Define Resource List<FlowRule> rules = new ArrayList<>(); FlowRule rule = new FlowRule(); rule.setResource("HelloWorld"); // set

总结一下2020年读了几本书

跟風遠走 提交于 2020-12-21 11:39:30
一、专业类书籍(10本) 纸质版 1、高可用可伸缩微服务架构 2、云原生Java 3、SpringCloud微服务架构实战 4、代码整洁之道(未完成) 5、深入理解java虚拟机 电子版 1、kafka技术内幕 2、dubbo手册 3、高性能MySQL 4、redis原理 5、深入理解SpringCloud与微服务构建 二、非专业类书籍(30) 金融理财 1、富爸爸穷爸爸 2、小狗钱钱 3、财富自由之路 4、不可撼动的财务自由 5、理财就是里生活 6、一本书读懂财务报表 心理学 1、人际交往心理学 2、当你的才华还撑不起你的梦想时 3、你的努力,要配得上你的野心 4、超越原生家庭 5、会说话就是情商高 6、亲密关系 7、非暴力沟通 8、控制愤怒 职场励志 1、金字塔原理 2、活法 3、成法 4、定位 5、格局 6、断舍离 7、你要么出众,要么出局 8、哈佛效率课:高效能人士的8个习惯 9、结构思考力 10、像TED一样演讲2:沟通升级 其他 1、三十岁,一切刚刚开始 2、你没有退路,才有出路 3、刻意练习 4、胡雪岩谋略大全 5、曾国藩谋略大全 6、墨菲定律 三、总结 2020年保守估计,总计40本。因为还有一些在书店或图书馆看完后记不起名的其他书籍,从大类来看: 计算机专业类、金融理财类、心理学、人物传记励志类 。2021年计划增加: 商业类、互联网类、销售类、法律类等 。 四