- 博客(15)
- 收藏
- 关注
原创 并发编程高频面试题[2022版]
用编程语言写的一个可以让计算机在同一时间执行多个任务的程序两个或两个以上的线程由于竞争资源而造成的一种阻塞现象举例:线程A持有资源1,去竞争资源2;同时线程B持有资源2去竞争资源1,这就造成了死锁原理:线程请求共享资源,如果当前资源空闲,则设置当前线程为工作线程,并将资源设置为锁定状态;如果资源被占用,则将线程放入FIFO(先进先出)队列,进行阻塞等待主要参数:标识锁是否被占用,0代表未被占用双向队列,存放等待线程。
2022-10-02 11:00:19 833 2
原创 1.Spring Boot&Spring Cloud介绍
1.Spring Boot的概述Spring Boot是基于Spring的简化级框架,所谓的简化就是简化了Spring的一系列配置,我们可以从以下几方面来概述1.Spring Boot简化了其他框架与Spring的集成,我们只需要Maven/Gradle中引入spring-boot-starter-xxx即可完成集成2.习惯优于配置(例如SpringLectureApplication的启动...
2020-04-07 16:30:20 195
原创 0.微服务概述
1.微服务定义微服务的架构是指: 将单体应用程序开发为一组小型服务的方法,服务都在自己的进程中运行并通过轻量级的机制(通常是HTTP)来进行通信。 这些服务围绕业务功能来构建,并且可以独立部署,可以使用不同语言编写,可以使用不同的存储技术。微服务是一种架构风格2.微服务使用时机1.在单体应用足够大,业务功能繁杂难以管理,上线难度大的时候,可以考虑微服务架构2.考虑充分,...
2019-11-06 18:23:47 185
原创 Spring源码之BeanFactory(七)
前言:本文承接上一篇,继续来解读spring的第二个很重要的容器BeanFactory,也就是生产bean的工厂。一个工厂他需要具备的东西大概有原料,生产线,仓库,本文也将从这三方面来解读BeanFactoryBeanFactory的基础关系图此图看着略复杂,但从最下面开始看,就一个可以实例化的实现类DefaultListableBeanFactory,所以我们可以从他来入手来解读。本...
2019-11-04 19:10:30 183
原创 Spring源码之ApplicationContext(六)
前言:Spring的两大容器ApplicationContext与BeanFactory,顾名思义ApplicationContext是应用的上下文,BeanFactory是bean工厂。但是从代码层面来看ApplicationContext接口是继承了BeanFactory接口的,也就是说两者都有做容器的能力,而ApplicationContext相对BeanFactory而言他又多了一些...
2019-10-31 17:40:39 290
原创 docker你需要知道的常用命令
1.镜像操作命令:docker search 关键字 #搜索镜像docker pull 镜像名:TAG #下载镜像,其中tag为镜像的版本号docker images #查看本地镜像docker rmi -f 镜像ID或者镜像名:TAG #删除本地镜像docker inspect 镜像ID或者镜像名:TAG #获取镜像的详细信息2.容器常用操作运行镜像生成容器:docke...
2019-10-25 10:12:28 353
原创 Spring源码之Spring上下文环境的初始化流程(五)
前言:在上一节,解析玩所有的类后,开始初始化spring的上下文环境1.解析代码入口,下图第13行public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) {/** * 先调用父类的构造方法: * 1.DefaultResourceLoader构造方法,初始化ClassLoader * ...
2019-10-22 21:12:37 685
原创 Spring源码之AnnotatedBeanDefinitionReader的注册流程(四)
前言:还是顺着spring容器初始化的流程来进行跟踪,在上一节解析完两个扫描器的初始化后,本节将继续解析注解扫描器的注册。此处代码跟踪的注册一般是注册配置类,不过此方法不止一处调用,故作通用解析1.解析AnnotationConfigApplicationContext构造方法的第五行public AnnotationConfigApplicationContext(Class<?&...
2019-10-21 17:33:23 2509 6
原创 Spring源码之扫描器(AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner)(三)
前言Spring容器加载Bean定义信息的两个扫描器:AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner*从命名来看,前者是读取注解声明的bean的定义信息;后者是读取xml声明的bean的定义信息本文将详细介绍这两个扫描器的初始化过程1.准备工作1.初始化一个spring容器对象2.断点调试,跟踪查看扫描器的初...
2019-10-20 15:20:58 782
原创 Spring源码之BeanDefinition(二)
前言:本节介绍BeanDefinition的相关概念,实现类的种类及其用途1.BeanDefinition的概念BeanDefinition描述一个bean实例,这个bean实例包含了属性值,构造函数的参数值,以及由具体实现提供额进一步信息**相关重要参数方法1.parentName: String2.beanClassName: 顾名思义,bean的类名3.scope: 创建be...
2019-10-16 20:13:59 146
原创 Spring5.0.X源码的下载及Idea编译(一)
1.从github下载spring源码下载地址:https://github.com/spring-projects/spring-framework本文以下载spring5.0为例,下载步骤如图2.安装GradleMac安装,直接在终端输入:brew install gradleWindows安装,从官网下载安装即可以mac为例,gradle -v3.使用idea导入,下载依赖...
2019-10-16 11:09:49 1117 1
原创 Java基础系列:JVM内存模型(二)
1.JVM内存区域:方法区,堆,虚拟机栈(VM stack),本地方法区栈(native method stack),程序计数器(PC) 我们先从线程共享区说起:1).方法区:方法区数据结构:Class1,Class2,...存放内容:已经被虚拟机加载的类信息、常量、静态变量、编译器编译后的代码等数据.方法区的属性:1.不需要连续的内存,大小不固定,J...
2019-02-28 17:11:59 160
原创 Java基础系列:Java类加载与初始化(一)
1.类加载器类加载器是一个用来加载类文件的类。Java源代码通过javac编译器编译成类文件。然后JVM来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。JVM有三种默认使用的类加载器:Bootstrap类加载器:加载rt.jar,使用C++编写没有父类Extension类加载器:加载JRE/lib/ext或者java.ext.dirs指向的目录,父...
2019-02-22 18:38:54 277
原创 Spring中@Transactional的使用
1.使用注解事务需要注意的点1.在需要事务管理的地方加@Transactional注解, @Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上.2.@Transactional 注解只能应用到 public 可见度的方法上,如果你在 protected、private 或者 package-visible 的方法上使用 @Transact...
2019-02-13 14:55:37 437
原创 CentOS yum 安装 oracle11
1.检查安装依赖系统包# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc...
2019-02-13 11:36:14 1677
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人