java技术圈 为您找到相关结果 21

SpringBoot 在线协同办公小程序开发 全栈式项目实战【网盘下载无密】

download: SpringBoot 在线协同办公小程序开发 全栈式项目实战未来,在线协同办公将成为一种常态化的工作方式。本课程将采用最流行的前后端分离架构设计,应用 SpringBoot+uniapp 技术栈开发一款在线协同办公的小程序。让你掌握未来趋势型业务 + 前后端综合技术栈,带你实现全技术栈的综合提升。技术要求1.HTML / CSS 基础 2.JS 交互知识 3.基本的 Vue 知识 4.JavaWeb 相关知识环境参数SpringBoot 2.3、uni-app2.9 开发工具:IDEA、HBuilderX什么是Spring BootSpring Boot 是由 Pivotal 团队供应的全新结构,其规划意图是用来简化新 Spring 运用的初始树立以及开发进程。该结构运用...阅读全文

博文 2021-01-16 21:02:18 jmterorh

http 协议的结束符 · Issue #34 · jinhailang/blog · GitHub

http 协议的结束符 突然想起很久之前一次面试,面试官问我,当请求头没有 content-length 时,怎么知道请求体结束了? http 的 header 和 body 之间空行分割的,又因为每个头部项是以 \r\n 作为结束符,所以,数据流中是以 \r\n\r\n 来分割解析请求头(响应头)与请求体(响应体)的。如下图所示: 那么怎么知道(请求体)响应体结束了呢? http 协议规定,响应头的字段 content-length 用来表示响应体长度大小,但是,有可能发送请求头时,并不能知道完整的响应体长度(比如当响应数据太大,服务端流式处理的情况),这时需要设置请求头Transfer-Encoding: chunked,使用数据块的方式传输,数据块格式如下图所示: 每个数据块分为两个部...阅读全文

博文 2020-04-24 21:28:31 github.com

解剖Go语言map底层实现

map是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? Golang中map的底层实现是一个散列表,因此实现map的过程实际上就是实现散表的过程。在这个散列表中,主要出现的结构体有两个,一个叫hmap(a header for a go map),一个叫bmap(a bucket for a Go map,通常叫其bucket)。这两种结构的样子分别如下所示:hmap: 图中有很多字段,但是便于理解map的架构,你只需要关心的只有一个,就是标红的字段:buckets数组。Golang的map中用于存储的结构是bucket数组。而bucket(即bmap)的结构是怎样的呢? bucket: 相比于hmap,bucket的结构显得简单一些,标红的字段依然是“核心”...阅读全文

博文 2019-05-16 17:39:25 RyuGou的博客

JVM 系列文章之 Full GC 和 Minor GC

Full GC Full GC 就是收集整个堆,包括新生代,老年代,永久代(在JDK 1.8及以后,永久代会被移除,换为metaspace)等收集所有部分的模式 RednaxelaFX大在Major GC和Full GC的区别是什么?触发条件呢?- 知乎这个问题有关于 GC分类的回答: 针对 HotSpot VM的实现,它里面的GC其实准确分类有两种: Partial GC(局部 GC): 并不收集整个 GC 堆的模式 Young GC: 只收集young gen的GC,Young GC还有种说法就叫做 "Minor GC" Old GC: 只收集old gen的GC。只有垃圾收集器CMS的concurrent collection 是这个模式 Mixed GC: 收集整个young gen...阅读全文

博文 2019-11-27 15:00:30 掘金

B+树及插入和删除操作详解

本节介绍一种应文件系统所需而生的一种 B-树的变型树——B+树。前面介绍了B-树,B+树其实同B-树有许多相同之处,本节将用B-树同B+树通过对比两者的差异来介绍B+树。 什么是B+树? 一颗 m 阶的 B+树和 m 阶的 B-树的差异在于: 有 n 棵子树的结点中含有 n 个关键字; 在上一节中,在 B-树中的每个结点关键字个数 n 的取值范围为⌈m/2⌉ -1≤n≤m-1,而在 B+树中每个结点中关键字个数 n 的取值范围为:⌈m/2⌉≤n≤m。 所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 所有的非终端结点(非叶子结点)可以看成是索引部分,结点中仅含有其子树(根结点)中的最大(或最小)关键字。 例如,图 1 中所示...阅读全文

