自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风而逝的博客

有兴趣就加qq群555373607,什么都可以侃

  • 博客(486)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis 的过期策略

Redis 的过期策略

2023-02-04 15:22:23 2423 1

原创 Spirng的事务 方法A调用方法B,事务是否失效

spring事务失效

2023-02-04 15:21:41 327

转载 索引失效的情况

索引失效没有查询条件,或者查询条件没有建立索引在查询条件上没有使用引导列查询的数量是大表的大部分,应该是30%以上。索引本身失效查询条件使用函数在索引列上(见12)对小表查询提示不使用索引统计数据不真实CBO计算走索引花费过大的情况。其实也包含了上面的情况,这里指的是表占有的block要比索引小。10)隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给

2022-03-01 11:46:11 242

转载 jvm方法区

栈、堆、方法区的交互关系9.1_1从线程共享与否的角度来看9.1_29.1_3.png9.1_42 方法区的理解2.1 方法区在哪里?《Java 虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或进行压缩。”但对于 HotSpot JVM 而言,方法区还有一个别名叫做 Non-Heap(非堆),目的就是要和堆分开。所以,方法区看作是一块独立于 Java 堆的内存空间。9.2.1_12.2 方法区的基本理解方法区(

2021-11-20 18:10:39 249

转载 jvm_堆

1 堆的核心概述一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的核心区域。Java 堆区在 JVM 启动时即被创建,其空间大小也就确定了。是 JVM 管理的最大一块空间。堆内存的大小是可以调节的。《Java 虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享 Java 堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)。《Java 虚拟机规范》中对 Java 堆的描述是:所

2021-11-20 18:03:33 163

转载 本地方法栈

Java 虚拟机栈用于管理 Java 方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java 虚拟机将会抛出一个 StackOverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新线程时没有足够的内存去创建本地方法栈,那么 Java 虚拟机将会抛出一个 OutOfMemoryError 异常

2021-11-20 17:56:12 180

转载 本地方法接口

什么是本地方法简单地讲,一个 Native Method 就是一个 Java 调用非 Java 代码的接口。一个 Native Method 是这样一个 Java 方法:该方法的实现由非 Java 语言实现,比如 C 语言。在定义一个 native method 时,并不提供实现体(有些像定义一个 Java interface),因为其实现体是由非 Java 语言在外面实现的。本地接口的作用是融合不同的编程语言为 Java 所用,它的初衷是融合 C/C++ 程序。例:public class I.

2021-11-20 17:55:06 117

转载 jvm虚拟机栈

