摘要: ActiveMQ 入门概述 MQ 的产品种类和对比 kafka 编程语言:scala。 大数据领域的主流MQ。 rabbitmq 编程语言:erlang 基于erlang语言,不好修改底层,不要查找问题的原因,不建议选用。 rocketmq 编程语言:java 适用于大型项目。适用于集群。 acti 阅读全文
posted @ 2021-10-26 22:55 程序员清风 阅读(375) 评论(0) 推荐(0)
摘要: Docker Compose 介绍 官方文档 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 DockerFile让程序在任何地方运行。web服务、 阅读全文
posted @ 2021-10-26 22:48 程序员清风 阅读(510) 评论(0) 推荐(0)
摘要: Docker网络 理解Docker0 清空Docker0 三个网路 lo:本地回环地址 docker0就是docker0地址,也就是docker的地址 dockre使用的是桥接模式,使用的技术是evth_pair技术, #问题 docker 是如何处理容器网络访问的 docker run -d -P 阅读全文
posted @ 2021-10-26 22:47 程序员清风 阅读(166) 评论(0) 推荐(0)
摘要: Dockerfile 简介 Dockerfile是用来构建docker镜像的文件。简单来说就是命令参数脚本 构建步骤: 编写一个Dockerfile文件 docker build构建成为一个镜像 docker run 运行命令 docker push 发布镜像(DockerHub、阿里云镜像仓库) 阅读全文
posted @ 2021-10-26 22:46 程序员清风 阅读(550) 评论(0) 推荐(0)
摘要: SpringSecurity 简介 Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。 关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Auth 阅读全文
posted @ 2021-10-26 22:28 程序员清风 阅读(1519) 评论(0) 推荐(0)
摘要: Sharding-Sphere 简介 1、ShardingSphere是一套开源的分布式数据库中间件的解决方案 2、它由三个产品组成:Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar。 3、是关系型数据库中间件,合理在分布式环境下使用关系型数据库操作 Sha 阅读全文
posted @ 2021-10-26 22:25 程序员清风 阅读(560) 评论(0) 推荐(0)
摘要: Kubernetes 一、kubernetes概述 1、kubernetes基本介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(p 阅读全文
posted @ 2021-10-26 22:23 程序员清风 阅读(317) 评论(0) 推荐(0)
摘要: shiro笔记 权限概述 什么是权限 权限管理,一般根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统 系统管理在系统中一般分为: 访问权限 一般表示你能做什么样的操作,或者能够访问那些资源。例如:给张三赋予 阅读全文
posted @ 2021-10-26 22:18 程序员清风 阅读(32) 评论(0) 推荐(0)
摘要: Spring5新特性 总览 https://cntofu.com/book/95/33-what-new-in-the-spring-framework.md 1、整个Spring5框架的代码基于Java8,运行时兼容JDK9,许多不建议使用的类个方法在代码库中删除 2、自带了通用的日志封装 ​ 2 阅读全文
posted @ 2021-10-26 22:16 程序员清风 阅读(245) 评论(0) 推荐(0)
摘要: SpringAOP 什么是AOP AOP即面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。 在不改变原有的逻辑的基础上,增加一些额外的功能。 aop是对OOP(Object Oriented P 阅读全文
posted @ 2021-10-26 22:16 程序员清风 阅读(47) 评论(0) 推荐(0)
摘要: 类似linux系统环境,运行和隔离应用。容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变。 首先先下载一个centos docker pull centos 新建并启动容器 docker run [options] IMAGES [COMMAND] [A 阅读全文
posted @ 2021-10-26 21:19 程序员清风 阅读(77) 评论(0) 推荐(0)
摘要: docker images 列出本地主机上的镜像 各项说明 REPOSITORY :表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小 同一仓库源可以有多个TAG,代表这个仓库的不同版本,我们使用REPOSITORY:TAG来定义不同的 阅读全文
posted @ 2021-10-26 21:08 程序员清风 阅读(146) 评论(0) 推荐(0)
摘要: 是什么 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 一个完整的Docker有以下几个部分组成: dockerClient客户端 Docker 阅读全文
posted @ 2021-10-26 21:05 程序员清风 阅读(33) 评论(0) 推荐(0)
摘要: JSR303校验 一、环境准备 ​ 这个pom坐标在自定义注解的时候有用 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</ve 阅读全文
posted @ 2021-10-26 21:00 程序员清风 阅读(439) 评论(0) 推荐(0)
摘要: 其他 finalize()方法最终判断对象是否存活 即使在可达性分析算法中不可达的对象,也并非是“非死不可"的,这时候它们暂时处于缓刑阶段,要真正宣告一个对象死亡,至少要经历再次标记过程。 标记的前提是对象在进行可达性分析后发现没有与 GC Roots相连接的引用链。 1、第一次标记并进行一次筛选 阅读全文
posted @ 2021-10-26 20:38 程序员清风 阅读(35) 评论(0) 推荐(0)
摘要: 十、垃圾回收器 GC分类与性能指标 分类 按线程数分,可以分为串行垃圾回收器和并行垃圾回收器。 串行回收指的是同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。 在诸如单CPU处理或者较小的引用内存等硬件平台不是特别优越的场合,串行回收器的性能表现可以超过 阅读全文
posted @ 2021-10-26 20:36 程序员清风 阅读(512) 评论(0) 推荐(0)
摘要: 九、垃圾回收相关概念 System.gc()的理解 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显示触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。System.gc()调用附带一个免责声明,无法保证对垃圾收 阅读全文
posted @ 2021-10-26 20:23 程序员清风 阅读(67) 评论(0) 推荐(0)
摘要: 八、垃圾回收算法 垃圾标记阶段:对象存活判断 在堆中存放在几乎所有逇Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是承诺或对象,哪些是已经死亡对象。只有被标记为已经死亡的对象,GC才会在执行垃圾回收时,释放掉器锁占用的内存空间,因此这个过程我们称之为垃圾标记阶段。 那么JVM究竟 阅读全文
posted @ 2021-10-26 20:20 程序员清风 阅读(382) 评论(0) 推荐(0)
摘要: 七、垃圾回收——概述 什么是垃圾? 垃圾收集,不是Java语言的半生产物,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集的三个问题: 那些内存需要回收? 什么时候回收? 如何回收? 垃圾收集机制四Java的招牌能力,极大地提高了开发效率。垃圾收集几乎成为现代语言的标配,进 阅读全文
posted @ 2021-10-26 20:16 程序员清风 阅读(380) 评论(0) 推荐(0)
摘要: 先看下面代码 public class StringNewTest { public static void main(String[] args) { String str = new String("a")+new String("b"); } } 上面代码创建了几个对象? 我们来看一下字节码 阅读全文
posted @ 2021-10-26 20:13 程序员清风 阅读(33) 评论(0) 推荐(0)
摘要: 概述 执行引擎是Java虚拟机核心的组成部分之一 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,二虚拟机的执行引擎则是由软件执行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行 阅读全文
posted @ 2021-10-26 20:09 程序员清风 阅读(79) 评论(0) 推荐(0)
摘要: 介绍 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,他是一种任务委派模式。 工作原理 在看工作原理前,我们先来看看一个案例 阅读全文
posted @ 2021-10-26 20:04 程序员清风 阅读(2333) 评论(0) 推荐(0)
摘要: 类加载子系统作用 1、类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识:CA FE BA BE 2、ClassLoader只负责class文件的加载 ,至于它是否可以运行,则有ExecutionEngine(执行引擎)决定 3、加载的类信息存放于一块 阅读全文
posted @ 2021-10-26 19:55 程序员清风 阅读(259) 评论(0) 推荐(0)
摘要: 首先来看看大厂面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有那些东西? 蚂蚁金服: 二面:java对象头里面有什么? 我们带着上面这些问题来学习 对象的实例化 创建对象的方式 new 最常见的方式 变形1:单例模式下的获取对象的xxx静态方法 变形2:XxxBuilder/XxxFa 阅读全文
posted @ 2021-10-26 19:39 程序员清风 阅读(114) 评论(0) 推荐(0)
摘要: Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些这是与线程意义对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁 灰色部分为单线程私有,红色的为多个线程共享的。即: 每个线程:独立包括程序计数器、栈、本地栈 ( 阅读全文
posted @ 2021-10-26 18:35 程序员清风 阅读(165) 评论(0) 推荐(0)