自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库面试题

什么是索引索引是一种数据结构,可以帮助我们快速的进行数据的查找。索引的数据结构和具体存储引擎的实现有关(默认InnoDB), 底层默认是B+树索引Hash索引和B+树所有有什么区别或者说优劣呢?hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据.B+树底层实现是多路平衡查找树.对于每一次的查询都是从根节点出发,查找到叶子节点方可以获得所查键值,然后根据查询判断是否需要回表查询数据...

2020-07-13 17:41:22 142

原创 SSM框架面试题

说一说Spring框架是一个容器框架,非侵入式框架,轻量级框架;提供对持久层的支持;提供了WebMvc框架;提供了IOC/DI;提供对事物的支持;提供Srping AOP面向切面编程;======================================================================================================Spring能帮我们做什么实例化bean,并且管理bean与bean之间的依赖关系Spring面向切面编

2020-07-07 20:39:09 279

原创 Spring、Mysql事务

1. 什么是事务?事务是指访问和操作数据库各种数据项的一个执行单元. 需要满足事务的四个特性2. 事务的特性原子性即不可分割,事务要么全部被执行,要么全部不执行。如果事务的所有子事务全部提交成功,则所有的数据库操作被提交,数据库状态发生变化;如果有子事务失败,则其他子事务的数据库操作被回滚,即数据库回到事务执行前的状态,不会发生状态转换。一致性事务的执行使得数据库从一种正确状态转换成另外一种正确状态隔离性在事务正确提交之前,不允许把事务对该数据的改变提供给任何其他事务,即在事务正

2020-07-06 15:16:25 171

原创 Spring Bean生命周期、Bean实例化过程

1. Bean生命周期转载 :https://www.jianshu.com/p/38032b0b9869Bean 的生命周期概括起来就是 4 个阶段:实例化(Instantiation)属性赋值(Populate)初始化(Initialization)销毁(Destruction)======================================================================================================

2020-06-30 20:42:47 354 2

原创 TCP三次握手

1. TCP协议与UDP协议1.1. TCP协议总结: 三次"对话"的目的是使数据包的发送和接收同步,经过三次"对话"之后,主机A才向主机B正式发送数据1.2. TCP协议总结: UDP传输的速度很快,但是不会保障包是否被成功接收两者的区别基于连接与无连接对系统资源的要求(TCP较多,UDP少)UDP程序结构简单TCP保证数据正确性和数据顺序,UDP可能丢包,不保证数据顺序## 1.3. 图解Seq: 序列号 根据序列号标示某个操作ACK: 确认标记SYN/

2020-06-28 09:15:29 95

原创 Mysql联接

转载:https://www.cnblogs.com/wanglijun/p/8916790.html

2020-06-23 10:24:24 64

原创 Mybatis缓存

1. 一级缓存一级缓存的命中条件相同的SQL和参数会话级别(sqlSession)缓存,如果要命中它,必须是相同的会话相同的方法相同的命名空间namespace(mapper)不能够在查询之前 执行clearCache不能执行update,delete,insert操作一级缓存运行流程图解Mybatis实现一级缓存2. 二级缓存在Dao层接口加上@CacheNamespace,自动开启二级缓存二级缓存的命中条件@CacheNamespace...

2020-06-22 22:34:41 147

原创 23种设计模式

