自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 Elasticsearch 基本内容详细解释

Elasticsearch1.全文检索1.1 为什么要使用全文检索​ 在一个项目中,用户访问首页一般都会直接搜索自己想要的东西。​ 一般来说,商品的分类的数量相当多,如果想要正确的显示出用户想要的商品,那么一个强大的搜索系统是不可或缺的。​ 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。​ 这里使用传统的数据库不够用,所以我们会使用全文搜索。​

2020-08-31 22:46:09 975 1

原创 Docker 详细介绍

Docker一、Docker的简介1.docker是什么Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。2.docker的应用场景Web 应用的自动化打包和发布。自动化测试和持续集成、发布。

2021-02-21 21:40:09 299

原创 软件工程 无敌详细

软件工程概述第一章:软件工程基本概念1、软件的概念与特点1.什么是软件?软件=程序+数据+文档程序:按照事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料。程序是可执行部分,数据则是不可执行部分。2.软件的特点: 2.1 软件是开发的或者是工程化的,并不是制造的。 2.2 软件生产是简单的拷贝。 2.3 软件会多次修改。 2.4 软件开发环境对产品影响较大 2.5 软件开发时间和工作量难以估计 2.6 软件

2021-01-30 21:16:30 1063

原创 SSM框架整合

SSM框架整合模板一、搭建整个环境1.整合说明:我们使用xml加注解的方式进行整合2.整合思路:2.1 先搭建整合的环境 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.comp

2021-01-29 13:56:33 116

原创 SpringMVC

SpringMVC一、SpringMVC的基本概念1.三层架构我们开发架构一般都是基于两种形式,一种是B/S架构,一种是C/S架构,也就是我们常说的浏览器服务器和客户端服务器两种。在JavaEE中,几乎全部都是基于B/S的架构方式,在这种架构体系中,系统标准的三层架构包括:表现层,业务层,数据访问层。表现层:也就是我们常说的web层,它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求,然后表现层接收请求,完成http响应。表现层包括展示层和控制层,控制层负责接受请求,展

2021-01-29 13:12:48 172

原创 Spring 全程学习笔记

spring一、Spring简介1、spring是什么Spring是分层的java se/ee应用full-stack轻量级开源框架,以IOC(Inverse Of Control 控制反转 )和AOP(Aspect Oriented Programming 面向切面编程)为内核。提供了展现层SpringMVC和持久层Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的java ee企业应用开源框架。2、

2021-01-26 21:00:57 191

原创 Mybatis

Mybatis一、框架简述1.什么是框架?​ 框架就是软件开发中的一套解决方案,也可以理解为软件的半成品,不同的框架解决的是不同的问题。​ 使用框架的好处:框架封装了很多的细节,是开发者可以使用极简的方式实现功能,大大提高开发效率。2.三层架构表现层:是用于展示数据的业务层:是处理需求的数据访问层:是和数据库交互的3.持久层技术解决方案JDBC技术 Connection PrepareStatement ResultSetSpringJDBCTemplate Spring对于jdbc

2021-01-24 20:35:28 188 1

原创 Java面试题容器 第二部分

Java面试题容器 第二部分先上几张大图说明java中容器的具体情况。部分内容借鉴别人总结的东西,如有需要,请看这篇博客。如果想详细了解java集合相关内容,请看这里。1、Collection和Collections有什么区别?Collection是一个集合接口,所有集合都是它的子类。Colletions是一个包装类,包含了很多静态方法,不能被实例化,就像是一个工具类。2、HashMap和HashTable的区别?hashmaphashtable存储key

2020-09-16 22:36:02 174

原创 Java面试题基础 第一部分

