自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ByteX的博客

这是我的记事本~

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

原创 算法攻略-数组

数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内存空间必须一次性分配够,所以说数组如果要扩容,需要重新分配一块更大的空间,再把数据全部复制过去,时间复杂度 O(N);而且你如果想在数组中间进行插入和删除,每次必须搬移后面的所有数据以保持连续,时间复杂度 O(N)。在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。

2025-04-07 18:30:00 569

原创 java使用word模板填充内容,再生成pdf

pom依赖可以参考https://blog.csdn.net/u011067966/article/details/134293480#comments_36351020。结合起来就能生成相对完整的word了。后续如果需要盖章什么的直接拿生成的pdf文件就可以了。现在介绍的是基于jodconverter把word转换为PDF。在处理类中注入,之所以使用@Lazy是因为加载的使用会报错,让它延迟加载。word生成pdf的方法比较多,调研了常用的方式。之前写过word模板生成段落和生成表格的段落。

2025-02-26 21:30:00 620

原创 Java 非递归创建父子结构代码

【代码】Java 创建父子结构代码。

2025-02-07 19:00:00 198

原创 Random模拟概率问题

随机数生成器要复用同一个实例,避免频繁初始化导致随机分布不均匀。在高并发场景下,可以考虑:使用单例模式共享 Random 实例。使用线程安全的 ThreadLocalRandom(Java 7+ 提供),避免多线程访问冲突。i < 1000;i ++) {// 10% 概率 successCount ++;} } System . out . println("触发事件的次数: " + successCount);i ++) {

2024-12-26 19:00:00 393

原创 Java8-Function的使用之读取文件

创建一个实现了 LineFilter 接口的类,用于定义具体的过滤逻辑。首先,我们需要一个 FileCloseAble 类来处理文件写入操作。定义一个 Predicate 接口,用于表示每一行的过滤逻辑。FileContext 类来存储文件的上下文信息。实现 LineFilter 接口。使用 FileHandler 类。FileHandler 类。定义一个过滤函数接口。可以愉快的读写文件啦。

2024-12-25 19:00:00 388

原创 Jvm之NativeMemoryTracking 使用

查看 Native Memory Tracking 的 detail 信息,包括 summary 信息,以及按照虚拟内存映射分组的内存使用信息,还有按照不同 CallSite 调用分组的内存使用情况。一般地,只有遇到问题的时候,我们才会考虑开启 Native Memory Tracking,并且在定位出问题后,我们想把它关闭,可以通过。通过 mmap 方式分配的内存保留为 1120MB,承诺为 108MB。通过 mmap 方式分配的内存保留为 244MB,承诺为 74MB。

2024-12-09 19:45:00 1494

原创 Jvm之内存申请和释放测试

CMS垃圾回收器,在内存开辟后,会随着System.gc()执行次数逐渐增多和回收频率逐渐拉长,从继续开辟内存到慢慢归还物理内存给操作系统,直到出现一次全部归还,就会在每次调用System.gc()都归还所有剩余的物理内存给操作系统;G1恰恰相反,G1是在JVM每次回收垃圾后,主动归还物理内存给操作系统,不做任何保留,大大降低了内存占用。

2024-12-09 19:30:00 582

原创 Go-反射

通过反射,可以动态地获取变量类型信息和值,例如使用reflect.TypeOf()可以获取变量的类型,使用reflect.ValueOf()可以获取变量的值。还可以使用Value提供的方法获取和设置变量的值、调用方法等。在Go语言中,反射(reflection)是指在运行时检查程序的结构、变量和接口的机制。可以通过反射获取和修改变量的值、获取变量的类型信息、调用方法等操作。需要注意的是,反射操作相对较慢,使用反射会带来一定的性能损失。因此,应尽量避免过度使用反射,谨慎地选择使用反射机制。

2024-08-05 21:45:00 585

原创 docker 安装orcale11数据库

介绍了如何在docker下安装Oracle11数据库

2024-07-12 20:30:00 1094

原创 Linux rpm和ssh损坏修复

我遇到的问题可能和你的不一样。但是如果遇到错误一样也可以按此方案尝试修复。我是想在Linux上安装Oracle,因为必须在离线环境下安装。就在网上搜一篇文章是一个用于在 Linux 系统上安装 RPM 包的命令。rpm-i-v-h./*--nodeps--force总的来说,这个命令用于在当前目录下批量安装所有 RPM 包,并且忽略依赖关系和可能的冲突。使用该命令时需要注意,因为--nodeps和--force选项可能导致系统不稳定或依赖关系问题,所以应谨慎使用。

2024-07-12 19:00:00 1976 4

原创 Feign Client超时时间设置不生效问题

可以在Feign Client的配置类中通过修改对象来设置超时时间。对象有两个属性,用于设置连接超时时间,用于设置读取超时时间。在上面的示例中,连接超时和读取超时时间都设置为5000毫秒。可以在Feign接口方法上使用注解的属性来指定一个配置类,然后在配置类中通过修改对象来设置超时时间。在上面的示例中,接口中的方法的超时时间被配置为5000毫秒。需要注意的是,Feign Client的超时时间设置只对请求的连接和读取阶段有效,对于响应的处理时间是无效的。

2024-06-24 21:00:00 1980

原创 多线程使用-变量共享问题

多线程使用时,有一个常见的问题是变量共享问题。在多线程环境中,多个线程可以同时访问和修改同一个变量,这时就会出现竞态条件和数据不一致的问题。在这个例子中,我们创建了一个计数器类Counter,其中有一个count变量用于记录计数值。我们启动了两个线程thread1和thread2,它们分别对计数器进行了一万次递增操作,并打印最终的计数值。然而,由于两个线程同时对count变量进行修改,会导致竞态条件的产生。

2024-06-20 19:12:07 1067

原创 算法攻略-链表

链表是一种数据结构,它由一系列的节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表中的第一个节点叫做头节点,最后一个节点叫做尾节点。链表中的节点不一定是连续存储的,它们可以在内存中的任意位置。链表的优点是插入和删除操作相对于数组来说更高效,因为只需要修改节点的指针,而无需移动其他节点。缺点是访问元素的效率相对较低,需要遍历整个链表才能找到目标元素。链表有多种类型,常见的有单链表、双链表和循环链表。

2024-06-18 19:00:00 874

原创 Rust 编程——prost-build 使用

而prost-build是Prost库的一个工具,用于生成Rust代码。Protocol Buffers是由Google开发的一种轻量级、高效的数据交换格式,可以用于结构化数据的序列化,特别适用于通信协议和数据存储等领域。prost-build工具通过读取Protobuf文件(.proto文件)并根据文件中定义的消息类型、服务等生成相应的Rust代码。时,prost-build工具会自动读取Protobuf文件并生成相应的Rust代码,并将生成的代码放置在指定的输出目录中。是生成的Rust代码的输出目录。

2024-06-05 13:56:53 937

原创 算法攻略-滑动窗口

滑动窗口是一种常用的算法技巧,通常用于解决数组或字符串的子串或子数组的问题。它的基本思想是维护一个可变大小的窗口,通过滑动窗口来确定问题的解。滑动窗口算法的时间复杂度通常是O(N),其中N是数组或字符串的长度。它的优势在于可以在一次遍历中解决问题,而不需要使用嵌套循环。滑动窗口算法的应用非常广泛,能够解决很多实际问题,比如字符串匹配、字符串压缩、求解最长连续递增子序列等。

2024-05-30 19:30:00 1518

原创 Java8-CompletableFuture的使用

Future接口是Java并发编程中的一个接口,它表示一个可能还没有完成的异步操作的结果。Future接口的主要作用是提供一种机制,允许调用者在某个异步操作完成后取得其结果用Future 模拟同时获取 用户和勋章。

2024-04-24 20:00:00 399

原创 系统设计取舍问题

由于资源和时间的限制,不可能满足所有的需求,因此需要进行取舍。优先级:对于不同的需求,可以根据其重要性和紧急程度来确定优先级。对于低优先级的需求,可以暂时搁置或延后。成本与效益:在取舍时,需要考虑到实施某个需求所需的成本和所带来的效益。时效性:需求可能具有不同的时效性,一些需求可能会随着时间的推移而失去价值。总之,在需求设计取舍过程中,需要综合考虑多个因素,并根据优先级、成本与效益、可行性、用户反馈和时效性等进行取舍。如果用户对某个需求不满意或不需要,可以考虑将其暂时搁置或取消。

2024-04-07 19:30:00 325

原创 多数据源读库打印sql

在本地进行开发的时候,需要打印读库的sql,但是常规的配置是无法打印的,需要在读库的配置中进行设置。

2024-04-07 09:52:11 215

原创 k8s系列之十六 Istio通过kiali可视化bookinfo

kiali 是使用 istioctl 客户端工具安装 demo profile 时自动就会安装的组件,kiali 是一款 istio 服务网格可视化工具,提供了服务拓扑图、全链路跟踪、指标遥测、配置校验、健康检查等功能。

2024-03-26 23:45:00 725

原创 k8s系列之十七 Istio中的服务治理

在 Istio 中,流量路由管理是通过 DestinationRule 和 VirtualService 这两个资源来实现的。DestinationRule 用于定义服务的目标规则,例如负载均衡策略、连接池设置等。而 VirtualService 则用于定义服务的路由规则,包括如何将流量路由到不同的版本或实例。

2024-03-26 23:45:00 1366

原创 k8s系列之十五 Istio 部署Bookinfo 应用

Bookinfo 应用中的几个微服务是由不同的语言编写的。这些服务对 Istio 并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 reviews 服务具有多个版本。该应用由四个单独的微服务构成。这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。下图展示了这个应用的端到端架构。Bookinfo 应用中的几个微服务是由不同的语言编写的。

2024-03-21 21:00:00 1590 2

原创 k8s系列之十四安装Istio

Istio 是一个开源的服务网格(Service Mesh),用于连接、管理和保护微服务。它提供了一组功能强大的工具,包括流量管理、安全性、监控和跟踪等,以帮助在微服务架构中更好地管理服务之间的通信。总的来说,Istio 提供了一种灵活且强大的方法,用于解决微服务架构中常见的网络通信、安全性和可观察性等问题。

2024-03-21 18:30:00 1403

原创 k8s系列-kubectl 命令快速参考

这些指令适用于 Kubernetes v1.29。要检查版本,请使用 kubectl version 命令。kubectl -A。

2024-03-15 18:30:00 1136

原创 k8s系列之补充三数据管理之nfs手动搭建

nfs手动安装

2024-02-29 19:00:00 760

原创 写代码当时觉得没问题,过段时间再看就有问题

相信每个人都会遇到这种情况:遇到写代码时觉得没问题,但过段时间再看就发现问题。这通常与代码的可读性、复杂度以及当初编码时对问题理解的深度有关。

2024-02-26 21:30:00 539

原创 fastjson 替换超大的JSON对象中的key优化

遇到一个处理超大json(接近2w行)的问题,原有处理代码效率比较低下,耗时10几秒,业务要求耗时越短越好。因为json非常长,原来对value进行解析的逻辑是逐个字段进行正则匹配判断是否是月份,所以导致效率非常低。优化以后建立映射字段,存储月份对应的码值,遇到对应码值直接返回,原来正则表达式没有进行预编译,所以效率低下。思维转换:一般的思维是遍历json的所有字段,对符合条件的进行转换,但是效率低下,还有大量的正则匹配操作。逆向思维,只对配置中指定的字段进行转换,非配置中的直接跳过,可以大幅提升速度。

2024-02-19 17:50:02 375

原创 k8s系列之十三Service Account和RBAC授权

首先Kubernetes中账户区分为:User Accounts(用户账户) 和 Service Accounts(服务账户) 两种,它们的设计及用途如下:UserAccount是给kubernetes集群外部用户使用的,例如运维或者集群管理人员,使用kubectl命令时用的就是UserAccount账户。UserAccount是全局性,在集群所有namespaces中,名称具有唯一性,默认情况下用户为admin;用户名称可以在kubeconfig中查看。

2024-02-05 22:15:00 1626 2

原创 k8s系列之十二Kubernetes Ingress

首先我们来思考用传统的web服务器,比如Nginx,如何处理这种场景?比如使用Nginx充当一个反向代理服务器拦截外部请求,读取路由规则配置,转发相应的请求到后端服务。反向代理web服务器负责拦截外部请求,比如Nginx、Apache、traefik等等。我一般以Deployment方式部署到kubernetes集群中,当然也可以用DeamonSet方式部署;这两种部署方式个人觉得有利有弊,感兴趣的请参考这篇文章。

2024-02-05 19:00:00 2264

原创 k8s系列之十一Kubernetes的网络

Network Policy是K8S的一种资源,它使K8S可以通过Label选择Pod,并指定其他Pod或外界如何与这些Pod通信。换句话说,当Pod被定义了Network Policy时,只有Policy允许的流量才能访问Pod(默认情况下,任何来源的流量都可以访问Pod,是没有限制的)即帮助K8S实现更为精细的流量控制,实现租户隔离机制。目前已经有多种支持K8S的网络方案,包括 Flannel、Calico、Canal等,它们都实现了CNI规范,因此无论我们选择哪种具体方案,它们的网络模型都是一致的。

2024-02-04 20:30:00 1418 1

原创 k8s系列之十Kubernetes的包管理器Helm

Kubernetes能够很好地组织和编排容器,但它缺少⼀个更高层次的应用打包工具,而Helm就是来干这件事的。

2024-02-04 19:30:00 2202

原创 k8s系列之补充二helm安装Tiller出错解决

到那时查看pod是会发现ErrImagePull,ImagePullBackOff,查看一下pod。查看tiller-deploy-54cb5b4ff9-tgz8c pod日志信息。1.删除tiller deployment,顺带会一起删除tiller pod。安装tiller ,但是有时间镜像会很慢,所以选择手动安装tiller。2.删除完再执行helm init,发现提示已安装。4.再次查询版本信息,发现已经不报错了。坑出现了,版本不匹配。

2024-02-02 22:15:00 833

原创 k8s系列之九Secret 与Configmap

在应用启动过程中需要一些敏感信息,比如数据库用户名、密码,如果直接明文存储在容器镜像中是不安全的,K8S提供的方案是Secret。

2024-02-01 22:00:00 1514

原创 k8s系列之八数据管理

在Docker中我们知道,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中,常用的手段就是Volume数据卷。在K8S中,也提供了存储模型Volume,支持我们将应用中的数据持久化存储到容器中。(1)学习Volume,以及Kubernetes如何通过Volume为集群中的容器提供存储;(2)实践几种常用的Volume类型并理解它们各自的应用场景;

2024-01-31 23:30:00 1275

原创 k8s系列之七Health Check

强大的自愈能力是Kubernetes这类容器编排引擎的⼀个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用Liveness和Readiness探测机制设置更精细的健康检查,进而实现:(1)零停机部署。(2)避免部署无效的镜像。(3)更加安全的滚动升级。

2024-01-31 21:45:00 1416

原创 k8s系列之六Rolling Update滚动更新

为了服务升级过程中提供可持续的不中断的服务,K8S提供了Rolling Update机制,它可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。滚动更新采用渐进的方式逐步替换旧版本Pod,如果更新不如预期,那么也可以通过回滚操作恢复到更新前的状态。

2024-01-31 21:00:00 2496

原创 k8s系列之五通过Service访问Pod

假设Pod中的容器很可能因为各种原因发生故障而死掉。Deployment等Controller会通过动态创建和销毁Pod来保证应用整体的健壮性。换句话说,Pod是脆弱的,但应用是健壮的。每个Pod都有自己的IP地址。当Controller用新Pod替代发生故障的Pod时,新Pod会分配到新的IP地址。这样就产生了⼀个问题:如果⼀组Pod对外提供服务(比如HTTP),它们的IP很有可能发⽣变化,那么客户端如何找到并访问这个服务呢?Kubernetes给出的解决方案是Service。

2024-01-30 22:00:00 3511 4

原创 k8s系列之四DaemonSet和Job

Deployment部署的副本Pod会分布在各个Node上,每个Node都可能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只能运行⼀个副本。

2024-01-27 22:00:00 1248

原创 k8s系列之三Deployment

既然 用YAML配置文件 署应用 , 现在就很有必要了解⼀下Deployment的配置格式了,其他Controller(比如DaemonSet)非常类似。metadata:spec:selector:template:metadata:labels:spec:这是一个Kubernetes Deployment的YAML文件,用于定义一个NGINX容器的部署。: 指定使用的 Kubernetes API 版本,这里是 Apps API 的版本。

2024-01-18 22:15:00 1794 1

原创 k8s系列之二集群环境搭建以及插件安装

终端工具很好用。1、虚拟机三台(ip按自己的网络环境相应配置)(master/node)2、关闭防火墙(master/node)3、关闭selinux(master/node)4、关闭swap(master/node)5、添加主机名与IP对应的关系(master/node)#添加如下内容:#保存退出6、修改主机名(master/node)[root@localhost ~] hostname k8s-master ##临时生效。

2024-01-17 22:00:00 1499

原创 k8s系列之一集群搭建的一些坑

k8s集群部署的时候会遇到很多的坑,即使看网上的文档也可能遇到各种的坑。

2024-01-17 01:00:00 1232

MSP430_SPI_模块

MSP430单片机特点:(1)SPI模式支持3线和4线模式;(2)支持主机与从机模式;(3)接受和发送有各自独立的发送移位寄存器和缓冲器;(4)接受和发送都有独立的中断能力;(5)移位时钟的极性和相位可编程;(6)字符长度可以是7位或者8位。 当Msp430 USART模块控制器UxCTL的位SYNC置位时,USART模块工作于同步模式,对于149即工作于SPI模式,若是169,USART0可以支持I2C,可以通过另一控制位I2C控制,I2C位0则工作于SPI。在SPI模式下,允许单片机以确定的速率发送和接收7位或8位数据。

2014-03-18

RS232通讯程序代码

RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会,RS(recommended standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有EIARS-422A、EIA RS-423A、EIARS-485。这里只介绍EIA RS-232C(简称232,RS232)。例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。

2014-04-13

前端读取excel示例.zip

前端读取excel示例

2020-07-28

空空如也

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

TA关注的人

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