博文 2021-04-09 14:27:02 data.biancheng.net

Hive On HBase实战 - 哥不是小萝莉

1.概述 HBase是一款非关系型、分布式的KV存储数据库。用来存储海量的数据,用于键值对操作。目前HBase是原生是不包含SQL操作,虽然说Apache Phoenix可以用来操作HBase表,但是需要集成对应的Phoenix依赖包到HBase集群中,同时需要编写对应的Schema才能实现SQL操作HBase。 本篇博客,笔者将为大家介绍另一位一种SQL方式来操作HBase,那就是Hive。 2.内容 2.1 使用场景 熟悉大数据的同学应该都知道,Hive是一个分布式的数据仓库,它能够将海量数据,结构化存储到HDFS上,然后通过SQL的方式对这些海量数据进行业务处理。而且,Hive学习成本很低,熟悉SQL的同学,很快就能编写一个Hive应用程序。 我们通过Hive把数据加载到HBase表中...阅读全文

博文 2020-11-12 11:39:16 博客园

为什么 MongoDB 使用 B 树?

为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。我们在这一系列前面的文章曾经分析过 为什么 MySQL 使用 B+ 树,有读者在文章下面留言,希望能出一个为什么 MongoDB 使用 B 树的对比文章,这是一个比较好的问题,MySQL 和 MongoDB 两种不同类型的数据库使用了相似却不同的数据结构,为什么 MySQL 选择使用 B+ 树而 MongoDB 使用 B 树呢?概述MongoDB 是一个通用的、面向文档的分布式数据库[^1],这是官方对 MongoDB 介绍。区别于传统的关系型数据库...阅读全文

博文 2020-02-15 11:28:04 mp.weixin.qq.com

并查集(Union-Find)算法介绍_网络_不忘初心,好好沉淀

本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。 更多的信息可以参考Algorithms 一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。 原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。 关于动态连通性 我们看一张图来了解一下什么是动态连通性: 假设我们输入了一组整数对,即上图中的(4, 3) (3, 8)等等,每对整数代表这两个points/sites是连通的。那么随着数据的不断输入,整个图的连通性也会发生变化,从上图中可以很清晰的发现这一点。同时,对于已经处于连通状态的points/sites,直接忽略,比如...阅读全文

博文 2020-03-21 16:26:13 CSDN博客

VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别(软件指南针)

在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥接模式、NAT模式、仅主机模式、自定义网络连接模式。那么这几种网络连接模式都各自有什么主要用途,它们之间又有哪些区别呢? 磨刀不误砍柴工,为了更好地使用虚拟机,了解这几种连接模式的主要用途以及它们之间的区别是非常有必要的。在这里,我们就以下面的网络连接示意图为例来进行相关介绍。 在VMware中,虚拟机的网络连接主要是由VMware创建的虚拟交换机(也叫做虚拟网络)负责实现的,VMware可以根据需要创建多个虚拟网络。在Windows系统的主机上,VMware最多可以创建20个虚拟网络,每个虚拟...阅读全文

Lucene段概念

Lucene段概念分段存储 在早期的全文检索中为整个文档集合建立了一个很大的倒排索引,并将其写入磁盘中,如果索引有更新,就需要重新全量创建一个索引来替换原来的索引。这种方式在数据量很大时效率很低,并且由于创建一次索引的成本很高,所以对数据的更新不能过于频繁,也就不能保证时效性。 现在,在搜索中引入了段的概念(将一个索引文件拆分为多个子文件,则每个子文件叫作段),每个段都是一个独立的可被搜索的数据集,并且段具有不变性,一旦索引的数据被写入硬盘,就不可再修改。 在分段的思想下,对数据写操作的过程如下。 新增。当有新的数据需要创建索引时,由于段的不变性,所以选择新建一个段来存储新增的数据。 删除。当需要删除数据时,由于数据所在的段只可读,不可写,所以Lucene在索引文件下新增了一个.del的文件...阅读全文

博文 2020-11-18 19:02:36 简书