1. 工厂模式/** * 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑, * 并且是通过使用一个共同的接口来指向新创建的对象 *//** * 创建一个接口: */interface Shape{ void draw();}/**创建实现接口的实体类 * */class Rectangle implements Shape { @Override public void draw() { System.out.println("

2020-06-20 13:01:29 75

原创 Spring Cloud框架集

Spring Cloud是什么东西?注册中心EurekaribbonHystrixHystrix dashboardTurbineFeign

2020-06-18 19:38:31 109

原创 yml配置和Jar包管理

1. 配置YML源配置springspring: application: name: item-service #项目名配置Mybatis配置数据源spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/库名?serverTimezone=GMT%2B8&useUnicode=true&characte

2020-06-15 22:27:20 721

原创 分布式

1. 微服务思想面向服务的架构(SOA)是一个组件模型(程序结构),它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互在分布式的思想的条件下,应该尽可能的降低服务之间的耦合性,同时满足当服务发生异常时,可以自动的实现故障的迁移.(HA)关键词: 1.分布式 2.架构的松耦合 3.服务高可用

2020-06-07 21:01:07 141

原创 SpringMvc开启后缀类型匹配和HttpClient

1. 关于SpringMVC请求路径的说明默认条件下 SpringMVC只能拦截前缀型请求. www.jt.com/item/562379如果请求路径添加了后缀,则后缀会误当做请求参数,参与运算.562379.html一起当做参数来使用,导致参数异常.开启后缀类型匹配说明:开启后缀类型匹配标识 如果请求 以.html/.do/.action等操作结尾时依然会被SpringMVC正确的拦截,并且后缀不参与参数的传递配置类位置配置类代码@Configurationpublic

2020-06-05 22:21:14 716

原创 Redis算法、持久化策略、内存策略、分片、哨兵、集群

1. Redis分片1.1 介绍说明:由于业务需要,通常可能会将海量的数据保存到redis的内存中,实现用户快读读取.但是Redis内存容量有限,不能一味的扩大内存.因为寻址的时间大大增加,性价比不高.所以最好的方式准备多台redis分别存储数据,实现内存的扩容.提高读写效率1.2 一致性hash算法一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题新增/删除节点,要求尽可能小的改变原有的映射关系解决了分布式环境下的存储动态伸缩性(弹性)问题

2020-06-01 22:05:55 278

原创 IEDA

1.IDEA的卸载除了在安装目录卸载外,还需要卸载用户目录这是IDEA的各种配置的保存目录。这个设置目录有一个特性,就是你删除掉整个目录之后,重新启动IDEA会自动帮你生产一个全新的默认配置,所以很多时候如果你把IDEA配置改坏了,没关系,删掉该目录,一切都会还原到默认2. IDEA的安装2.1 IDEA目录2.2 安装选择主题IDEA官方插件库https://plugins.jetbrains.com/idea3 .IDEA创建项目4....

2020-06-01 00:32:26 658

原创 Redis命令

1. Redis介绍Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)2. Spring整合Redis<!--spring整合redis --> <dependency> <groupId>redis.clients&

2020-05-29 22:00:42 268

原创 ObjectMapper工具API介绍

1. ObjectMapper介绍ObjectMapper是com.fasterxml.jackson.databind包下的程序, 该对象是当下数据转化的主流API.2. 对象转json、json转对象原理.对象转化JSON时,其实调用的是对象身上的getXxx()方法获取所有的geXxx()方法-----之后去掉get-----首字母小写json串中的key就是该属性.value就是属性的值定义转化对象的类型(XXXX.class)利用反射机制实例化对象 class.for

2020-05-29 20:54:18 1105

原创 Linux系统

1. VMware安装使用1.1 安装校验检查当前网络环境,是否包含2块网卡检查虚拟机IP地址,ipconfig1.2 VM安装Linuxhttps://blog.csdn.net/weixin_44218204/article/details/860836251.3 Linux系统的使用找到虚拟机双击运行效果1.4 虚拟机环境设置1.5 虚拟机网络问题桥接模式NAT模式1.6 虚拟机网段设置编辑-----虚拟网络编辑器,修改IP地址,改为指

2020-05-27 23:12:42 136

原创 Nginx反向代理和负载均衡

1. 反向代理原理(http协议)用户发起请求,访问真实资源代理服务器拦截用户请求,根据代理服务器中的配置信息,进行路径的动态切换将路径转化完成之后,由代理服务器代替用户访问真实的数据资源代理服务器获取数据之后返回代理服务器将结果返回给用户2. nginx介绍Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,并发能力强: 理论值5万次/秒, 实际值: 2-3万次/秒,占用内存少: nginx C语言开发 运行内存不超过2M官网下载: http://

2020-05-24 13:52:05 112

原创 Ajax和常用正则表达式

Ajax 请求参数的两种方式1. {“key”:“value”,“key2”:“value2”}2. “key=value&key2=value2” 常规参数拼接

2020-05-22 21:11:38 582

原创 分布式创建和restFul风格

2. restFul风格 /** * restFul风格 * 动态获取url中参数 * 语法: * 1.参数必须使用/方式进行分割 * 2.参数必须使用{}包裹 * 3.在方法中添加同名参数+ 注解 @PathVariable * @param moduleName * @return * * 注解说明: 如果参数命名和方法中的参数名称不一致时,则使用value或者name进行转化 * @RequestMapping("/page/{abc}"

2020-05-19 21:39:28 151

原创 Mybatis Plus

1. 为什么要使用Mybatis Plus使用Mybatis时几乎所有的简单操作都需要编辑sql。 是一种面向过程的编程方式。Mybatis Plus的JPA思想、ORM思想  JAVA持久层API,以对象的方式操作数据库  ORM思想:对象关系映射1.1. MP实现思想对象与表、属性与字段必须进行关联准备公共的API接口,包含了“单表”操作的全部的CURD方法。MP通过工具API可以将接口方法动态的转化为Sql。(拼接字符串的过程)1.2. Jar依赖<!--引入数据库驱动

2020-05-19 21:27:15 185

原创 spring boot项目创建和配置

1. SpringBoot执行的流程1.1. 导入相关jar包文件说明: 凡是springboot整合好的jar文件一般都是以spring-boot-starter等方式命名。称之为springboot的启动项,该jar包文件由springboot在程序内部进行统一的简化的配置1.2. SpringBoot主启动类的说明@SpringBootApplicationpublic class SpringbootDemo1Application { //加载当前的主启动类.并且加载主启动

2020-05-17 19:44:09 216

原创 创建Maven项目

2020-05-17 19:26:32 75

原创 Java基础

1. JAVA异常分类及处理概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。1.1. 异常处理方式抛出,抛给调用者try catch 捕获异常针对性处理2. Java反射...

2020-05-15 21:16:21 134

原创 ReentrantLock锁

1. 简介ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于 synchronized 的使用,但是 ReentrantLock 提供了比 synchronized 更强大、灵活的锁机制,可以减少死锁发生的概率

2020-05-14 18:29:36 6311 1

原创 synchronized锁

1. 实现原理  synchronized 可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。Java中每一个对象都可以作为锁, 这是 synchronized 实现同步的基础:普通同步方法, 锁是当前实例对象静态同步方法,锁是当前类的 class 对象同步方法块,锁是括号里面的对象public class SynchronizedTest { public synchronized void test1() {

2020-05-14 14:32:12 98

原创 并发编程中的问题

并发编程中的三个问题可见性是指一个线程对共享变量进行修改,另一个线程要立即得到修改后的最新值package ThreadTest;/** * 目标: 演示可见性问题 * 1. 创建一个共享变量 * 2. 创建一条线程不断读取变量 * 3. 创建一条线程不断修改变量 */public class Test01Visibility { //1. 创建一个共享变量 private static boolean flag = true; public static void main(

2020-05-10 22:03:09 86

原创 JMM: Java内存模型

JMMJava内存模型的概念Java Memory Molde(Java内存模型/JMM),千万不要和Java内存结构混淆Java内存模型,是Java虚拟机规范中所定义的一种内存模型,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别Java内存模型是一套规范,描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存读取变量这样的底层细节,具体如下主内存主内存是所有线程共享的,都能访问的.所有的共享变量都存储在主内存工作内存每个线程都有自己

2020-05-10 21:35:50 95

转载 JVM内存结构、Java内存模型和Java对象模型的区别

转载:https://www.jianshu.com/p/dff4bd49d25a作者: juconcurrent

2020-05-06 20:37:12 83

原创 Java多线程并发(二): 线程常用方法以及线程锁

线程常用方法1.生产者消费者模式中间队列package queue;//中间队列public class QueueBuffer { private int number=0; //商品 /** * 有一个资源,里面维护一个成员变量number,默认值为0,有两个线程,一个对number做++ * 一个对number-- * 业务需求: 这个number永远不停的为...

2020-05-04 21:25:37 218

原创 Lambda

Lambda表达式1.Lambda表达式简介1.1.什么是Lambda表达式1.2.为什么要使用Lambda?1.3.Lambda对接口的要求2.Lambda表达式基础语法3.Lambda表达式语法精简4.Lambda表达式语法进阶5.Lambda表达式案例6.系统内置函数式接口7.闭包...

2020-05-02 22:36:07 170

原创 Java多线程并发(一): 线程和线程池

Java多线程1.线程和进程一个程序下至少有一个进程,一个进程至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度2.线程创建方式继承Thread类  Thread类本质是实现了Runable接口的一个实例,代表一个线程的实例 //Thread类 public class Thread implements Runnable { ... }  创建一个MyT...

2020-04-26 22:34:30 249

原创 Java容器

1. Java容器分类图https://www.cnblogs.com/wishyouhappy/p/3669198.html2. 容器接口(Collection,Map,Iterator):顶级父类接口  容器接口是容器的基础。使用接口可以将容器的实现与容器接口分开,因而可以使用相同的方法访问容器而不需关心容器具体的数据结构Collection: 集合的顶级接口Map接口: (存...

2020-04-22 22:23:32 229

原创 GC回收

GC回收复习1. 堆从GC的角度细分  Eden区:Java新对象的出生地(如果新创建的对象占用内存很大,直接分配到老年代),当Eden区内存不够时就会触发小GC,对年轻代(新生代)进行一次垃圾回收  From区:上一次GC的幸存者,这一次GC的扫描者  To区:保留一次小GC过程中的幸存者  老年代:主要存放应用程序中生命周期长的内存对象,当老年代也放不下的时候,就会抛出OOM异常...

2020-04-21 22:37:21 109

原创 JVM: Java内存结构

发送

2020-04-21 16:51:50 253 1

空空如也

空空如也

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

TA关注的人

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