3 吴声子夜歌

尚未进行身份认证

我要认证

个人学习记录

等级
TA的排名 1k+

Spring——基础面试题

1. 什么是Spring?Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进 良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring是轻量的,基本的版本大约2MB控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或者查找依赖的对象们面向切面编程(A

2020-09-17 22:25:21

Redis——基础面试

1. 什么是Redis?简述它的优缺点Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个

2020-09-14 17:51:28

并发编程——面试题

Synchronized相关问题1. Synchronized 用过吗,其原理是什么?Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现被Synchronized修饰过的程序块,在编译前后生成了monitorenter和monitorexit两个字节码指令。虚拟机执行到monitorenter指令时,首先要尝试获取对象的锁:如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;当执行mon

2020-09-12 23:16:09

悲观锁与乐观锁

悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里面就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上 锁,但是在更新的时候会判

2020-09-12 01:20:57

JVM——基础面试题

1. 内存模型以及分区JVM分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class类信息常量池(static常量和static变量)等放在方法区方法区:主要存储类信息,常量池,编译后的代码(字节码)等数据堆:初始化的对象,成员变量(非static),所有的对象实例和数组都要在堆上分配栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是8大基础类型加上一个引用类型,所以还是一个指向地址的指针本地方法栈:主要为N

2020-09-09 22:21:12

23种设计模式——知识要点

1. 单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)通用代码:(线程安全):public class Singleton { private static final Singleton singleton = new Singleton(); //限制产生多个对

2020-09-09 00:10:42

Mysql——多表连接查询的执行细节

多表连接查询的执行细节create table a(a1 int primary key, a2 int ,index(a2)); --双字段都有索引create table c(c1 int primary key, c2 int ,index(c2), c3 int); --双字段都有索引create table b(b1 int primary key, b2 int); --有主键索引create table d(d1 int, d2 int); --没有索

2020-08-31 20:25:08

MySQL——小表驱动大表

小表驱动大表准备两站表:CREATE TABLE `student` ( `id` int(11) NOT NULL, `no` varchar(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO student VALUES(1, '0001', 'tom');INSERT INTO st

2020-08-31 16:20:27

Kubernates——Pod定义详解

Pod定义详解yml格式的Pod定义文件的完整内容如下:apiVersion: v1kind: Podmetadata: name: string namespace: string labels: - name: string annotations: - name: stringspec: containers: - name: string image: string imagePullPolicy: [Always | Never | IfNtPresent

2020-08-29 09:14:29

基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署

基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署查看Docker for mac支持的Kubernates版本:下载对应的镜像:阿里云执行脚本:./load_images.sh启动Kubernates(等待几分钟):验证集群状态:kubectl cluster-infokubectl get nodes如果勾选了Show system containers选项,可以使用docker ps命令看到自动安装的Kubernates相关容器:Doc

2020-08-28 15:51:26

Kubernates——概述

Kubernates是什么Kubernetes是Google开源的容器集群管理系统。它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,本质上可看作是基于容器技术的Micro-PaaS平台,即第三代PaaS的代表性项目。Google从2004年起就已经开始使用容器技术了,于2006年发布了Cgroup,而且内部开发了强大的集群资源管理平台Borg和Omega,这些都已经广泛使用在Google的各个基础设施中,而Kubernetes的灵感来源于Google的

2020-08-28 13:08:20

Docker——常见问题总结

镜像相关1. 如何备份系统中所有的镜像首先,备份镜像列表可以使用docker images|awk 'NR>1{print $1":"$2}'|sort > images.list导出所有镜像为当前目录下文件,可以使用如下命令:while read img; do echo $img file="${img/\//-}" sudo docker save --output $file.tar $imgdone < images.list将本地镜像文件导入为Docker

2020-08-27 12:37:24

Docker——部署SpringBoot项目

1. 准备SpringBoot项目并打包@RestControllerpublic class DockerController { @GetMapping("/docker/hello") public String hello() { return "hello world!"; }}编写dockerfile# 基础镜像使用javaFROM java:8# 作者MAINTAINER acton <actonzhang@163.com&g

2020-08-27 10:05:25

DockerFile——指令说明

指令说明Dockerfile中指令的一般格式为INSTRUCTION arguments,包括”配置指令“(配置镜像信息)和”操作指令“(具体执行操作)。配置执行1. ARG定义创建镜像过程中使用的变量。格式为ARG <name> [=<default value>] 。在执行docker build 时,可以通过-build-arg[=]来为变量赋值。当镜像编译成功后,ARG指定的变量将不再存在(ENV指定的变量将在镜像中保留)。Docker内置了一-些镜像创建变

2020-08-26 16:28:22

Docker——端口映射与容器互联

端口映射实现容器访问1. 从外部访问容器应用:在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射。当使用-P (大写的)标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口。-p则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有:IP:HostPosrt:ContainerPortIP::Contain

2020-08-26 15:07:02

Netty——经典面试题

TCP和UDP的根本区别TCP面向连接,如打电话要先拨号建立连接;UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付TCP通过校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信或广播通信每一条TCP连接只能是点到点的;UDP

2020-08-21 11:56:15

SpringCloudAlibaba——Seata配置文件

Seata配置文件详解在${SEATA_HOME}\conf目录下有两个配置文件,分别是registry.conf和file.conf。registry.confregistry.conf包含两项配置:registry:表示配置Seata服务注册的地址,支持目前市面上所有主流的注册中心组件。它的配置非常简单,通过type指定注册中心的类型,然后根据指定的类型对应的服务地址信息,比如当type=nacos时,则匹配到Nacos的配置项如下:type="nacos"nacos { serverAd

2020-08-17 15:32:54

SpringCloudAlibaba——Seata AT模式的实现原理

Seata AT模式的实现原理AT模式是基于XA事务模型演化而来的,所以它的整体机制也是一个改进版的两段提交协议。第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。第二阶段:提交异步化,非常快速地完成。回滚通过第一阶段的日志进行反向补偿。以一个创建订单事务中的库存表tbl_repo来表述整个工作过程:AT模式第一阶段的实践原理:在业务流程中执行库存扣减操作的数据库操作时,Seata会基于数据源代理对源执行的SQL进行解析,代理的配置如下:@Beanpubli

2020-08-17 14:44:42

SpringCloudAlibaba——编码方式配置Sentinel限流与熔断

Sentinel限流、熔断的实现流程定义资源定义限流、熔断规则检验规则是否生效定义资源方式一:使用@SentinelResource注解@GetMapping("testY")@SentinelResource(value = "testY", blockHandler = "testYHandler")public String testY(){ return "testY";}//限流后的处理方法public String testYHandler(BlockExce

2020-08-16 22:00:05

SpringCloudAlibaba——Nacos Config实现原理解析

Nacos Config实现原理解析Nacos Config针对配置提供了4中操作。针对这4中操作,Nacos提供了SDK及Open API的方式进行访问。== 获取配置:从Nacos Config Server中读取配置==监听配置:订阅感兴趣的配置,当配置发生变化时可以收到一个事件:发布配置:将配置保存到Nacos Config Server中:删除配置:删除配置中心的指定配置:配置的CRUD对于Nacos Config来说,其实就是提供了配置的集中式管理功能,然后对外提供CRUD

2020-08-16 11:43:27

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 1024超级勋章
    1024超级勋章
    授予原创文章总数达到1024篇的博主,感谢你对CSDN社区的贡献,CSDN与你一起成长。
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。