如何在 Linux 中使用ss命令监控网络连接

ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具。 该工具显示netstat命令的更多详细信息,该命令用于显示活动的套接字连接。 在本教程中,我们会举例说明ss命令如何用于在Linux中显示各种网络连接信息。 1、列出所有连接 基本的ss命令,不带任何选项,仅列出所有连接,无论它们处于什么状态。 ss 2、列出监听端口和非监听端口 您可以使用-a选项检索侦听端口和非侦听端口的列表,如下所示。 ss -a 3、列出监听套接字 要仅显示侦听套接字,请使用-l标志,如图所示。 ss -l 4、列出所有TCP连接 要显示所有TCP连接,请使用-t选项,如图所示。 ss -t 5、列出所有侦听的TCP连接 要查看所有侦听的TCP套接字连接,请使用-lt组合,如图所示。 ss -lt 6...阅读全文

博文 2020-07-30 10:28:17 linux资讯

如何有效进行项目集管理?

随着企业的扩张,业务往来日益增多,企业同时开展多个项目是不可避免的,如何有效进行多项目管理,是许多企业急需解决的问题。 这一趋势导致多项目管理角色的兴起。它与项目高效和谐地配合,为企业的快速发展提供了动力。 如今,大多数企业参与到多项目管理中,但他们仍然在寻找应对这种环境复杂性的最佳工具。 有趣的是,许多人依然觉得难以区分多项目管理和项目组合管理,导致难以“对症下药”。 接下来CORNERSTONE将教大家如何区分。 一、多项目管理 多项目管理最基本的定义指针对组织中进行的多个项目进行全生命周期的管理。 在多个项目同时进行中,管理人员必须在资源池共享的情况下,顺利完成期限不同、规模不同的项目。 因为多项目这个概念提出来的时间不长,这也是如今企业没有足够的策略、技术和工具来管理多项目的原因。 ...阅读全文

博文 2020-07-15 15:08:23 CORNERSTONE

Thrift 服务器端的几种工作模式分析 - 云+社区

相关示例代码见:http://download.csdn.net/detail/hjx_1000/8374829 五、 Thrift服务器端几种工作模式分析与总结 Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下: 1. TSimpleServer模式 TSimpleServer的工作模式只有一个工作线程,循环监听新请求的到来并完成对请求的处理,它只是在简单的演示时候使用,它的工作方式如图5.1所示: 图5.1 TSimpleServer的工作模式 TSimpleS...阅读全文

博文 2021-05-03 00:54:01 腾讯云

JVM 之 ParNew 和 CMS 日志分析

