摘要:
背景:高并发场景下幂等性的解决方案 高并发的核心技术-幂等的实现方案 一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇 阅读全文
摘要:
同步异步,阻塞和非阻塞 IO中同步与异步,阻塞与非阻塞区别 同步和异步关注的是消息通信机制 (synchronous communication/asynchronous communication) 同步请求,A调用B,B的处理是同步的,在处理完之前他不会通知A,只有处理完之后才会明确的通知A。 阅读全文
摘要:
背景:因为自己的简历写了dubbo,面试时候经常被问到。实际自己对dubbo的认识只停留在使用阶段,所以有必要好好补充下基础的理论知识。 https://blog.csdn.net/Y0Q2T57s/article/details/83005376 想往高处走,怎么能不懂 Dubbo? Dubbo是 阅读全文
摘要:
背景:介绍java8中永久代到元空间的转变。 Java8内存模型—永久代(PermGen)和元空间(Metaspace) 一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈 阅读全文
摘要:
背景:在面试的时候经常被问到分布式锁 幂等性相关的知识点。自己居然完全不了解,还在简历中写自己熟悉集群,面试的时候可想而知。 本文基于 美团技术团队的总结。 分布式系统互斥性与幂等性问题的分析与解决 ps:这里只做重点标识 随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高 阅读全文
摘要:
设计模式六大原则(6):开闭原则 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要 阅读全文
摘要:
背景:六大设计模式基本原则很考验个人的基本功,所以要深入学习总结。 设计模式六大原则(3):依赖倒置原则 定义 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。(抽象 抽象)问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来 阅读全文
摘要:
背景:之前一直没搞明白Lambda和相关函数式编程的写法,现在终于能搞清楚了。 原文转载公众号 低并发编程: 原来 Lamda 表达式是这样写的 List<Student> studentList = gen(); Map<String, Student> map = studentList .st 阅读全文
摘要:
背景:求职过程中,这个问题反复被问到。如果答不上来,只能说明基本功不扎实,并不能说自己擅长java。 技术趣味史-Java 各个版本的特性 史上最全JAVA全版本特性,看这一篇就够了!【JAVA 1.0 - JAVA 17】 Java 5 2004 年 Sun 公司发布 J2SE5(没错,Sun 公 阅读全文
摘要:
背景:在面试时候问过关于注解的问题,工作中也用到过该java的特性,但是也没有深入的了解。 秒懂,Java 注解 (Annotation)你可以这样学 ps:注解最通俗易懂的解释 注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分。注解对于代码的运行效果没有直接影 阅读全文
摘要:
背景:讲到反射机制,肯定会想到动态代理。 轻松学,Java 中的代理模式及动态代理 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。值得注意的是,代理类和被代理类应该共同实现一个接口,或者是共同继承某个类。 静态代理 代理类需要自己编写代码写成。 动态代理 Prox 阅读全文