能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
暂时未有相关云产品技术能力~
多年一线资深coder,性能调优小哥
这起CPU100%的事故,由某个客户演示的bug暴露出来,气氛比较尴尬....
工欲善其事,必先利其器,最后一个惊艳到你
Docker容器/bin/bash start.sh无法找到not found
本篇介绍本地消息表和MQ事务方案
常见的分布式事务解决方案有 TCC、全局消息、基于可靠消息服务的分布式事务、最大努力通知等
在分布式系统里,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。当一个事务跨多个节点时,为了保持事务的原子性与一致性,而引入一个协调者来统一掌控所有参与者的操作结果,并指示它们是否要把操作结果进行真正的提交或者回滚(rollback)。
CAP原则又叫CAP定理,同时又被称作布鲁尔定理(Brewer's theorem)
事务可以看做是一次大的操作,它由不同的小操作组成,这些操作要么全部成功,要么全部失败。
本文利用vuePress快速构建大气好看的个人博客,vuePress是由Vue 驱动的静态网站生成器,可以基于markdown语法生成网页,君哥的个人博客就是由vuepress构建
现在短视频火爆,小A录制了一段视频发布在平台,每天都有很多访问,但是这些访问的人不确定,有的是朋友,有的是陌生人。
有时候,出了某件事,我们去解决,找到A,结果A踢皮球,说这不关我的事,去找B解决,然后我们就去找B,结果B也说,这跟我没关系,快去找C,就这样,我们就被踢来踢去,这就是责任链模式的思想,在找到正确的人解决之前,我们被不断的踢给一个有一个人,职责链就是告诉我们类应该有自己的职责,不属于自己职责范围的就推给其他类。
在生活中我们往往没听懂别人说的话,需要别人详细的解释一遍,才明白其中的意思。在学习Java的过程中我们不明白某个知识点,也需要有详细的解释才能让我们明白其中的韵味。对于编程语言来说也一样,JDK就是java运行提供的一种解释器,所以解释器模式就是去解析某个东西。
我们在下棋的时候,如果需要悔棋的功能,就需要系统记住每一步下棋的操作,这样才能够实现悔棋
中介可以将系统由复杂的网状结构转变成简单的星形结构,中介者对象在这里起到中转和协调作用
在现实生活中,存在很多“部分-整体”的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包等。在软件开发中也是这样,例如,文件系统中的文件与文件夹等。对这些简单对象与复合对象的处理,如果用组合模式来实现会很方便。
小明有台联想电脑,他买来时预安装的是Windows系统,但是它也想尝试Linux系统或其他系统。财大气粗的小明于是又花了5000去购买了台内置的Linux系统。其实它完全可以在原来电脑上安装Linux系统,不必再去买一台。在现实生活中也有很多这样的例子,一个物品在搭配不同的配件时会产生不同的动作和结果。
享指的是共享,String常量池、数据库连接池、线程池等都是享元模式的具体应用。
iterator就是采用的迭代器模式
在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效。就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。
在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。
生活中我们去餐馆吃饭,我们需要被接待,点菜,后台厨师准备菜品,做菜,服务员传送到桌上面,开始吃饭,吃完结账等等操作。但这一连串的操作中有些操作是不需要被我们关注的,比如厨师怎么做菜,怎么上菜,我们只需要点菜,吃饭,结账,所以我们可以引入外观模式来隐藏这些无需关注的细节。
我们去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。
作为一名小白开发,你的领导命令你去做一件事情,这就是命令。而这里面包括了命令的发送者(领导),命令的执行者(你)及命令本身,并且他还可以发出一连串的命令,你得一个个去做。
如果要扩展一些功能,我们可以采用装饰模式来实现。装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰者模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。
在软件设计中也可能出现:需要开发的具有某种业务功能的组件在现有的组件库中已经存在,但它们与当前系统的接口规范不兼容,如果重新开发这些组件成本又很高,这时用适配器模式能很好地解决这些问题。
搞清楚静态代理的缺点十分重要,因为动态代理的目的就是为了解决静态代理的缺点。
学习动态代理之前,我们先了解了解静态代理
工厂方法模式考虑的是同一类产品。比如女朋友要喝的红茶、奶茶,但红茶的工厂只能生产红茶,奶茶的工厂只能生产奶茶,同理可以知道手机厂只能造手机,如畜牧场只养动物、电视机厂只生产电视机等。
工厂方法模式,又称工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象
一个类仅有一个实例,由自己创建并对外提供一个实例获取的入口,外部类可以通过这个入口直接获取该实例对象。
设计模式(Design pattern)是一套被反复使用、多数人知晓的、代码设计经验的总结。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
前面我们通过Tomcat镜像成功运行了Tomcat容器服务,那Tomcat镜像是怎么出来的呢?我们又通过什么方式为我们的应用自定义Docker镜像?
harbor虽好,但许多公司的生产环境仍然采用的是云服务,这节课我们就来学习本地Docker如何使用云服务,将本地镜像推送到云平台。
每个企业都有自己的镜像私服仓库,和nexus一样,公司内部的镜像制品都存放在自己的私服仓库中,今天我们来学习Harbor
初次使用Docker的同学都会使用一个已有的基础镜像作为学习练手的工具,可以是mysql、nginx、redis,这里我们部署一个tomcat来进行docker基础命令的学习
容器,就是一种轻量级的虚拟化技术,目的和虚拟机一样,都是为了创造“隔离环境”。 一句话理解Docker:以前各程序都睡大厅,有了Docker后都睡小房子里面
在实际工作中,如果Job非常多且构建频繁,`jenkins`的服务在效率上很难够支持。所以这种情况下我们更多的是采用1主多从的方式去进行构建,master节点主要做任务分发和调度,实际构建job的是slave节点,这时候我们就需要创建主从节点。
在前后端分离的大背景下,前端团队的工程化非常重要,本篇我们来学习构建发布前端项目
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检 测。
本篇给大家分享企业中比较实用的分支构建和自动化构建
jenkins构建集成钉钉群消息推送
在企业中,要实现敏捷开发,必须结合jenkins的众多插件来实现更牛逼的特性。 思考一个问题:企业中究竟如何进行管理项目发布的?代码的回滚怎么做?接下来我们来进入到企业级常用实战内容的学习
打包发布SpringBoot项目
Maven是目前主流的自动化构建工具,而Git也是目前主流的分布式版本控制系统。要做Java项目的持续集成必须会集成这2个工具。
Jenkins的插件生态非常强大,能覆盖我们所必须用到的功能,同时凭证也是相当的灵活,一起来学习吧。
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。它是一个用java编写的开源持续集成工具。
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 在高连接并发的情况下,Nginx是Apache服务器不错的替代品。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
这篇文章主要为大家详细介绍了linux上mysql安装详细教程。MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。 社区版:免费,但是不提供任何技术支持 商业版:收费,可以试用30天,官方提供技术支持
掌握了jdk的配置后续一些基础软件才能够依赖该环境正确运行,而java8目前依然是企业中主流的jdk