在两年前的文章 JVM 学习——垃圾收集器与内存分配策略 中,已经对 GC 算法的原理以及常用的垃圾收集器做了相应的总结。今天这篇文章主要是对生产环境中(Java7)常用的两种垃圾收集器(ParNew:年轻代,CMS:老年代)从日志信息上进行分析,做一下总结,这样当我们在排查相应的问题时,看到 GC 的日志信息,不会再那么陌生,能清楚地知道这些日志是什么意思,GC 线程当前处在哪个阶段,正在做什么事情等。 ParNew 收集器ParNew 收集器是年轻代常用的垃圾收集器,它采用的是复制算法,youngGC 时一个典型的日志信息如下所示: 12018-04-12T13:48:26.134+0800: 15578.050: [GC2018-04-12T13:48:26.135+0800: 155...阅读全文

博文 2020-07-31 14:29:22 Matt's Blog

面对复杂业务,if-else coder 如何升级?_阿里技术

阿里云开发者 1.5k 面对复杂业务,if-else coder 如何升级? 程序员 发布于 9月25日 简介: 针对业务在不同场景下的差异,我们常常会习惯性地使用if-else来实现不同的业务逻辑,久而久之代码越来越难以维护。那么如何消除这些if-else?面对复杂业务应如何思考和分析?本文分享阿里高级技术专家张建飞(Frank)关于复杂业务治理的方法论,介绍一种多维度分析问题的方法:矩阵分析法。You should not be a if-else coder, should be a complexity conquer.——Frank这篇文章,是对之前我在《阿里高级技术专家方法论:如何写复杂业务代码?》说的“自上而下的结构化分解 + 自下而上的抽象建模”方法论的升级。因为在之前的方法...阅读全文

博文 2020-09-26 20:24:18 SegmentFault 思否

linux下core dump【总结】 - Rabbit_Dale

1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在自己的linux系统上面写个非法程序测试,并没有产生core问题?这又是怎么回事呢?今天在ngnix的源码时候,发现可以在程序中设置core dump,又是怎么回事呢?在公司发现生成的core文件都带有进程名称、进程ID、和时间,这又是怎么做到的呢?今天带着这些疑问来说说core文件是如何生成,如何配...阅读全文

博文 2020-12-03 15:16:21 博客园

【译】深入理解G1的GC日志(一)

本文翻译自:www.redhat.com/en/blog/col… 这篇文章将深入研究G1的日志和调优参数。为了在实际工作中对G1进行调优,作为开发者的你需要理解G1垃圾收集器的每个步骤,以及每个步骤在整个垃圾收集周期中的作用。为了方便读者学习,这篇文章将G1的日志参数分为等级递增的三块,这篇文章将会分别介绍每一部分参数的作用和调优时候使用的场景。 基础参数 - 在生产中使用G1收集器,必须使用这些参数 高级参数 - 随着应用的成熟或业务负载的增加,需要使用这些参数针对某些问题进行调优。 Debug参数 - 这些参数是用来解决特定的性能问题,如果某个问题在非生产环境中无法复现,才会在生产环境中使用这些参数排查问题。 基础参数 如果你要在生产环境中使用G1 GC,下面这些跟日志相关的参数是必备...阅读全文

博文 2020-07-31 14:28:03 掘金

聊聊MyBatis缓存机制

前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。本次分析中涉及到的代码和数据库表均放在GitHub上,地址: mybatis-cache-demo 。目录本文按照以下顺序展开。一级缓存介绍及相关配置。一级缓存工作流程及源码分析。一级缓存总结。二级缓存介绍及相关配置。二级缓存源码分析。二级缓存总结。全文总结。一级缓存一级缓存介绍在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的S...阅读全文

博文 2020-11-02 15:13:23 美团技术团队

Skip List--跳表(全网最详细的跳表文章没有之一)

登录注册写文章首页下载APPIT技术抽奖Skip List--跳表(全网最详细的跳表文章没有之一)fanrui关注赞赏支持Skip List--跳表(全网最详细的跳表文章没有之一)跳表是一种神奇的数据结构,因为几乎所有版本的大学本科教材上都没有跳表这种数据结构,而且神书《算法导论》、《算法第四版》这两本书中也没有介绍跳表。但是跳表插入、删除、查找元素的时间复杂度跟红黑树都是一样量级的,时间复杂度都是O(logn),而且跳表有一个特性是红黑树无法匹敌的(具体什么特性后面会提到)。所以在工业中,跳表也会经常被用到。废话不多说了,开始今天的跳表学习。 通过本文,你能 get 到以下知识: 什么是跳表? 跳表的查找、插入、删除元素的流程 跳表查找、插入、删除元素的时间复杂度 跳表插入元素时,如何动态...阅读全文

博文 2021-08-17 15:25:32 简书

深入学习MySQL事务:ACID特性的实现原理 - 编程迷思

事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理。 MySQL博大精深,文章疏漏之处在所难免,欢迎批评指正。 一、基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务,本文介绍基于MySQL5.6。 首先回顾一下MySQL事务的基础知识。 1. 逻辑架构和存储引擎 图片来源:https://blog.csdn.net/fuzhongmin05/article/details/70904190 如上图所示,MySQL服务器逻辑架构从上往下可...阅读全文

博文 2021-08-17 14:36:55 博客园

HTTP/2之服务器推送(Server Push)最佳实践 - 腾讯WeTest

作者:卢满宇, 腾讯后台开发 工程师商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 原文链接:http://wetest.qq.com/lab/view/355.html WeTest 导读 HTTP/1.X出色地满足互联网的普遍访问需求,但随着互联网的不断发展,其性能越来越成为瓶颈。IETF在2015年发布了HTTP/2标准, 着重于提高HTTP的访问体验, HTTP2优势主要包括: 二进制传输、头部压缩、多路复用和服务器推送(Server Push)。 截止目前, 大部分CDN厂商已经宣布支持HTTP/2,然而”支持”大多省略了服务器推送(ServerPush)特性。估计这和nginx开源版本没有支持Server Push相关。为提供完备的HTTP2能力,腾讯CDN现已完...阅读全文

博文 2019-05-07 18:05:13 SegmentFault 思否