logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Java集合 —— HashMap原理解析

一、HashMap是什么HashMap是一个存储key-value键值对的哈希表,表中每个元素的key都是唯一的(通过equals方法判断),查询时通过key的hashcode值即可定位到元素的存储地址,因此HashMap在理想情况下查询时间复杂度为O(1)。1. 存储下标计算方法HashMap底层通过Entry数组来存储元素,插入元素和查询元素时首先需要计算元素在数组中的存储下标,方法如下:1.

文章图片
#java
Tomcat整体架构解析

Tomcat是一个开源的轻量级web应用服务器。Tomcat中最顶层的容器是Server,即代表一个Tomcat服务器,一个Server中可以有多个Service,对外提供不同的web服务。Service是对Connector和Container的封装,一个Service中有一个或多个连接器,和一个Container容器。连接器Connector负责监听端口接收请求并按照设定的协议进行解析数据,将

文章图片
#tomcat#架构#servlet +1
OpenEuler内核编译及替换

一、内核源码下载在gitee上下载OpenEuler内核源码 下载地址选择需要的内核版本源码压缩包进行下载二、内核编译1.解压缩将下载好的源码进行解压tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz2.清理源代码树解压后得到一个名为kernel的内核源码文件夹,进入后执行命令make mrproper清理过去内核编译产生的config,第一次编译时可

#linux
解决“先commit再pull”造成的git冲突

## 一、问题场景在分支上修改了代码然后commit(没有push),此时再git pull,拉下了别人的修改,但是报错无法merge## 二、解决步骤1.在idea下方工具栏选择git -> log,可以看到版本变化链表,右键选中自己commit提交之前的版本,然后点reset到这里

文章图片
#git
Java并发编程 —— ThreadPoolExecutor线程池详解

线程池是一种池化技术,是管理一系列线程的资源池。当有任务要处理时,直接从线程池中获取线程来处理,处理完之后线程并不会立即被销毁,而是等待下一个任务。这样实现线程的复用,避免重复创建与销毁线程的开销和大量线程上下文切换,提高系统效率和并发度。使用线程池的好处:1. **降低资源消耗**。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2. **提高响应速度**。当任务到达时,任务可以不需要等到

文章图片
#java
在windows上将本地文件上传至Linux服务器

scp是基于ssh的网络文件传输命令,可以将本地文件或文件夹直接上传到服务器指定位置 。上传文件scp -P port filepath username@ip:TargetPath上传文件夹scp -r -P port filepath username@ip:TargetPath

#linux#ssh
List按指定规则排序的四种方法

使用Collections.sort(list)可对一个List对象进行升序排序,但如果要按某种指定规则进行排序,可使用如下四种方法:### 1. 使用list.sort(comparator)方法List的sort()方法中可以传入一个自定义Comparator比较器。实现Comparator接口,**重写compare方法**来定义排序规则。- 如果compare()方法返回负整数,表示obj

文章图片
#list#java
数的机器码表示:原码、反码、补码、变形补码、移码和浮点数编码

我们平时书写的数据如+110、-111称为数的真值,而数在经过特定的方式编码后在计算机中的表示称为数的机器码。为满足计算机中不同操作的要求,对于一个数常见的编码方式有如下几种。1.原码(1) 整数的原码表示从直观上看,整数的原码相对于真值而言就是在数值前添加一位符号位来替代真值中的数值符号,符号位为0表示正数,符号位为1表示负数。数学定义:例:+111的原码为0111,-101的原码为1101(2

IDEA中配置运行node.js

idea中支持运行很多种编程语言,只需要在电脑中安装好对应的语言环境,然后在idea的setting->plugins中下载安装对应的语言插件,最后再在setting->languages&frameworks中找到对应语言然后配置好已安装的语言编译器路径即可。例如node.js1.在电脑中安装node.js这个很简单,直接去官网下载安装:https://nodejs.org/

#intellij-idea#node.js#java
OpenEuler编译、安装与挂载f2fs文件系统

一、查看当前系统是否安装f2fs文件系统使用modinfo命令查看已安装的模块信息(lsmod命令只能查找已运行加载的模块)modinfo f2fs若显示未找到f2fs模块,则内核中目前没有支持f2fs文件系统。二、使内核支持f2fs文件系统方法1:重新编译内核我开始使用方法2手动安装完成后,最后挂载磁盘时报错日志原因是内核编译时没有把f2fs新特性支持编译进去,最后发现其实内核编译时就可以选择安

#linux
暂无文章信息