虚拟机栈概述1.1 虚拟机出现的背景由于跨平台的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现。缺点是性能下降,实现同样的功能需要更多的指令。1.2 内存中的栈与堆栈是运行时的单位,堆是存储的单位。即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储的问题,即数据怎么放、放在哪儿。1.3 虚拟机栈基本内容Java虚拟机栈是什么?Java虚拟机栈(Java Virtual Mach

2021-11-20 17:53:40 216

转载 程序计数器

PC Register介绍JVM中的程序计数器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里并非是广义上所指的物理寄存器,或许将其翻译为pc计数器(或指令计数器)会更加贴切(也成为程序钩子),并且也不容易引起一些不必要的误会。JVM的PC寄存器是对物理PC寄存器的一种抽象模拟。作用PC寄存器用来存储指向下一条指令的地址,也即将执行的指令代码。由执行引擎读取下一条指令。它

2021-11-20 17:47:43 448 1

转载 运行时数据区概述

内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定地运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创建和销毁。灰色的为单独线程私有的,红色的为多个线程共享的。即:

2021-11-20 17:45:35 177

转载 类加载器子系统

1 内存结构概述2.12 概述类的加载器及类加载的过程类加载子系统作用2.2.1类加载器子系统负责从文件系统或网络中加载class文件,class文件在文件的开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否能运行,则由Execution Engine决定。加载的类信息被存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字字面量(这部分常量信息是Class文件中常量池部分的内存映射)。类加载器Class

2021-11-20 17:42:55 167

转载 JVM的整体结构

1 JVM的整体结构2 Java代码执行流程3 JVM的生命周期虚拟机的启动Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。虚拟机的执行一个运行中的Java虚拟机有着一个清晰的任务:执行java程序。程序开始执行时它才会运行,程序结束时它就停止。执行一个所谓的Java程序时,真真正正在执行的是一个叫做Java虚拟机的进程。虚拟机的退出有如下的几种情况:程序正常

2021-11-20 17:35:43 238

转载 java自旋锁

自旋锁(Spin lock)自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。因为自旋锁不会引起调用者睡眠,所以自旋锁的效率远 高于互斥锁。虽然它的效率比互斥锁高,但是它也有些不足之处:1、自旋锁一直占用CPU,他在未获得锁的情况下,一直运行--自旋,所以占用着CPU,如果不能在很短的时 间内获得锁,这无疑会使CPU效率降低。2、在用自旋锁时

2021-11-14 11:50:26 258

转载 Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch…。以下是本文的目录大纲:概述框架源码详解简单应用  若有不正之处,请谅解和批评指正,不胜感激。请尊重作者劳动成果,转载请标明原文链接(原文

2021-11-14 11:45:56 126

转载 SpringMVC常见面试题总结(超详细回答)

1、什么是Spring MVC ?简单介绍下你对springMVC的理解?SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。2、SpringMVC的流程?(1)用户发送请求...

2021-10-07 14:39:43 1488

转载 Elasticsearch模块

Elasticsearch由多个模块组成,这些模块负责其功能。 这些模块有以下两种类型的设置 -静态设置 - 在启动Elasticsearch之前,需要在配置文件(elasticsearch.yml)中配置这些设置。需要更新集群中的所有关注节点以反映这些设置的更改。动态设置 - 这些设置可以在实时Elasticsearch上设置。我们将在本章的以下部分讨论Elasticsearch中的每个模块。集群级路由和碎片分配集群级别设置决定将碎片分配给不同节点,以及将碎片重新分配给平衡集群。这些是以下设置来

2021-10-07 14:34:41 307

转载 Elasticsearch分析

当在搜索操作期间处理查询时,任何索引中的内容由分析模块分析。该模块由分析器,分词器,分词器过滤器和字符过滤器组成。 如果没有定义分析器,则默认情况下注册内置的分析器,分词器,分词器过滤器和字符过滤器到分析模块。例如。POST http://localhost:9200/pictures请求正文{“settings”: {“analysis”: {“analyzer”: {“index_analyzer”: {“tokenizer”: “standard”, “filter”: [“stan

2021-10-07 14:34:33 234

转载 Elasticsearch映射

映射是存储在索引中的文档的大纲。它定义数据类型,如geo_point或文档和规则中存在的字段的字符串和格式,以控制动态添加的字段的映射。 例如,POST http://localhost:9200/bankaccountdetails请求正文{“mappings”:{“report”:{“_all”:{“enabled”:true}, "properties":{ "name":{ "type":"string"}, "date":{ "type":"date"},

2021-10-07 14:34:18 295

转载 Elasticsearch查询DSL

在Elasticsearch中,通过使用基于JSON的查询进行搜索。 查询由两个子句组成 -叶查询子句 - 这些子句是匹配,项或范围的,它们在特定字段中查找特定值。复合查询子句 - 这些查询是叶查询子句和其他复合查询的组合,用于提取所需的信息。Elasticsearch支持大量查询。 查询从查询关键字开始,然后以JSON对象的形式在其中包含条件和过滤器。以下描述了不同类型的查询 -匹配所有查询这是最基本的查询; 它返回所有内容,并为每个对象的分数为1.0。 例如,POST http://loca

2021-10-07 14:34:03 226

转载 Elasticsearch集群API

此API用于获取有关集群及其节点的信息,并对其进行更改。 对于调用此API,需要指定节点名称,地址或_local。 例如,GET http://localhost:9200/_nodes/_local或者Get http://localhost:9200/_nodes/127.0.0.1响应… …{“cluster_name”:“elasticsearch”, “nodes”:{“Vy3KxqcHQdm4cIM22U1ewA”:{“name”:“Red Guardian”, “transp

2021-10-07 14:33:48 286

原创 Elasticsearch索引API

这些API负责管理索引的所有方面,如设置,别名,映射,索引模板。创建索引此API可用于创建索引。 当用户将JSON对象传递到任何索引时,可以自动创建索引,也可以在此之前创建索引。 要创建索引,只需要发送包含设置,映射和别名的发布请求,或者只发送一个没有正文的简单请求。 例如,POST http://localhost:9200/colleges响应{“acknowledged”:true}或者,加上一些设置 -POST http://localhost:9200/colleges请求正文{

2021-10-06 15:15:10 276

转载 Elasticsearch测试

Elasticsearch提供了一个jar文件,可以将其添加到任何Java IDE,并可用于测试与Elasticsearch相关的代码。 可以使用Elasticsearch提供的框架执行一系列测试 -单元测试集成测试随机测试要开始测试,需要向程序添加Elasticsearch测试依赖关系。您可以使用maven来实现此目的,并且可在pom.xml中添加以下内容。org.elasticsearchelasticsearch2.1.0EsSetup初始化用来启动和停止Elasticsearch

2021-10-06 15:14:51 1083

转载 Elasticsearch聚合

框架集合由搜索查询选择的所有数据。框架中包含许多构建块,有助于构建复杂的数据描述或摘要。聚合的基本结构如下所示 -“aggregations” : {“<aggregation_name>” : {“<aggregation_type>” : {<aggregation_body>} [,"meta" : { [<meta_data_body>] } ]? [,"aggregations" : { [<sub_aggregation&g

2021-10-05 12:50:39 1103

转载 Elasticsearch搜索API

此API用于在Elasticsearch中搜索内容。 用户可以通过发送具有查询字符串的获取请求作为参数或在请求的消息正文中的查询来进行搜索。所有的搜索API都是多索引,多类型。多索引Elasticsearch允许我们搜索存在于所有索引或一些特定索引中的文档。 例如,如果我们需要搜索名称包含central的所有文档。GET http://localhost:9200/_search?q = name:central响应{“took”:78, “timed_out”:false, “_shards”

2021-10-05 12:49:50 161

转载 Elasticsearch文档API

Elasticsearch提供单文档API和多文档API,其中API调用分别针对单个文档和多个文档。索引API当使用特定映射对相应索引发出请求时,它有助于在索引中添加或更新JSON文档。 例如,以下请求将JSON对象添加到索引学校和学校映射下。POST http://localhost:9200/schools/school/4请求正文{“name”:“City School”, “description”:“ICSE”, “street”:“West End”, “city”:“Meerut”

2021-10-05 12:49:10 209

转载 Elasticsearch API约定

web中的应用编程接口(API)是一组函数调用或其他编程指令以访问该特定web应用中的软件组件。 例如,Facebook API帮助开发者通过从Facebook访问数据或其他功能来创建应用程序; 它可以是出生日期或状态更新。Elasticsearch提供了一个REST API,通过HTTP通过JSON访问。 Elasticsearch使用以下约定 -多索引API中的大多数操作(主要是搜索和其他操作)用于一个或多个索引。 这有助于用户通过只执行一次查询来搜索多个位置或所有可用数据。 许多不同的符号用于在

2021-10-05 12:48:21 230

转载 Elasticsearch版本之间迁移

在任何系统或软件中,当我们升级到较新版本时,需要按照几个步骤来维护应用程序设置,配置,数据和其他事情。 这些步骤是使应用程序在新系统中保持稳定或保持数据的完整性(防止数据损坏)所必需的。以下是升级Elasticsearch的步骤 -从 http://www.elastic.co/ 阅读了解如何更改文档。在非生产环境(如UAT,E2E,SIT或DEV环境)中测试升级版本。如果没有数据备份,则无法回滚到上一个Elasticsearch版本。 建议在升级到更高版本之前进行数据备份。可以使用完全群集重新启

2021-10-05 12:47:39 294

转载 Elasticsearch填充

在本节中,我们将向Elasticsearch添加一些索引,映射和数据。此数据将用于本教程中解释的示例中。创建索引POST http://localhost:9200/schools请求正文它可以包含索引特定的设置,但是现在,它的默认设置为空。响应{“acknowledged”: true}这意味着创建索引成功创建映射和添加数据Elasticsearch将根据请求体中提供的数据自动创建映射,我们将使用其批量功能在此索引中添加多个JSON对象。POST http://localhost:920

2021-10-05 12:47:00 172

转载 Elasticsearch入门教程

ElasticSearch是一个高度可扩展的开源搜索引擎并使用REST API,所以您值得拥有。 在本教程中,将介绍开始使用ElasticSearch的一些主要概念。下载并运行ElasticSearchElasticSearch可以从elasticsearch.org下载对应的文件格式,如ZIP和TAR.GZ。下载并提取一个运行它的软件包之后不会容易得多,需要提前安装Java运行时环境。在Windows上运行ElasticSearch在本文章中,所使用的环境是Windows,所以这里只介绍在Wind

2021-10-05 12:46:21 402

转载 Elasticsearch环境安装配置

安装Elasticsearch的步骤如下 -第1步 - 查看安装在计算机上的java的最低版本,它要求java 7或以上或最新的版本。可以通过执行以下操作进行检查 -在Windows操作系统(OS)(使用命令提示符) -java -version在UNIX/Linux操作系统(使用终端) -$ echo $JAVA_HOME第2步 - 从 www.elastic.co 下载最新的 Elasticsearch,注意选择对应版本 -对于Windows操作系统,请下载ZIP文件。对于UNIX操作系

2021-10-05 12:44:32 536

转载 Elasticsearch教程

Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架。Elasticsearch是基于Apache Lucene的搜索服务器。它由Shay Banon开发并于2010年发布。现在是由Elasticsearch BV负责维护。其最新版本是:5.2.0。Elasticsearch是一个实时分布式和开源的全文搜索和分析引擎。 它可以从RESTful Web服务接口访问,并使用模式少JSON(Ja

2021-10-05 12:43:01 303

转载 全文搜索引擎 Elasticsearch 入门教程

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。本文从零开始,讲解如何使用 Elastic 搭建自己的全文搜索引擎。每一步都有详细的说明

2021-10-05 09:39:42 185

转载 elasticsearch常见问题总结

1、unable to install syscall filter:Java.lang.UnsupportedOperationException:seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMPandCONFIG_SECCOMP_FILTERcompiledinatorg.elasticsearch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349)[elasticsearch-5.0.0.

2021-10-03 16:43:31 138

转载 Docker下安装Redis和Mysql,elasticsearch,Kibana,nginx——简洁篇

文章目录1:Docker下安装Mysql2:Docker下安装Redis3:Docker下安装elasticsearch4:Docker下安装Kibana5:如何可以在虚拟机重新开启后,可以自动重启容器6:Docker下安装nginx1:Docker下安装Mysql第一步:去docker hub上拉取mysql镜像$ docker pull mysql:5.7第二步:执行run命令在这里插入图片描述如下就解释了容器文件的挂载与端口映射在这里插入图片描述注意:我们的mysql默认

2021-10-03 16:41:12 195

转载 ubuntu网络管理界面设置静态ip

1,网络—> Edit Connection—>编辑—>设置。选择Manual,表示使用静态IP。填上之前获取的ip,掩码,网关,和域名解析服务器地址。这里填的是阿里的NDS server.配置文件配置interfaces配置文件配置打开Terminal终端,使用命令sudo vim /etc/network/interfaces配置ip,掩码,网关等。如下:interfaces(5) file used by ifup(8) and ifdown(8)auto loi

2021-10-03 14:54:16 461

转载 ubuntu16.04升级系统

按照ubuntu官方发布计划,ubuntu16.04将在2021年4月停止工作,加上新出的一些硬件和算法都是考虑了到18.04的兼容,因此,最近开始考虑升级系统的事情。提醒最终,我按照下面方法升的两台电脑,都重装系统了。我也说不准是否使用官方的升级方法,会导致某些驱动损坏(尤其是显卡)。但出于安全考虑,建议还是直接手动备份重要数据,然后用启动盘直接安装想要的版本。0.备份与网络无论对系统做什么操作,都应当注意备份。我主要进行了数据的备份,至于系统的备份,可以参考https://blog.csdn.n

2021-09-12 16:21:41 2095

转载 IO密集型/CPU密集型任务

1.1、IO密集型任务一般来说:文件读写、DB读写、网络请求等1.2、CPU密集型任务一般来说:计算型代码、Bitmap转换、Gson转换等

2021-09-11 15:48:12 760

转载 《Java Concurrency in Practice》中文版笔记

第1章 简介1.1 并发简史茶壶和面包机的生产商都很清楚:用户通常会采用异步方式来使用他们的产品,因此当这些机器完成任务时都会发出声音提示。1.2 线程的优势线程能够将大部分的异步工作流转换成串行工作流,因此能更好地模拟人类的工作方式和交互方式。线程还可以简化JVM的实现,垃圾收集器通常在一个或多个专门的线程中运行。因此,操作系统提供了一些高效的方法来实现多路I/O,例如Unix的select和poll等系统调用,要调用这些方法,Java类库需要获得一组实现非阻塞I/O的包(java.ni

2021-06-20 15:22:19 750

原创 Redis基础教程

Redis教程redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的

2021-06-20 15:14:09 158

转载 postgreSQL数据库limit分页、排序

postgreSQL数据库limit分页、排序语法:select*frompersonslimitAoffsetB;解释:A就是你需要多少行;B就是查询的起点位置。示例:select*frompersonslimit5offset0;意思是,起点0开始查询,返回5条数据。select*frompersonslimit5offset5;意思是,起点5开始查询,返回5条数据。...

2020-10-04 15:27:30 1141

系统架构师论文范文50篇.pdf

自己用的,这个东西还不错,保留着,自己看,怎么凑够50个字呢?

2019-08-06

tomact类加载器架构

用Visio做的tomact类加载器架构,用于学习目的,

2019-01-09

早餐店布局(持续更新中)

传统早餐店布局,由于经常去外面过早,发现有的早餐店设计得不是很合理,所以使用visio来表示目前早餐店中布局情况,分析其中得利弊,看那种布局比较好。

2018-11-05

空空如也

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

TA关注的人

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