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

自己写LinkedList GoLinkedList

##前言: java GoLinkedList的简易实现,代码中注释比较详尽,通俗易懂,注意事项亦在注解中标明。 ###正文: GoLinkedList.java package com.anteoy.dataStructuresAndAlgorithm.javav2.my; import java.util.Iterator; /** * Created by zhoudazhuang on 17-3-1. * Description: 简易Linkedlist实现 */ public class GoLinkedList implements Iterable{ //当前容量 size private int currentSize; //附加的数据域 用来帮助迭代气检测集合...阅读全文

博文 2019-04-04 09:50:50 www.allocmem.com

简析hashset的实现原理

hashset底层为hashmap。 源码如下: /** * Constructs a new, empty set; the backing HashMap instance has * default initial capacity (16) and load factor (0.75). */ public HashSet() { map = new HashMap<>(); } 默认 initial capacity(hashmap底层数组大小)为16,load factor 为 0.75 add() 方法 /** * Adds the specified element to this set if it is not already present. * Mo...阅读全文

博文 2019-04-04 09:46:40 www.allocmem.com

简析hashmap的实现原理

提一下哈希表,看下百科: 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。 简单理解:1.通过某种算法(使用key的hash算法),计算出key的磁盘散列值,优点为速度和易用。 2.hashmap底层实现仍为数组(HashMap 底层就是一个数组结构,数组中的每一项又是一个链表。数组每个元素里存的是链表的表头信息,有了表头就可以遍...阅读全文

博文 2019-04-04 09:46:30 www.allocmem.com

自己写GoBinaryHead 二叉堆binaryheap实现优先队列(堆)

##前言: java GoBinaryHead二叉堆binaryheap实现优先队列(堆) 1. 二叉堆是完全二叉树 因为完全二叉数的规律(root始终最小) 用数组实现此数据结构优于链表 2. ,注意在插入和删除时,需要在数组实现的完全二叉树结构代码中,对原有节点数据进行上滤和下滤,插入时,和子树的根节点比较, 只有比子树根节点大才能满足定义, 否则循环交换位置。堆内元素向下移动为 下滤,删除后空余的位置,从上至下找最小儿子节点填充 3. 在printHeap()方法中对数组的遍历使用了去null操作。 4. 代码中已给出比较详尽注释。 ###正文: GoBinaryHeap.java package com.anteoy.dataStructuresAndAlgorithm.javav2...阅读全文

博文 2019-04-04 09:51:22 www.allocmem.com

ubuntu16.04 自动挂载新分区到指定目录下

ubuntu16.04 自动挂载新分区到指定目录下 Author anteoy@gmail.com | Posted 2016-12-28 23:08:00 ###引言: 起因:ubuntu系统使用固态硬盘120G不够使用,如今已无法满足日常需要,于是增加了一枚机械硬盘,分别分了两个空闲分区,依次使系统自启时挂在到/home/和/usr/指定目录下 ###安装环境: 1. ubuntu 16.04 LTS 2. 有剩余未分配空间的硬盘 ###安装过程: 1. 查看硬盘所有分区并记录下待挂在分区(主要以硬盘,分区大小和格式确定) fdisk -l 2. 格式化分区为ext4 mkfs.ext4 /dev/sda7 3. 查看分区UUID sudo blkid 4. 编辑系统挂载配置文件/etc...阅读全文

博文 2019-04-04 09:49:01 www.allocmem.com

Golang map 的底层实现

在开发过程中,map是必不可少的数据结构,在Golang中,使用map或多或少会遇到与其他语言不一样的体验,比如访问不存在的元素会返回其类型的空值、map的大小究竟是多少,为什么会报"cannot take the address of"错误,遍历map的随机性等等。 本文希望通过研究map的底层实现,以解答这些疑惑。 基于Golang 1.8.3 1. 数据结构及内存管理 hashmap的定义位于 src/runtime/hashmap.go 中,首先我们看下hashmap和bucket的定义: type hmap struct { count int // 元素的个数 flags uint8 // 状态标志 B uint8 // 可以最多容纳 6.5 * 2 ^ B 个元素,6.5为装载...阅读全文

博文 2019-05-16 09:40:27 简书

解剖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 09:39:25 RyuGou的博客

拨开概念迷雾,国内网络制式和4G频段科普

随着4G的普及,“五模十三频,七模十九频”之类的电信专业用语开始来轰炸消费者。除了要判断能否支持自己的手机卡之外,现在还要再考虑手机能否支持相应的4G频段。如果希望购买的是水货手机,那还要考虑国内外的网络频段差异,以及3、4G信号回落的问题。很多人听着这些用语或许都已经头大了,所以本文将对常用的网络制式进行科普,希望本文能帮助大家,看懂手机参数表中的网络支持列表,能判断机器是否支持你的手机卡,能否使用国内的4G,以及其是否有破解网络的潜力。网络频段分配但怎么知道自己的手机卡要什么网络制式呢?这又是个深刻的人生命题。这里简单科普一下网络制式问题。所有故事都要从电磁波的特性说起,从红外紫外可见光,到wifi和手机信号,都是电磁波……好吧,篇幅有限,说点结论性的东西。手机的2/3/4G网络和wif...阅读全文

高性能场景下,HashMap的优化使用建议

最近在技术博客中看到一篇关于 HashMap 的优化使用建议,觉得非常有意思,于是转载该篇博文,和大家一起分享技术。 HashMap 在JDK 7 与 JDK8 下的差别顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础。 1.1 获取key的HashCode并二次加工因为对原Key的hashCode质量没信心,怕会存在大量冲突,HashMap进行了二次加工。 JDK7的做法: h ^= (h >>> 20) ^ (h >>> 12);return h ^ (h >>> 7) ^ (h >>> 4); JDK8 因为对自己改造过的哈希大量冲突时的红黑树有信心,所以简单一些,只是把高16位异或下来。 return h ^ (h >>> 16); 所以即使...阅读全文

博文 2021-04-01 12:33:44 Chares's Blog

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 06:27:02 data.biancheng.net

LVM : 简介 - sparkdev

在对磁盘分区的大小进行规划时,往往不能确定这个分区要使用的空间的大小。而使用 fdisk、gdisk 等工具对磁盘分区后,每个分区的大小就固定了。如果分区设置的过大,就白白浪费了磁盘空间;如果分区设置的过小,就会导致空间不够用的情况出现。对于分区过小的问题,可以从新划分磁盘的分区,或者通过软连接的方式将此分区的目录链接到另外一个分区。这样虽然能够临时解决问题,但是给管理带来了麻烦。类似的问题可以通过 LVM 来解决。说明:本文的演示环境为 ubuntu 16.04。 LVM 是什么 LVM 是 Logical Volume Manager 的缩写,中文一般翻译为 "逻辑卷管理",它是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可...阅读全文

博文 2020-11-29 08:46:41 博客园

LSM 算法的原理是什么?

其实大家提的 LSM 最开始论文里面都使用树做搜索结构的, 现在在用的都不是严格的树结构了。 如[这篇文章](https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/)解释的一样,从最朴素的角度上来讲可以把`SSTable(sorted string table)`作为一个连续的kv构成的块。SSTable +-+---+----+---+ |k| v | k | v | ... +-+---+----+---+对于一个大文件来说,读取整个文件以后就能构成一个各个键值的索引,当然可以在文件追加一块索引,和文件一起保存。Index +-+-------+ |k|offset | +-+------...阅读全文

博文 2020-02-19 13:03:37 知乎

[Hive基础]-- 动态分区与静态分区_余额不足

前言 1、Hive分区的概念与传统关系型数据库分区不同。 2、传统数据库的分区方式:如oracle,分区独立存在于字段,里面存储真实的数据,在数据进行插入的时候自动分配分区。 3、Hive的分区方式:Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并非一个实际字段。 即,当在插入数据的时候指定分区,其就是新建一个目录或者子目录,或者在原有的目录上添加数据文件。 动态分区和静态分区(Hive-0.14以后的特性) 1、动态分区:分区不固定;关键在于“动态”,不需要人为使用 alter table 命令执行添加分区 2、静态分区:分区固定,需要认为使用 alter table 命令添加分区 最大区别:动态分区与静态分区区别就是不指定分区目录,由系统...阅读全文

博文 2020-08-09 05:31:55 CSDN博客_kudu 静态分区 动态分区

Netty之ChannelPipeline理解二

Netty之ChannelPipeline理解二 ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起,所以有关概念这里一起讲。 参考:https://www.cnblogs.com/qdhxhz/p/10234908.html ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起,所以有关概念这里一起讲。 ChannelHandler 概念 handler.png ChannelHandler下主要是两个子接口 ChannelInboundHandler(入站): 处理输入数据和Channel...阅读全文

博文 2021-08-27 06:22:43 简书

操作系统内存管理_黄规速, 逆水行舟,不进则退。

1、 计算机的存储体系 内存是计算机很重要的一个资源,因为程序只有被加载到内存中才可以运行;此外,CPU所需要的指令与数据也都是来自内存的。可以说,内存是影响计算机性能的一个很重要的因素。 在介绍内存管理的细节前,先要了解一下分层存储器体系: 大部分的计算机都有一个存储器层次结构,即少量的非常快速、昂贵、易变的高速缓存(cache);若干兆字节的中等速度、中等价格、易变的主存储器(RAM);数百兆或数千兆的低速、廉价、不易变的磁盘。这些资源的合理使用与否直接关系着系统的效率。 CPU缓存(Cache Memory):是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内...阅读全文

UEFI+GPT与BIOS+MBR各自有什么优缺点?

UEFI+GPT最好用64位操作系统。 似乎人人都可以张嘴就说“我懂电脑”,但是总有一些看起来完全不懂但实际上非常基础的东西让“懂”与“不懂”清晰地划清界限。比如UEFI+GPT就是其中之一,那些之前认为自己已经精通电脑的人,遇到这个东西,忽然发现自己连系统都不会装了。 尽管UEFI以及GPT从诞生迄今已经十余年了,但是由于它们的不普及性,导致对于绝大多数人来讲它们是完全陌生的 ,甚至根本就不知道还有这种东西。 但是由于Windows8操作系统的面世,预装Windows8的电脑开始统一采用UEFI+GPT,很多人被迫接触到,感觉就像突然从天上掉下来的东西一样,无所适从,一筹莫展—— “这到底是个什么东西呢?” 一旦出现系统问题,唯一能做的解决办法除了品牌机自带的系统还原,最大能力不过就是把U...阅读全文

页 页表 页表项_WaneGi没有故事

五一假期前落下了几节操作系统的课,现在艰难的恶补中。。 以下是分页存储管理相关的一些知识点梳理。 首先我们应该知道的概念: 逻辑地址:是程序编译后,生成的目标模块进行编址时都是从0号开始编址,称之为目标模块的相对地址,即逻辑地址。 虚拟地址:计算机处理器的地址有32位和64位的两种,对应的虚拟地址的空间大小分别是2^32字节和2^64字节,字节用B表示。 页:分页存储管理将进程的逻辑地址空间划分为若干页(面),并且对其编号,号数从0开始,每个页(面)的大小称为页面大小,且大小应为2的幂。 物理块:将内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。 页表:又称页面映像表,存储在内存中,通过页表建立页(面)与物理块的索引。 下面通过举例子梳理一下: 假设我们已经知道了逻辑地...阅读全文

博文 2020-10-11 13:38:47 CSDN博客

JDK 9学习笔记 - (2)能屈能伸的String

背景String作为JDK最核心的数据类型之一,非常有必要专门学习一下,重点关注这4个文件jdk/src/java.base/share/native/libjava/String.cjdk/src/java.base/share/classes/java/lang/String.javajdk/src/java.base/share/classes/java/lang/StringLatin1.javajdk/src/java.base/share/classes/java/lang/StringUTF16.java存储无论是何种语言的何种实现,String本质上都是字节序列,所有可能的字符加起来就构成了字符集,给字符集中每个字符一个序号就是字符编码,使用最广泛的就是Unicode了,它几...阅读全文

博文 2020-06-11 04:52:36 知乎

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

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

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

淘宝分布式NOSQL框架:Tair - 如果的事

Tair 分布式K-V存储方案 tair 是淘宝的一个开源项目,它是一个分布式的key/value结构数据的解决方案。 作为一个分布式系统,Tair由一个中心控制节点(config server)和一系列的服务节点(data server)组成, config server 负责管理所有的data server,并维护data server的状态信息;为了保证高可用(High Available),config server可通过hearbeat 以一主一备形式提供服务; data server 对外提供各种数据服务,并以心跳的形式将自身状况汇报给config server;所有的 data server 地位都是等价的。 tair集群的基本概念: configID,唯一标识一个tair集群...阅读全文

博文 2020-11-02 06:38:49 博客园

Hive内部表与外部表(外部表使用场景)_UniqueChunBlog

官网解释 Managed and External Tables By default Hive creates managed tables, where files, metadata and statistics are managed by internal Hive processes. A managed table is stored under the hive.metastore.warehouse.dir path property, by default in a folder path similar to /apps/hive/warehouse/databasename.db/tablename/. The default location can be over...阅读全文

博文 2021-11-01 12:23:34 CSDN博客

由阿里巴巴Java开发规约HashMap条目引发的故事-云栖社区

大热的《阿里巴巴Java开发规约》中有提到: 【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可: public HashMap (int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR); } 看到代码规约这一条的时候,我觉得是不是有点太 low 了,身为开发,大家都知道 HashMap 的原理。 什么?这个要通过插件监测?没必要吧,哪个开发不知道默认大小,何时 resize 啊,然后我和孤尽打赌随机咨询几位同学以下几个问题: HashMap 默认bucket数组多大? 如果new HashMap<>(19),bucket数组...阅读全文

博文 2020-07-14 09:57:56 阿里云

图解LinkedHashMap原理

图解LinkedHashMap原理1 前言 LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先看上一篇:图解HashMap原理 2 LinkedHashMap使用与实现 先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟: LinkedHashMap结构.png 2.1 应用场景 HashMap是无序的,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。 Map hashMap = new HashMap(); hashMap.put("name1", "josan1"); hashMap.put("name...阅读全文

博文 2021-08-20 08:19:33 简书

大数据开发之Hive篇19-Hive分区表详解

备注: Hive 版本 2.1.1 Table of Contents一.Hive分区表概述二.静态分区2.1 单分区测试2.2 多分区测试三.动态分区3.1 动态分区测试3.2 动态分区和静态分区混合使用四.分区的其它操作4.1 恢复分区4.2 归档分区4.3 交换分区参考 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。 hive中有分区表的概念,我们可以看到分区具重要性能优势,而且分区表还可以将数据以一种符合逻辑的方式进行组织,比如分层存储 Hive官方网站对Hive partition的介绍: 可以使用Partitioned BY子句创建分区表。一个表可以有一个或多个分区列,并且为分区列...阅读全文

博文 2022-07-14 11:01:16 墨天轮

Hive典型应用场景之行列转换_小飞鱼_bigdata的博客

在使用Hive处理数据时,经常遇到行列转换的场景,本文将对Hive的行列转换操作做详细的说明。 行转列## 1)多行转多列 假设数据表 row2col: col1 col2 col3 a c 1 a d 2 a e 3 b c 4 b d 5 b e 6 现在要将其转化为: col1 c d e a 1 2 3 b 4 5 6 此时需要使用到max(case … when … then … else 0 end),仅限于转化的字段为数值类型,且为正值的情况。 HQL语句为: select col1, max(case col2 when 'c' then col3 else 0 end) as c, max(case col2 when 'd' then col3 else 0 end) a...阅读全文

博文 2022-03-27 05:58:44 CSDN博客_hive 行列互换

Hive中的explode使用全解

本节主要介绍explode和posexplode函数的使用。1、数据介绍 主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo。2、单列Explode 首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral view实现。代码如下:select class,student_name from default.classinfo lateral view explode(split(student,',')) t as student_name 结果如下:3、单列Posexplode 接下来,我们想要给每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive函数,叫做...阅读全文

博文 2022-03-27 05:57:59 知乎

如此狂妄,自称高性能队列的Disruptor有啥来头? - 博学谷狂野架构师

并发框架Disruptor 1. Disruptor概述 1.1 背景 ​ Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级),基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注,2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。 ​ 目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。 ​ 需要特别指出的是,这里所说的队列是系统内部的内存队列,而不是Kafka这样的分布式队列。 有界无锁 高并发队列 1...阅读全文

博文 2023-03-03 02:58:58 博客园

【Java集合】想成为Java编程高手?先来了解一下List集合的特性和常用方法!

通过前面文章的介绍,相信大家对Java集合框架有了简单的理解,接下来说说集合中最常使用的一个集合类的父类,List 集合。那么,List到底是什么?它有哪些特性?又该如何使用呢?让我们一起来揭开List的神秘面纱。 List,顾名思义,就是列表的意思。在Java中,List是一个接口,它继承了Collection接口,表示一个有序的、可重复的元素集合。下面我们从List 接口的概念、特点和常用方法等方面来介绍List。 ## 一、List 接口介绍 java.util.List 接口,继承自 Collection 接口(可以回看咱们第二篇中的框架体系),List 接口是单列集合的一个重要分支,习惯性地将实现了List 接口的对象称为List集合。 ![image.png](http://st...阅读全文

博文 2023-11-15 17:01:34 YDYXCODE

大圣前端啃算法

download: https://caodada.com/7084.html【资源目录】:├──单课01、01-前端为什么要学算法.mp4 22.60M├──单课02、02-一个leetcode题了解算法复杂度.mp4 51.49M├──单课03、通用01-如何把代码提交到github.mp4 34.07M├──单课04、通用02-如何获取github代码权限并且提交pr.mp4 25.13M├──单课05、03-链表和数组.mp4 13.07M├──单课06、04-链表的javascript实现01.mp4 26.12M├──单课07、05-链表的javascript实现-leetcode203题.mp4 21.49M├──单课08、06-链表的javascript实现-leetcode...阅读全文

博文 2023-08-08 08:44:55 caodada

CSRF 保护_Spring Security

Spring Security 跨站请求伪造保护 1. 前言 很多小伙伴在开发 Spring Security 项目时候,本地测试都没有问题,一放到生产环境后,就会遇到「Invalid CSRF Token」问题,这其实是 Spring Security 防止服务免受「跨站请求伪造」攻击攻击的防护行为。 跨站请求伪造(Cross Site Request Forgery),简写成「CSRF」或者「XSRF」,是一种挟持用户所用浏览器,执行非法操作的攻击方法,也就是说,攻击者利用「CSRF」漏洞伪造用户操作,可实现例如购物、注销等效果,还可以利用该漏洞配合产生其他多种攻击方式。 针对「CSRF」攻击最经济的解决方式是增加「Referer」头或者增加校验「Token」。 Spring Secur...阅读全文

博文 2023-04-12 06:59:09 慕课网

图文解释 读写分离、垂直拆分、水平拆分、分库分表

1. 前言 相信你经常被 读写分离、垂直拆分、水平拆分、分库分表 这几个名词搞得很懵逼。我有时候也很懵逼,那么今天就来把这几个数据库常用术语搞清楚,同时也记录一下。 2. 读写分离 这个相对比较好理解一些,就是将数据库分为主从库,一个主库(Master)用于写数据,多个从库(Slaver)进行轮询读取数据的过程,主从库之间通过某种通讯机制进行数据的同步,是一种常见的数据库架构。下面这张图就展示了 “一主二从” 的结构: 2.1 为什么要读写分离 大多数互联网数据操作往往都是读多写少,随着数据的增长,数据库的“读”会首先成为瓶颈。如果我们希望能线性地提升数据库的读性能和写性能,就需要让读写尽可能的不相互影响,各自为政。在使用读写分离之前我们应该考虑使用缓存能不能解决问题。然后再考虑对数据库按照...阅读全文

博文 2023-09-13 16:02:53 掘金

【Java集合】数据结构与集合的神秘联系,一文读懂!

上篇文章中我们对单列集合中常用的方法和遍历查询。通过本文章为我们解惑,好好的字符串用起来不就行了,为什么要用集合这些工具类?本篇文章将简要介绍数据结构,让读者了解它们在计算机中以何种结构方式存在。那么,什么是数据结构呢?下面我们来详细解释。 ## 数据结构 ### 1.1 数据结构有什么用? 数据结构是计算机存储、组织数据的方式。 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 ![image.png](http://static.itsharecircle.com/231107/780768685050bf3238e22caee5c12252.png) 数据结构往往同高效的检索算法和索引技术有关。 这句话是啥意思...阅读全文

VPC终端节点的实现架构和原理

本文分享自天翼云开发者社区《VPC终端节点的实现架构和原理》,作者:云云生息什么是VPC终端节点?在传统的VPC架构中,为了使VPC内的资源能够与云服务提供商的各种服务进行通信,通常需要通过公共Internet进行访问。这种方式存在一些问题,比如安全性、可靠性、访问速度等。为了解决这些问题,云服务提供商推出了VPC终端节点。VPC终端节点是VPC内的一种虚拟设备,它直接连接到云服务提供商的服务而无需通过Internet。这样,VPC内的资源可以通过VPC终端节点安全地、高效地访问云服务,同时也能避免通过Internet带来的一些潜在问题。VPC终端节点的实现架构VPC终端节点的实现架构通常涉及多个组件的协同工作。以下是一个常见的VPC终端节点实现架构:1.VPC路由表: 在VPC中,存在一个...阅读全文

Java单列集合Set:HashSet与LinkedHashSet详解,为什么它比List接口更严格?

上篇我们介绍了单列集合中常用的list接口,本篇我们来聊聊单列集合中的另外一个重要接口Set集合。 ### 1 Set 介绍 java.util.Set接口和java.util.List接口一样,同样实现了Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。 与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复,这里的某种规则,我们在后面中给大家揭秘,大家不要着急。 - 无序 - 不可重复 它没有索引,所以不能使用普通for 循环进行遍历。 >Set 集合 遍历元素的方式 迭代器,增强for 来,我们通过案例练习来看看 ``` //创建集合对象 ...阅读全文

博文 2023-11-21 18:17:32 YDYXCODE

双列集合Map不再难懂:轻松掌握这些知识点!

## 1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,学号与学生等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。 Map 接口下的集合与Collection 接口下的集合,他们的存储形式有所不同,如下图: ![image.png](http://static.itsharecircle.com/231205/ebb5393154fd764d6d07353910a6296c.png) Collection 集合,元素是独立的,存储的元素是一个一个的存储。Map中的集合,元素是成对出现。每个元素由键与值两部分组成,通过键可以找到所对应的值。所以我们前面所说 Collection是单列集...阅读全文

博文 2023-12-05 10:47:07 YDYXCODE

[15章]深入学习小程序框架底层原理,培养双线程思维

![1.png](http://static.itsharecircle.com/231218/f3762dc802ff57be143d2b6bfeac0bd1.png) 前端高手特训 从0到1带你手写一个微信小程序底层框架,今天就带着大家从0到深入学习小程序框架底层原理,无论你是一位新手,还是一位有经验的开发者,能够自研一套小程序底层框架,都是你突破技术瓶颈有效途径。 今天就由我带领大家从架构设计 ,原理剖析,再到源码的实现,一步步地实战构建一个完整的微信小程序底层框架,让你深度掌握小程序双线程原理,助力你具备把握最佳机会的能力和提升获取心仪Offer的成功率,成为一个真正有实力的技术人才 。 小程序使用的是Exparser组件模型,Exparser组件模型与Web Components中...阅读全文

博文 2023-12-18 12:12:46 hbanhgbd

Java集合:双列集合HashMap的概念、特点及使用

HashMap是Java中的一个集合类,它实现了Map接口,提供了一种存储键值对的方式。你可以把它想象成一个没有固定大小和形状的储物柜,你可以随时往里面放东西,也可以随时取出东西。而且,这个储物柜还有一个神奇的功能,那就是无论你放进去的是什么,取出来的总是你放进去的那个。 上篇文章讲了Map接口的概念,以及Map接口中的常用方法和对Map集合的遍历,本篇文章我们将继续介绍另一个十分重要的双列集合—HashMap。 ## HashMap 概念 HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的。 #### 特点 HashMap底层是由哈希表结构组成的,其实就是“数组+链表”的组合体,数组是HashMap的主体结构,链...阅读全文

博文 2023-12-12 10:40:31 YDYXCODE

使用 Hbase Shell 命令创建预分区表 - Yr-Zhang

对表进行预分区,可以防止单分区一次写入数据过大,hbase 集群本身还没来得及自动分裂,导致 region 宕掉的问题。 1、创建表时指定一个拆分点数组 split point 将定义n+1个区域,其中n是分割点的数量, point 为'10'时实际上是在指定字节分割'\x31\30' hbase>create 't1','f',SPLITS => ['10','20','30'] 获取rowkey的第一个字节,按照进行分割 hbase> create 't',{NAME => 'f0',VERSIONS => 1, COMPRESSION => 'snappy'},{NAME => 'f1',VERSIONS => 10000, COMPRESSION => 'snappy'},CONFI...阅读全文

博文 2024-01-11 19:58:28 博客园

利用 Arthas 精准定位 Java 应用 CPU 负载过高问题_arthas cpuusage

Arthas 官方社区正在举行征文活动,参加即有奖品拿哦~点击投稿 作者 | 张云翔 最近我们线上有个应用服务器有点上头,CPU总能跑到99%,我寻思着它流量也不大啊,为啥能把自己整这么累?于是我登上这台服务器,看看它到底在干啥! 以前碰到类似问题,可能会考虑使用 top -Hp 加 jstack 命令去排查,虽然能大致定位到问题范围,但有效信息还是太少了,多数时候还是要靠猜。今天向大家推荐一款更高效更精准的工具:Arthas!Arthas 是 Alibaba 开源的 Java 诊断工具,能够帮助我们快速定位线上问题。基本的安装使用可以参考官方文档:https://alibaba.github.io/arthas 这次我们利用它来排查 CPU 负载高的问题。CPU 负载过高一般是某个或某几个...阅读全文

博文 2024-03-13 11:20:01 CSDN博客

MBR分区表为什么最大只能识别2TB硬盘容量 - 大师兄啊哈

文链接:https://www.cnblogs.com/harrymore/p/13782261.html 1. 前言 最近公司的服务器硬盘坏了,需要换一个新的硬盘,容量是2TB,用的fdisk进行分区,期间搜索分区工具,看到了关于MBR(Master Boot Record)与GPT(GUID partition table)硬盘分区表的一些区别,其中说到MBR分区表最多只能管理2TB的容量,对此查了一下《鸟哥的私房菜》发现是简化过的,并没有解决疑惑,于是查了一些资料,总结如下。 2. 机械硬盘的结构 2.1. 基本结构 机械硬盘主要由磁盘盘片、磁头(header)、主轴与传动轴等组成,数据就存放在磁盘盘片中,实际图片如下: 值得注意的是,硬盘是上下磁头的,也就是一个盘片有两个磁头进行操作...阅读全文

博文 2024-04-10 17:13:10 博客园

使用dd命令完整拷贝系统分区到另外一个硬盘上_将系统盘dd到另一个空盘

1简介 在工作中,有一种常见的场景是要安装一个系统,这个系统可能安装好了开发环境、环境变量配置、网卡驱动等设置,如果要重新安装一个一模一样的系统,会非常复杂,在这个场景下我们就可以借助工具,即dd命令来完整把这个系统拷贝到另外一个硬盘上,dd命令会完整的拷贝文件系统,分区,网卡,系统配置等信息到另外的硬盘上,这样把这个携带一模一样的硬盘安装到另外的服务器上,只要在开机时,指定启动项,即可进入一个安装好的一模一样的环境,这时只要修改一下ip即可正常使用,省时省力。 2操作步骤 2.1命令集合 2.1.1 fdisk 分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。 fdisk主要作用是进行分区表控制...阅读全文

博文 2024-04-10 19:07:56 CSDN博客

boot扩容后修改grub不生效_search.fs_uuid

启动计算机通常不是一件难事:按下电源键,稍等片刻,你就能看到一个登录界面,再输入正确的密码,就可以开启一天的网上冲浪之旅了。但偶尔这件事没那么顺利,有时候迎接你的不是熟悉的登录界面,而是一个令人生畏的命令提示符界面,一闪一闪的提示符告诉你:“你碰到麻烦了”。于是你对着错误提示查找解决方法,按照网页上的步骤,你对着提示符输入并执行了几条你完全不理解的命令,计算机又能正常启动了,但同时你发现你那存有大学舍友糗照的硬盘分区被清空了...阅读全文

《新闻联播》1000本金计划表图-央视网

1000本金计划表图【加赢不凡QQ:497527】【全网高邀请码40000038】稳定上岸回血实力老师|无需打开,直接添加【信誉平台丨YY37.CC丨豪客选择丨提款无忧丨权威认证】(央视网评论员) 新版国家职业资格目录:激发市场活力 促进人才成长,中国-东盟文旅为“媒”探索“后疫情时代”可持续发展,“神十三”航天员乘组圆满完成第二次出舱任务 即将在太空迎接新年到来,神舟十三号乘组两名航天员已成功出舱,教育部:97.3%西部高校使用慕课开展教学,新疆阿克苏DNA女“神探”:一朵绽放的铿锵玫瑰,市场活力激发、公平竞争秩序向好 资本市场厚植创新创业沃土,全球累计新冠确诊病例数近2.8亿 以色列开展研究确定第四剂疫苗效果 来源:央视网、人民网、搜狐财经、新华网、凤凰资讯、网易新闻、知乎日报...阅读全文

央视新闻《500本金计划表图》手机搜狐网

500本金计划表图【王弘毅导师】➕腾讯Q·6449015✅信誉网08yy.vip✅邀请码88854022✅金牌团队✅顶尖计划✅导师单带✅回血上岸✅权威认证✅万人推荐✅据腾讯新闻报道:谁才是最厉害的回血导师?真正有实力带回血上岸的导师!大小单双导师带赚钱,导师带赚钱一对一 。当你有想法时,与其听非专业人士随便说,影响了你对一个事物的认知和判断,莫不如实事求是,找个你信得过的专业团队或者加我聊聊,专业的事交给专业的人去做,会让你省时、省力、省心且一本万利。爱国、进步、科学、民主。自强不息,厚德载物。求是创新。博学而笃志,切问而近思。自强、弘毅、求是、拓新。真理!(央视网评论员) (参与记者:胡绩伟、穆青、李普、田流、李峰、阎吾、柏生、彭迪、黄钢、金凤) 来源:央视网、人民网、搜狐财经、新华网、凤...阅读全文

点击关注“有赞coder”获取更多技术干货哦~作者:张云翔团队:安全技术最近我们线上有个应用服务器有点上头,CPU总能跑到99%,我寻思着它流量也不大啊,为啥能把自己整这么累?于是我登上这台服务器,看看它到底在干啥!以前碰到类似问题,可能会考虑使用top -Hp 加 jstack命令去排查,虽然能大致定位到问题范围,但有效信息还是太少了,多数时候还是要靠猜。今天向大家推荐一款更高效更精准的工具:Arthas!Arthas 是Alibaba开源的Java诊断工具,能够帮助我们快速定位线上问题。基本的安装使用可以参考官方文档:https://alibaba.github.io/arthas 这次我们利用它来排查CPU负载高的问题。CPU负载过高一般是某个或某几个线程有问题,所以我们尝试使用第一个...阅读全文

博文 2024-03-13 11:14:54 mp.weixin.qq.com