自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Redis笔记整理(二)

个人印象笔记地址:https://app.yinxiang.com/fx/2e66f551-c06f-4ec5-b4bb-fd1c32073218redis的数据结构 : String: 字符串 Hash: 散列 List: 列表 Set: 集合 Sorted Set: 有序集合 Redis运行在内存中但是可以持久化到磁盘一·String类型:string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jp.

2020-06-09 20:04:03 370

原创 Redis笔记整理

印象笔记地址:https://app.yinxiang.com/fx/42180fad-9a59-41a0-8db3-9b8d66c34d07Redis的Linux安装步骤:1.确保Linux 操作系统可以连接外网 打开xshall连接Linux操作系统 输入命令:ping www.baidu.com像这样即可2.给Linux操作系统安装c++编译环境。输入指令 yum install gcc-c++ 安装 如果提示Another app is curr...

2020-06-08 12:00:38 2647

原创 java反射机制原理,为什么需要反射,反射的作用

最近在学java反射以及动态代理,好多博客都写的十分官方。就自己整合些资料。加深java反射机制的理解。在说反射之前,我们要先了解动态语言和静态语言的概念:动态类型语言所谓动态类型语言,就是类型的检查是在运行时才做。动态类型在解释语言中极为普遍,如 JavaScript、Perl、Python、Ruby 等等静态类型语言静态类型语言的类型检查是在运行前的编译阶段,比如 C#、Java 等都是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要注意:

2020-05-30 17:48:30 3250 1

原创 VMware Workstation 15 界面语言改成中文或其他语言的方法

从官网安装VMware 15.5Pro 之后 ,打开虚拟机一直是全英文版,如图示查看资料后都说在找到你的VMware安装目录:我的是D:\VMware Workstation\messages有ja、zh_CN两个语言包,只需要把zh_CN文件夹重命名,或移动保存到其他盘符,再重启VMware,就是英文了,如果要使用中文版则把zh_CN文件夹恢复回来即可但是尝试几次之后还是显示英文。最终找到了问题所在,原来是系统的时区选择的时意大利只需要改回中国 简体即可,点击应用,VMware启动 ,

2020-05-24 17:42:59 85380 17

原创 多核并发缓存架构笔记(一)volatile实现原理

cpu的硬件架构:cpu读内存数据时,相当于将内存地址中的数据读入cpu,RAM速度慢,CPU速度快,为了高效传输数据,通常选择加入缓存java内存模型和CPU缓存模型类似,是基于CPU缓存模型来建立的,java内存模型是标准化的,屏蔽掉了底层不同计算机的区别。...

2020-05-23 10:57:17 2209

原创 Linux系统下Nginx系统的使用与安装

一、单体项目出现瓶颈。并发量小,用户使用的少,在低并发的情况下,一个jar包启动应用就可以了,然后内部tomcat返回内容给用户慢慢的,平台的用户越来越多,并发量越来越大,单个服务器已经满足不了要求了。于是横向扩展,增加服务器的数量,这个时候项目启动在不同的服务器上,用户需要访问就需要增加一个代理服务器了,通过代理服务器帮我们转发和处理请求。我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点上,这个过程用户时...

2021-02-03 12:18:16 288 1

原创 虚拟机CentOS安装docker详细教程

1.什么是docker:docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务2.原理docker是利用Linux内核虚拟机化技术(LXC),提供轻量级的虚拟化,以便隔离进程和资源。3.虚拟机安装docker。也可以在物理机上安装docker. 1. 前提条件:Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行。但作为一...

2020-09-17 16:25:45 2287

原创 关于redis中的持久化机制

脑图:1.持久化:将数据文件永久的保存到磁盘的过程 称之为数据持久化内存中的数据:断电后消失2.redis 中默认支持持久化机制;a.快照持久化:生成某个时刻的redis server 中的数据 快照 xxx.rdb格式 ,redis宕机之后,可以读取xxx.rdb格式的文件恢复数据。创建快照的几种方式:1.手动快照: 客户端执行bgsave 生成xxx.rdb 文件 (调用fork 函数,生成父子进程 不会阻塞redis服务)​ 客户端执行 save