Java面试题基础 第一部分1、==和equals的区别?在比较基本数据类型时,==比较的是数据的值在比较引用数据类型时,==比较的是引用地址是否相同,equals比较的具体的值是否相同。2、两个对象的hashcode()相同,那么equals一定相同吗?两个对象的hashcode()相同,但是equals()不一定相同。String str1 = new String("通话");String str2 = new String("重地");System.out.println("str1

2020-09-16 21:45:43 88

原创 死锁 以及死锁的解决策略

死锁我们需要知道的是,死锁是如何产生的,以及如何相关的应对策略。1、什么叫死锁?首先,我们要明确,线程和线程,进程和进程之间都是可以发生死锁的。进程间的死锁:通俗的来说,就是几个进程由于资源调度不合理,导致两个甚至更多的进程出现了无法向下执行的情况,那么我们就称之为死锁。线程间的死锁:我们假设有两个线程A和B,线程A持有锁A,线程B持有锁B,此时线程A想要去获取B的锁才能继续向下执行,线程B也想获取A的锁然后向下执行,但是两个线程的锁都在自己手里,别人无法获得,那么两个线程就会陷入一个比较尴尬的境

2020-09-15 00:11:59 269

原创 Java线程 基础知识<1>

Java线程 基础知识<1>一、相关概念的解读1.并发和并行并发:就是通过调度算法,让用户看上去程序是在同时运行。这么说能好一点,并发就是指同一时刻只能有一条指令执行,但是多个线程指令被快速的轮换执行,使得宏观上具有多个线程同时执行的效果,但是微观上并不是同时执行的,只不过是把时间分成了若干段,让多个线程快速交替的执行。并发可以看作是并行的假象。我们可以把并发理解为逻辑上的同时发生。并行:就是指在同一时刻,由多条指令在多个处理器上同时执行,所以无论是从微观还是宏观的角度上来说,二者都是

2020-09-05 00:44:11 125

原创 JVM虚拟机 第五部分

第三部分:高效并发一、Java内存模型与线程1.概述这里我们会介绍虚拟机如何实现多线程、多线程之间由于共享和竞争数据而导致的问题以及解决方案。2.硬件的效率与一致性3.Java内存模型定义java内存模型并非一件容易的事情,模型必须定义得足够严谨,但是同时定义的又必须足够宽松,使得虚拟机的实现能有足够的自由空间区利用硬件的各种特性来获取更好的执行速度。3.1 主内存与工作内存java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存保存了被该线程使用到的变量

2020-09-04 00:31:55 153

原创 JVM虚拟机 第四部分

二、虚拟机字节码执行引擎1.概述执行引擎是java虚拟机最核心的组成部分之一。执行引擎在执行代码的时候可能有解释执行(通过解释器执行),也可能有编译执行(通过即时编译器执行),当然也可能两者兼备,甚至还包含几个不同级别的编译器执行引擎,2.运行时栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量表、操作数栈、动态链接和方法返回地址等信息。2.1 局部变量表局部变量表的容量一变量槽Slot为最小单位。一个变量槽可以存放

2020-09-03 22:32:36 80

原创 JVM虚拟机 第三部分

第二部分:虚拟机执行子系统一、虚拟机类加载机制1.概述​ Class文件的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用,而虚拟机如何加载这些Class文件?Class文件中的信息进入到虚拟机之后会发生什么变化?这些都应该是我们思考的问题。​ 虚拟机把描述类的数据加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。2.类加载的时机具体见下图。​ 类从被加载到虚拟机内存开始、到卸载出内存为止,它的整个生命周期包括了:加载

2020-09-03 22:07:55 144

原创 JVM虚拟机详解 第二部分

二、垃圾回收器与内存分配策略1.概述​ 说起垃圾回收,GC的历史其实比java要久的多。第一门使用内存动态分配和垃圾回收技术的语言是Lisp。我们需要思考几个问题?那些内存需要回收?什么时候回收?怎么回收?2.对象已死?2.1 引用计数算法​ 给对象中添加一个引用计数器,每当有一个地方引用它是,计数器值就加1;当引用失败时,那么计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。​ 客观的说,引用计数算法实现简单,判定效率高,但是它最大的缺点就是难以解决循环引用的问题。

2020-09-03 00:07:02 122

原创 RabbitMQ详细介绍哦

RabbitMQ一、走进RabbitMQ1.消息中间件的简介​ 消息中间件(消息队列)是分布式系统中重要的组件,主要解决了应用耦合、异步消息、流量削峰等问题实现高性能、高可用、可伸缩和最终一致性,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ等。​ 以下介绍消息队列在实际应用中常用的使用场景:异步处理、应用解耦、流量削峰和消息通讯四个场景。2.什么是RabbitMQ​ RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。​ AMQP: Advanced Me

2020-09-02 23:17:12 1159

原创 JVM虚拟机详解 第一部分

JVM虚拟机详解​ 全文和《深入理解Java虚拟机:JVM最高特性与最佳实践》对照学习。​ 我们会自己去掉一些不重要或者难以理解的部分,留下的都是基础知识或者你应该掌握的知识。第一部分:自动内存管理机制一、Java内存区域与内存溢出异常1.概述​ Java和C++之间有一堵有内存动态分配和垃圾收集技术所围成的高墙,墙里面的人想出来,墙外面的人想进去。​ 对于Java程序员而言,在虚拟机的自动内存管理机制的帮助下,我们可以不用为自己的每一个new的动作去做一个对应的回收操作,而且不容易出现内存

2020-09-02 21:57:33 136

原创 Redis 详细到不能更详细的教程

Redis一、Redis的基础知识1.什么是redis?redis 是一个开源免费的,高性能的key-value数据库。它有以下几个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储Redis支持数据的备份,即master-slave模式的数据备份redis 的读写速度极快,支持丰富的数据类型。redis所尊的操作都是原子性

2020-08-31 19:51:27 270

原创 HashMap集合 无敌详细的介绍哦

HashMap1.HashMap集合简介​ HashMap是基于哈希表的Map接口的实现,是以key-value的存储形式存在,主要用来存放键值对。HashMap的实现不是同步的,这就意味着它不是线程安全的。HashMap的key、value都是可以为null的,此外,HashMap中的映射不是有序的。​ JDK1.8之前HashMap是由数组+链表组成的,数组是HashMap 的主体,链表则主要是为了解决哈希冲突(两个对象调用hashcode方法得到的哈希值一样,导致计算的索引值相同)而存在(拉链法

2020-08-30 18:43:14 185

原创 ThreadLocal 你需要知道的基础知识

ThreadLocal相关内容解读1.JAVA中的引用类型有哪几种?1.1 强引用就是创建一个对象,,并把这个对象赋给一个引用变量。我们需要知道,如果对象是被强引用的话,只要还没有被垃圾回收器回收,那么它就一直存在。Object o =new Ojbect();String str = "hello,world";1.2 软引用1.3 弱引用1.4 虚引用2.每种引用类型的特点是什么?3.每种引用类型的应用场景是什么?4.ThradLocal你了解吗?5.ThreadLoca

2020-08-29 23:37:15 150

原创 排序算法详细介绍及代码实现

时间复杂度解读一、插入排序1.直接插入排序2.希尔排序二、选择排序1.直接插入排序2.堆排序三、交换排序1.冒泡排序 bubble sorting冒泡排序的基本思想:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐由前移向后边,就像水底下的气泡一样往上冒。因为在排序的过程中,各个元素不断接近自己的位置,如果下一次比较没有进行交换,那么说明序列有序,我们可以使用一个flag来判断元素是否进行交换,用来减少不必要的比较

2020-08-29 17:47:28 244 1

原创 Springboot详细笔记

一、Springboot详细笔记1.Springboot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。2.微服务我们以往的开发模式是将All in one,即将所有的模块所有的功能都放在一个服务中,比如..

2020-08-25 08:53:11 522 1

java数据结构相关图片.pdf

数据结构一直以来都是难点和重点,我们希望通过学习数据结构和相关内容来锻炼我们的思维和编码能力,希望你们通过这些图片,可以对数据结构有更深的了解。

2020-08-25

空空如也

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

TA关注的人

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