2020-07-17 20:33:45 2406

原创 设计模式之 观察者模式

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。一:举个例子:每当这位明星发布一条动态时候,他的粉丝就都会知道。我们使用一张图来表示一下他们的关系其中 明星就是Subject ,粉丝是 Observer从上面我们可以看到,这里面包含了两大类(主题和观察者)一共四个角色:(1)Subje...

2020-07-11 10:12:26 231

原创 MyBatis核心接口和类

三大对象:1、SqISessionFactoryBuilder: 负责构建SqlSessionFactory,并且提供了多个build( )方法的重载2、SqlSessionFactory: 创建SqlSession实例的工厂3、SqlSession: 用于执行持久化操作的对象三大对象获取的步骤:(1)每个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。(2)首先获取SqlSessionFactoryBuilder对象, 可以根据XML配置文件的.

2020-07-06 23:29:13 429

原创 SpringBoot之WebMvcConfigurerAdapter(笔记)

一、WebMvcConfigurerAdapter是什么Spring内部的一种配置方式采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制二、WebMvcConfigurerAdapter常用的方法/** 解决跨域问题 **/public void addCorsMappings(CorsRegistry registry) ;/** 添加拦截器 **/void addInterceptors(InterceptorRegistry registry);/**

2020-07-06 00:48:19 188

原创 线程进程专题复习 创建线程的四种方式

印象笔记地址:https://app线程和进程专题进程是资源分配的基本单位,线程是调度的基本单位。线程依赖于进程,不能独立存在。创建线程的4种方式总结:1.创建线程的第一种方式:继承Thread类 (1)创建一个类继承Thread类,重写run()方法,将所要完成的任务代码写进run()方法中; (2)创建Thread类的子类的对象; (3)调用该对象的start()方法,该start()方法表示先开启线程,然后调用run()方...

2020-07-05 00:55:05 145

原创 JPA、Hibernate、Spring Data JPA之间的关系

Java 持久层框架访问数据库的方式大致分为两种。以SQL 核心,封装一定程度的 JDBC 操作,比如: MyBatis。 以 Java 实体类为核心,将实体类的和数据库表之间建立映射关系,也就是我们说的ORM框架,如:Hibernate、Spring Data JPAJPA是啥?JPA全称为Java Persistence API(Java持久层API),它是Sun公司在JavaEE 5中提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具,来管理Java应用中的关系数.

2020-07-04 00:30:37 245

原创 Spring+SpringMVC+MyBatis SSM框架整合的小案例

个人映像笔记地址https://app.yinxiang.com/fx/9c68d50e-cbd4-4a20-a085-7e18f272488b案例已经放到GitHub:https://github.com/ztb0312/SSMzhenghe.gitSSM框架整合Spring + Spring MVC + MyBatis Spring MVC负责实现MVC设计模式, MyBatis 负责数据持久层, Spring 负责管理Spring MVC和MyBatis.

2020-06-29 14:17:19 172

原创 Java 集合类 总结

个人映像笔记地址:https://app.yinxiang.com/fx/732b34cd-548b-4515-b430-357b79643ed5Java集合---Collection一:List集合 1.ArrayList:有序 ,有下标 ,元素可重复注意:jdk 1.7 之前一上来的默认数组容量就是10;改进后 ,调用无参构造方法创建的数组大小为0.ensureCapacityInternal中首先是判断现在的ArrayL...

2020-06-28 00:25:20 182

原创 java 的双亲委派模型

个人笔记地址:https://app.yinxiang.com/fx/8a2ee867-dc18-49e0-a15a-2a2836061f06Java加载的过程以及Class的 生命周期类加载阶段:(1)Java虚拟机将.class文件读入内存,并为之创建一个Class对象。(2)任何类被使用时系统都会为其创建一个且仅有一个Class对象。(3)这个Class对象描述了这个类创建出来的对象的所有信息,比如有哪些构造方法,都有哪些成员方法,都有哪些成员变量等。双亲委派模..

2020-06-27 01:28:22 273

原创 Tcp--三次握手,四次挥手的理解

个人印象笔记地址https://app.yinxiang.com/fx/ba73dae0-da3e-45d6-bca4-d9cf6a0b9c18Tcp--三次握手,四次挥手TCP协议中,主动发起请求的一端称为『客户端』,被动连接的一端称为『服务端』。不管是客户端还是服务端,TCP连接建立完后都能发送和接收数据。刚开始的时候,服务器和客户端都为CLOSED状态。在通信开始前,双方都得创建各自的传输控制块(TCB)。服务器创建完TCB后遍进入LISTEN状态,此时准备接收客户端发来的连接请.

2020-06-25 23:54:58 300

原创  Java新生代老年代的划分及垃圾回收算法 复习总结

个人有道云笔记地址:Java新生代老年代的划分及回收算法复盘...链接:http://note.youdao.com/noteshare?id=d73849e7e360d31540f624cd91f7b7e5Java新生代老年代的划分及回收算法复习总结Java堆是垃圾回收器管理的主要区域,百分之九十九的垃圾回收发生在Java堆,另外百分之一发生在方法区,因此又称之为”GC堆”。根据JVM规范规定的内容,Java堆可以处于物理上不连续的内存空间中。JVM的内存分配回收算法:复..

2020-06-25 01:44:41 865

原创 spring boot整合rabbitmq以及使用场景和集群搭建

个人印象笔记地址:https://app.yinxiang.com/fx/c19556bc-e80f-4f4c-bf1f-04595af67180SpringBoot整合RabbitMQ搭建初始环境1. 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId>

2020-06-23 23:52:26 1080

原创 Git 在win 10 系统的安装与基本操作 连接GitHub 仓库

个人印象笔记地址:https://app.yinxiang.com/fx/c829ea9b-bdad-4b32-a324-d20e05c3a6e0在6月11日更换了笔记本电脑,之前是win7 现在在win10 上重新安装和配置gitgit 在 Win10系统上的使用:官网下载安装 git如图:在当前目录下创建 文件的快捷方式: touch aa.txt; (在版本控制器的当前目录下,但是 并没有交给版本控制器去管理)上传文件操作:...

2020-06-22 01:27:28 376

原创 rabbitmq笔记(三)

消息队列模型之fanout 模型fanout 扇出 也称为广播在广播模式下,消息发送流程是这样的: 可以有多个消费者 每个消费者有自己的queue(队列) 每个队列都要绑定到Exchange(交换机) 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。 交换机把消息发送给绑定过的所有队列 队列的消费者都能拿到消息。实现一条消息被多个消费者消费 具体的实现步骤1. 开发生产者package com.

2020-06-21 00:50:38 326

原创 RabbitMQ笔记整合

映像笔记地址:https://app.yinxiang.com/fx/eca4918e-9a79-45c8-ad10-5cf0703253203. RabiitMQ 配置3.1RabbitMQ 管理命令行# 1.服务启动相关 systemctl start|restart|stop|status rabbitmq-server# 2.管理命令行 用来在不使用web管理界面情况下命令操作RabbitMQ rabbitmqctl help 可以查看更多命令# 3.插件

2020-06-19 01:42:07 164

原创 Centos7 安装rabbitmq详细教程

RabbitMQ 实战1.MQ引言1.1 什么是MQMQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。1.2 MQ有哪些当今市面上有很多主流的消息中间件,如老牌的ActiveM

2020-06-10 01:44:35 273 1

原创 集合之HashMap 复盘:扩容机制,ConcurentHashMap jdk1.7 与 1.8的对比

集合之HashMap 复盘:阅读源码:1.默认数组是16,但是可以自己指定。 预先指定hashmap的size为2的整数次幂次方。就算不指定的话,也会以大于且最接近指定值大小的2次幂来初始化的,eg:11-->1617-->322.HashMap的扩容机制:触发条件:hashmap中的元素个数超过数组大小*loadFactor加载因子eg:16*0.75=12 ---->重新扩大一倍为32然后重新计算每个元素在数组中的位置,而这...

2020-06-08 00:42:09 1208

原创 Java设计模式之简单工厂模式,工厂模式,抽象工厂模式

设计模式之:简单工厂模式。1.含义:简单工厂模式又叫静态方法模式(因为工厂类定义了一个静态方法)2.结果:将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要的“产品”类,从而避免了在客户端代码中显式指定,实现了解耦。UML图:3.使用步骤 创建抽象产品类& 定义具体产品的公共接口; 创建具体产品类(继承抽象产品类) & 定义生产的具体产品; 创建工厂类,通过创建静态方法根据...

2020-06-05 00:54:35 359

原创 java IO 流复盘,总结笔记

File类:通过File类在程序中操作文件和目录。File类可以新建,删除,重命名文件或者目录 但是该路径的文件或者文件夹不一定在磁盘真的存在!!!,File不能访问文件本身。(需要使用输入输出流)file类可以使用文件文件路径字符串创建file对象。(可以是绝对路径或者相对路径)主要方法: String getName(){} 返回此File对象的文件名或者路径名(如路径,则返回最后一级子路径名)。String getPath(){}返回此File对象所对应的路径名。文件...

2020-06-04 01:32:24 420

原创 什么是单例模式?单例模式详解

个人印象笔记地址:https://app.yinxiang.com/fx/eaa22560-57a4-4554-8de8-b5f254090d37单例模式介绍1.1 模式说明实现1个类只有1个实例化对象 & 提供一个全局访问点1.2 作用(解决的问题)保证1个类只有1个对象,降低对象之间的耦合度1.3 工作原理在Java中,我们通过使用对象(类实例化后)来操作这些类,类实例化是通过它的构造方法进行的,要是想实现一个类只有一个实例化对象,就要对类的构造方法做改变。单

2020-06-03 01:24:08 1939

原创 SpringAOP 对象代理笔记

Spring AOP笔记:应用场景: 日志记录,异常的统一处理,权限验证,事务处理。什么是叫做面向切面编程。Aop是什么?-----------编程需要实现的目标,实现面向切面编程SpringAOP是什么?-----实现这个目标的手段AOP的两种实现形式: SpringAOP Aspectj 切面(Aspect):其实就是共有功能的实现。如日志切面、权限切面、事务切面等。在实际应用中通常是一个存放共有功能实现的普通Java类,之所以能被AOP容器识别..

2020-06-02 20:39:55 260

原创 MySql数据库笔记(一)详解事物隔离级别

数据库的分类关系型数据库以表格的形式存在,以行和列的形式存取数据,关系型数据库这一系列的行和列被称为表,无数张表组成了数据库,常见的关系型数据库有 Oracle、DB2、Microsoft SQL Server、MySQL等。关系型数据库能够支持复杂的 SQL 查询,能够体现出数据之间、表之间的关联关系;关系型数据库也支持事务,便于提交或者回滚。非关系型数据库非关系型数据库也称为 NoSQL,也就是 Not Only SQL。特点:非关系型数据库不需要写一些复杂的 SQL 语句,其内部存储方式是

2020-05-29 11:20:11 152

原创 Java 8 新增的Lambda表达式笔记(一)

Lambda表达式简介什么是Lambda?Lambda是JAVA B添加的一个新的特性,Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。说白了, Lambda就是一个匿名函数。为什么要使用Lambda?使用Lambda表达式可以对一个接口进行非常简洁的实现。Lambda对接口的要求?虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现。要求接口中定义的必须要实现的抽象方法只能是一个.eg:函数式接口在JAVA8对接

2020-05-24 11:45:10 233

原创 关于JVM内存模型的理解和垃圾回收机制笔记(一)

JVM内存模型图栈:存放基本数据类型和引用(可理解为一个地址),实例方法。主要异常会有(StackOverFlowError,OutOfMemoryError).线程私有,生命周期与线程相同,每个方法执行时会创建一个栈帧结构。用于存放局部变量表,操作数栈,动态链接,方法出口。堆:(Heap)存放对象实例,所有对象的内存地址在此分配。它是线程共享的,生命周期与虚拟机相同。主要异常有(OutOfMemoryError)程序计数器:线程私有,特点:占用内存小,记录的是线程执行的行号,负责分

2020-05-23 21:09:45 180

原创 索引,覆盖索引,聚集索引和非聚集索引

索引(Index)是帮助数据库高效获取数据的数据结构。索引是在基于数据库表创建的,它包含一个表中某些列的值以及记录对应的地址,并且把这些值存储在一个数据结构中。最常见的就是使用哈希表、B+树作为索引。...

2020-05-20 09:23:30 346

原创 java基础 == 与 equals 源码分析

== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型比较的是内存地址)。equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:情况 1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。情况 2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来比较两个对象的内容是否相等;若它们的内容相等,则返回 tr

2020-05-19 12:52:50 169

原创 Java内存分配之堆、栈和常量池总结

Java内存分配:主要区域:寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM(随机存取存储器)存储:硬盘等永久存储空间jvm内存模型:Java内存分配中的堆堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。引用变量是普通的变量,定义时在栈中分配,引用变量在

2020-05-17 09:55:42 335

转载 String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?

String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?简单的来说:String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。补充:在 Java 9 之后,String 类的实现改用 byte 数组存储字符串private final byte[] value;而 StringBuilder 与 StringBuffer 都继承自 Ab

2020-05-17 08:54:34 169

转载 HashTable实现原理和底层源码

HashTable相对于HashMap的最大特点就是线程安全,所有的操作都是被synchronized锁保护的转发自

2020-05-15 16:47:14 199

原创 SpringBoot整合Mybatis完整详细 小案例

新建一个mavn工程。选择mavn app项目2填写好项目名和保存地址3.一个原始的mavn项目的框架是没有java和resources包的 ,我们需要在mian包下面新建java包和resources包,先后右键 ,把java包 标记成绿色SourcesRoot,把resources包 设置为ResourcesRoot4.如图创建entity包 repository包 ,contorller包5.entity包创建Student实体类package com.ztb.entity;.

2020-05-10 21:02:25 836

原创 springboot概述和快速搭建

Spring BootSpring Boot 是一个快速开发框架,可以迅速搭建出一套基于 Spring 框架体系的应用,是 SpringCloud 的基础。Spring Boot 开启了各种自动装配,从而简化代码的开发,不需要编写各种配置文件,只需要引用相关依赖就可以迅速搭建一个应用。特点1、不需要 web.xml2、不需要 springmvc.xml3、不需要 tomcat,Spring Boot 内嵌了 tomcat,端口号等配置在yml文件中写入4、不需要配置 JSON 解析,支持持 R

2020-05-10 10:11:34 459

原创 Spring MVC REST 以及 SpringMVC 文件的上传和下载

REST概述REST:Representational State Transfer,资源表现层状态转换,是当前比较主流的一种互联网软件架构,它结构清晰、标准规范、易于理解、便于扩展。资源(Resource):网络上的一个实体,或者说网络中存在的一个具体信息,一段文本、一张图片、一首歌曲、一段视频等等,总之就是一个具体的存在。可以用一个 URI(统一资源定位符)指向它,每个资源都有对应的一个特定的 URI,要获取该资源时,只需要访问对应的 URI 即可。表现层(Representation):

2020-05-09 21:44:52 234

原创 SpringMVC相关注解总结(二)

使⽤ JavaBean 绑定参数Spring MVC 会根据请求参数名和 JavaBean 属性名进行自动匹配,自动为对象填充属性值,同时支持及联属性。import lombok.Data;@Datapublic class Address {private String value;}import lombok.Data;@Datapublic class User {private long id;private String name;private Address ad.

2020-05-09 12:43:50 168

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除