缘由编程,逆序存入数组的元素_编程语言-CSDN问答#defineN7main(){staticinta[N]={12,9,16,5,7,2,l},k,s;for(k=0;k
c#:使用Modbus RTU协议
妮妮学代码
c#ModbusRTUc#开发语言
Modbus是一种广泛应用于工业自动化领域的通信协议,支持多种传输方式,如RTU、TCP等。其中,ModbusRTU是一种基于串行通信的协议,具有高效、可靠的特点。本文将详细介绍ModbusRTU协议的基本原理,并重点解析功能码0x03(读取保持寄存器)、0x06(写单个寄存器)和0x10(写多个寄存器)的使用和作用。同时,我们将通过C#代码实现这些功能码的读写操作。1.ModbusRTU协议简介
echarts柱状图区间滚动
没有天赋的搬砖者
echarts前端javascript
constxData=['00:00','01:00','02:00','03:00','04:00','05:00','06:00'];constbarData=[5,20,36,10,10,20];option={tooltip:{show:true,trigger:'axis',confine:true,formatter(item){consthtml=`${xData[item[0].d
sql与html
就很对
sqlhtmljvm
sql与htmlsqlite3sqlsql_callbacksql_dicthtmlhtml01ser02sersql_workhtml_ser03.htmlwebser06ser012.html011.html013.html015.html03.html04.html05.html06.htmlsqlite3sql//sqlite3_open//sqlite3_exec//sqlite3_cl
疯狂python讲义学习日志06——异常处理
静笃归心方得平和心气
Python学习日志异常处理python学习python笔记python速成
疯狂python讲义学习日志06——异常处理引言1异常处理机制1.1使用try...except处理异常1.2异常类的继承体系1.3多异常捕获1.4访问异常信息1.5else块1.6使用finally回收资源2使用raise处理异常2.1引发异常2.2自定义异常类2.3except和raise同时使用3.python的异常传播轨迹4.异常处理规则4.1不要过度使用异常4.2不要忽略异常引言异常机制
高级java每日一道面试题-2025年3月06日-微服务篇[Eureka篇]-Eureka Server和Eureka Client关系?
java我跟你拼了
java每日一道面试题java微服务eureka
如果有遗漏,评论区告诉我进行补充面试官:EurekaServer和EurekaClient关系?我回答:在微服务架构中,Eureka作为Netflix开源的服务发现组件,由EurekaServer(服务端)和EurekaClient(客户端)两大部分组成。这两者通过紧密协作实现服务的注册、发现与健康管理,是确保微服务间通信顺畅的关键。以下是对EurekaServer和EurekaClient关系的
06.动态代理设计模式
java
06.动态代理设计模式目录介绍01.为何要动态代理1.1为何要动态代理1.2动态代理思考02.动态代理的概念2.1动态代理定义2.2动态代理类比理解2.3动态代理参与者2.4动态代理步骤03.动态代理的实现3.1罗列一个场景3.2用一个例子理解代理3.3基于接口动态代理3.4基于类动态代理3.5动态代理模版代码04.动态代理案例4.1动态代理和反射4.2Java中代理4.3Retrofit核心思想
使用sqlite创建数据库
@云初
sqlite数据库database
使用sqlite创建数据库#sqlite3.exe数据库名.dbSQLiteversion3.36.02021-06-1818:36:39Enter".help"forusagehints.sqlite>在sqlite里面创建一张表并添加数据#.databases#.tables#createtableperson(idint,namevarchar(20),addressvarchar(20))
Java删除特定下标数组元素
程序员南飞
Java数组删除元素字符串遍历
15:16:06publicstaticvoidmain(String[]args){//数组创建以后长度不变,定义新的数组添加长度//删除特定下标数组String[]array1=newString[]{"a","b","b","c","d"};//删除第二个bintkey=2;String[]array2=newString[array1.length-1];for(inti=0;i=key)
高级java每日一道面试题-2025年3月06日-微服务篇[Eureka篇]-Eureka服务注册与发现是什么?
java我跟你拼了
java每日一道面试题java微服务eureka
如果有遗漏,评论区告诉我进行补充面试官:Eureka服务注册与发现是什么我回答:根据你提供的详细解析,结合之前的回答,我们可以更加全面地理解Eureka服务注册与发现机制,并补充一些关键点,特别是针对面试准备的内容。一、服务注册(ServiceRegistration)核心机制:当服务提供者启动时,它会通过EurekaClient向EurekaServer发送元数据。这些元数据包括但不限于IP地址
通过查看Windbg中变量的值,快速定位因内存不足引发bad alloc异常(C++ EH exception - code e06d7363)导致程序崩溃的问题
dvlinker
C/C++实战专栏C++软件调试codee06d7363Windbg内存不足badalloc内存申请失败
目录1、概述2、C++EHexception-codee06d7363与标准C++异常2.1、C++EHexception-codee06d7363说明2.2、C++标准库与C++异常2.2.1、C++抛出异常与捕获异常2.2.2、C++异常类3、查看函数调用堆栈,发现抛出了badalloc内存分配失败的异常4、在调用堆栈中看到CreateBmp创建位图的接口,怀疑可能是使用了异常大的宽高值,导致
06-基础-镂空三角形
哆啦A梦阳
2025算法机试算法c++开发语言
题目来源13.镂空三角形思路特别注意一些边界啥的,注意从图形中找规律。代码#includeusingnamespacestd;voidprinttri(chara,intn){for(intj=1;j1){//特殊处理一下边界,因为有可能出现只有一个的情况for(intj=1;j>a>>x){if(a=='@')break;printtri(a,x);cout<<endl;}return0;}
2021-06-04 VSC++:数组移位。
智者知已应修善业
c++算法经验分享笔记c语言
本实例是真正的O(N)不是有些需要最坏O(2N)才能完成的却硬称O(N)本例在数组中是已经完全完成了的。void数组移位(){//缘由https://ask.csdn.net/questions/7441793?spm=1005.2025.3001.5141inta[47]{},*aa,n=0,p=0,x=0;aa=a;//时空复杂度O(N)std::cin>>n>>p;while(x>a[x++
嵌入式开发之STM32学习笔记day06
小程同学>o<
嵌入式学习之STM32stm32学习笔记
基于STM32F103C8T6的开发实践——从入门到精通011.引言STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格,成为了开发者的首选之一。本文将通过实例,详细介绍如何基于STM32F103C8T6进行开发,并带领读者完成从简
【sklearn 07】sklearn工艺流程
@金色海岸
人工智能sklearnpython机器学习
01数据的获取02数据预处理03特征的提取04特征的选择05模型的训练06模型的评估07模型的优化
k8s-06-prometheus-stack
多懂一些
kubernetes实战nginxlinuxcentosprometheus
安装#下载yaml#[下载](https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack)#镜像下载dockerlogin--username=xxxx registry.cn-shanghai.aliyuncs.comdockerpullregistry.cn-shangha
92.HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用
harmonyos-next
温馨提示:本篇博客的详细代码已发布到git:https://gitcode.com/nutpi/HarmonyosNext可以下载运行哦!HarmonyOSNEXT开发学习路径与最佳实践总结:构建高质量应用1.学习路径指南1.1基础知识阶段阶段重点内容相关教程学习目标入门基础开发环境、基本语法01-03搭建环境,理解基础概念组件开发UI组件、生命周期04-06掌握组件开发和状态管理数据处理状态管理
ggplot2设置坐标轴范围_作图技巧018篇第二坐标轴在ggplot2中的实现
weixin_39618597
ggplot2设置坐标轴范围R语言ggplot2移除图例按键精灵定位坐标循环
“ggplot2中的次级坐标轴”生活科学哥-R语言科学2020-06-128:35在平时作图中,我们有时希望在一个坐标中进行二个坐标轴的设定,也是为了方便数据的显示。这个过程在EXCEL等当中比较容易实现,但是,如何在R中实现呢?今天我们就来讲一讲操作的过程。数据准备先准备如下数据:library(ggplot2)library(scales)library(magrittr)dfdata.fra
【MyBatis笔记06】MyBatis中的三种关联查询方式(一对一、一对多、多对多)
Mr.小朱同学
SSM专栏笔记mybatis关联查询一对一一对多多对多
这篇文章,主要介绍MyBatis中的三种关联查询方式(一对一、一对多、多对多)。目录一、MyBatis关联查询1.1、准备环境(1)SQL建表语句(2)创建实体类1.2、一对一查询(1)创建Mapper接口方法(2)创建XML映射文件(3)测试程序1.2、一对多关联查询(1)实体类(2)创建XML映射文件(3)测试程序1.3、多对多关联查询一、MyBatis关联查询MyBatis框架支持三种关联查
ruby的命令行选项
lizzywu
工具介绍ruby脚本编译器extensionshellcgi
ruby的命令行选项来源:LUPA开源社区发布时间:2007-06-2117:04版权申明字体:小中大文章来源于http://www.lupaworld.com请使用如下命令行启动Ruby解释器.ruby[option...][--][programfile][argument...]这里的"option"指下文将要提到的命令行选项中的一个。"--"则显式地表明选项字符串到此结束。"program
AFSim仿真系统—06 子系统位置、方向、回转和扫描
仿真小课堂
c++
本栏目将对《AFSim2.9中文参考手册》进行持续更新,欢迎关注交流!对本书全文和AFSIM其它资料感兴趣的伙伴,可联系作者领取~全部内容索引请看⬇️⬇️⬇️《AFSim2.9中文参考手册》-CSDN博客https://blog.csdn.net/henggesim/article/details/145566384目录概述定义标称子系统位置和方向定义回转模式和限制定义扫描模式和限制定义视场示例概
HarmonyOS NEXT 实战系列06-路由
harmonyos-next
Stage模型-路由编辑组件导航(Navigation)和页面路由(@ohos.router)均支持应用内的页面跳转,但组件导航支持在组件内部进行跳转,使用更灵活,组件导航具备更强的一次开发多端部署能力,可以进行更加灵活的页面栈操作,同时支持更丰富的动效和生命周期。不过目前初探鸿蒙开发建议先掌握页面路由(@ohos.router)的方案,它更容易手且将来大部分场景式混合使用模式。页面切换:Rout
15:00面试,15:06就出来了,问的问题有点变态。。。
测试界筱筱
软件测试面试职场和发展功能测试软件测试自动化测试程序人生
从小厂出来,没想到在另一家公司又寄了。到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这下搞的饭都吃不起了。还在有个朋友内推我去了一家互联网公司,兴冲冲见面试官,没想到一道题把我给问死了:如果模块请求http改为了https,测试方案应该如何制定,修改?感觉好简单的题,硬是没有答出来,早知道好好
【JVM实践】(6)full gc分析与实战
xiyubaby.17
jvm
FullGC全解析教程,涵盖触发机制、问题诊断、调优策略和实战案例:FullGC终极指南:深度解析与调优实践[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nsRlZAi8-1741613536305)(https://plumbr.io/wp-content/uploads/2016/01/g1-06-full-collection.png)]一、核心概念体系1.1
邀请码炒至上万元,中国AI新星一夜爆火华尔街见闻2025-03-06 21:38北京——为什么中国的ai公司接连突然爆火?——看来大家都在闷头做大事,做任何事情要先潜龙勿用,好好积蓄力量,蓄势待发
分享是一种传递,一种快乐
杂学百货铺-啥都学人工智能
邀请码炒至上万元,中国AI新星一夜爆火华尔街见闻2025-03-0621:38北京——为什么中国的ai公司接连突然爆火?——看来大家都在闷头做大事,做任何事情要先潜龙勿用,好好积蓄力量,蓄势待发邀请码炒至上万元,中国AI新星一夜爆火华尔街见闻2025-03-0621:38北京作者|柴旭晨编辑|周智宇没有丝毫预热和剧透,中国AI团队深夜直接丢下核弹,掀起DeepSeek之后的又一场狂欢。3月6日凌晨
指针高级06【数组指针】-黑马程序员C语言
c
数组指针的基本用法概念:指向数组的指针,叫做数组指针作用:方便操作数组中的各种数据#include"stdio.h"intmain(){intarr[]={10,20,30,40,50};intlen=sizeof(arr)/sizeof(int);//获取数组的指针//实际上获取数据的首地址int*p1=arr;int*p2=&arr[0];printf("%p\n",p1);printf("%
代码随想录|二叉树|06翻转二叉树
Paper Clouds
算法数据结构c++leetcode
leetcode:226.翻转二叉树-力扣(LeetCode)题目翻转一棵二叉树。思路整棵树以root节点所处的中轴线为轴进行翻转,我们需要做的就是翻转每一个节点的左右孩子。我们在遍历的过程中进行翻转,那么递归和迭代都是可以做的。递归法递归三部曲(1)确定递归函数的参数和返回值参数就是根节点root,返回的也是根节点,所以是TreeNode型。(2)确定终止条件当前节点为空的时候就返回。(3)递归
集合框架
天子之骄
java数据结构集合框架
集合框架
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。
简单介绍:
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi
Table Driven(表驱动)方法实例
bijian1013
javaenumTable Driven表驱动
实例一:
/**
* 驾驶人年龄段
* 保险行业,会对驾驶人的年龄做年龄段的区分判断
* 驾驶人年龄段:01-[18,25);02-[25,30);03-[30-35);04-[35,40);05-[40,45);06-[45,50);07-[50-55);08-[55,+∞)
*/
public class AgePeriodTest {
//if...el
Jquery 总结
cuishikuan
javajqueryAjaxWebjquery方法
1.$.trim方法用于移除字符串头部和尾部多余的空格。如:$.trim(' Hello ') // Hello2.$.contains方法返回一个布尔值,表示某个DOM元素(第二个参数)是否为另一个DOM元素(第一个参数)的下级元素。如:$.contains(document.documentElement, document.body); 3.$
面向对象概念的提出
麦田的设计者
java面向对象面向过程
面向对象中,一切都是由对象展开的,组织代码,封装数据。
在台湾面向对象被翻译为了面向物件编程,这充分说明了,这种编程强调实体。
下面就结合编程语言的发展史,聊一聊面向过程和面向对象。
c语言由贝尔实
linux网口绑定
被触发
linux
刚在一台IBM Xserver服务器上装了RedHat Linux Enterprise AS 4,为了提高网络的可靠性配置双网卡绑定。
一、环境描述
我的RedHat Linux Enterprise AS 4安装双口的Intel千兆网卡,通过ifconfig -a命令看到eth0和eth1两张网卡。
二、双网卡绑定步骤:
2.1 修改/etc/sysconfig/network
XML基础语法
肆无忌惮_
xml
一、什么是XML?
XML全称是Extensible Markup Language,可扩展标记语言。很类似HTML。XML的目的是传输数据而非显示数据。XML的标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。是W3C的推荐标准。
二、为什么学习XML?
用来解决程序间数据传输的格式问题
做配置文件
充当小型数据库
三、XML与HTM
为网页添加自己喜欢的字体
知了ing
字体 秒表 css
@font-face {
font-family: miaobiao;//定义字体名字
font-style: normal;
font-weight: 400;
src: url('font/DS-DIGI-e.eot');//字体文件
}
使用:
<label style="font-size:18px;font-famil
redis范围查询应用-查找IP所在城市
矮蛋蛋
redis
原文地址:
http://www.tuicool.com/articles/BrURbqV
需求
根据IP找到对应的城市
原来的解决方案
oracle表(ip_country):
查询IP对应的城市:
1.把a.b.c.d这样格式的IP转为一个数字,例如为把210.21.224.34转为3524648994
2. select city from ip_
输入两个整数, 计算百分比
alleni123
java
public static String getPercent(int x, int total){
double result=(x*1.0)/(total*1.0);
System.out.println(result);
DecimalFormat df1=new DecimalFormat("0.0000%");
百合——————>怎么学习计算机语言
百合不是茶
java 移动开发
对于一个从没有接触过计算机语言的人来说,一上来就学面向对象,就算是心里上面接受的了,灵魂我觉得也应该是跟不上的,学不好是很正常的现象,计算机语言老师讲的再多,你在课堂上面跟着老师听的再多,我觉得你应该还是学不会的,最主要的原因是你根本没有想过该怎么来学习计算机编程语言,记得大一的时候金山网络公司在湖大招聘我们学校一个才来大学几天的被金山网络录取,一个刚到大学的就能够去和
linux下tomcat开机自启动
bijian1013
tomcat
方法一:
修改Tomcat/bin/startup.sh 为:
export JAVA_HOME=/home/java1.6.0_27
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_H
spring aop实例
bijian1013
javaspringAOP
1.AdviceMethods.java
package com.bijian.study.spring.aop.schema;
public class AdviceMethods {
public void preGreeting() {
System.out.println("--how are you!--");
}
}
2.beans.x
[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization
bit1129
serialization
enableComplexMapKeySerialization配置项的含义
Gson在序列化Map时,默认情况下,是调用Key的toString方法得到它的JSON字符串的Key,对于简单类型和字符串类型,这没有问题,但是对于复杂数据对象,如果对象没有覆写toString方法,那么默认的toString方法将得到这个对象的Hash地址。
GsonBuilder用于
【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题
bit1129
Stream
包括Spark Streaming在内的实时计算数据可靠性指的是三种级别:
1. At most once,数据最多只能接受一次,有可能接收不到
2. At least once, 数据至少接受一次,有可能重复接收
3. Exactly once 数据保证被处理并且只被处理一次,
具体的多读几遍http://spark.apache.org/docs/lates
shell脚本批量检测端口是否被占用脚本
ronin47
#!/bin/bash
cat ports |while read line
do#nc -z -w 10 $line
nc -z -w 2 $line 58422>/dev/null2>&1if[ $?-eq 0]then
echo $line:ok
else
echo $line:fail
fi
done
这里的ports 既可以是文件
java-2.设计包含min函数的栈
bylijinnan
java
具体思路参见:http://zhedahht.blog.163.com/blog/static/25411174200712895228171/
import java.util.ArrayList;
import java.util.List;
public class MinStack {
//maybe we can use origin array rathe
Netty源码学习-ChannelHandler
bylijinnan
javanetty
一般来说,“有状态”的ChannelHandler不应该是“共享”的,“无状态”的ChannelHandler则可“共享”
例如ObjectEncoder是“共享”的, 但 ObjectDecoder 不是
因为每一次调用decode方法时,可能数据未接收完全(incomplete),
它与上一次decode时接收到的数据“累计”起来才有可能是完整的数据,是“有状态”的
p
java生成随机数
cngolon
java
方法一:
/**
* 生成随机数
* @author
[email protected]
* @return
*/
public synchronized static String getChargeSequenceNum(String pre){
StringBuffer sequenceNum = new StringBuffer();
Date dateTime = new D
POI读写海量数据
ctrain
海量数据
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming
mysql 日期格式化date_format详细使用
daizj
mysqldate_format日期格式转换日期格式化
日期转换函数的详细使用说明
DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. The&n
一个程序员分享8年的开发经验
dcj3sjt126com
程序员
在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。
明确入行的目的
很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML, DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容
android欢迎界面淡入淡出效果
dcj3sjt126com
android
很多Android应用一开始都会有一个欢迎界面,淡入淡出效果也是用得非常多的,下面来实现一下。
主要代码如下:
package com.myaibang.activity;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.CountDown
linux 复习笔记之常见压缩命令
eksliang
tar解压linux系统常见压缩命令linux压缩命令tar压缩
转载请出自出处:http://eksliang.iteye.com/blog/2109693
linux中常见压缩文件的拓展名
*.gz gzip程序压缩的文件
*.bz2 bzip程序压缩的文件
*.tar tar程序打包的数据,没有经过压缩
*.tar.gz tar程序打包后,并经过gzip程序压缩
*.tar.bz2 tar程序打包后,并经过bzip程序压缩
*.zi
Android 应用程序发送shell命令
gqdy365
android
项目中需要直接在APP中通过发送shell指令来控制lcd灯,其实按理说应该是方案公司在调好lcd灯驱动之后直接通过service送接口上来给APP,APP调用就可以控制了,这是正规流程,但我们项目的方案商用的mtk方案,方案公司又没人会改,只调好了驱动,让应用程序自己实现灯的控制,这不蛋疼嘛!!!!
发就发吧!
一、关于shell指令:
我们知道,shell指令是Linux里面带的
java 无损读取文本文件
hw1287789687
读取文件无损读取读取文本文件charset
java 如何无损读取文本文件呢?
以下是有损的
@Deprecated
public static String getFullContent(File file, String charset) {
BufferedReader reader = null;
if (!file.exists()) {
System.out.println("getFull
Firebase 相关文章索引
justjavac
firebase
Awesome Firebase
最近谷歌收购Firebase的新闻又将Firebase拉入了人们的视野,于是我做了这个 github 项目。
Firebase 是一个数据同步的云服务,不同于 Dropbox 的「文件」,Firebase 同步的是「数据」,服务对象是网站开发者,帮助他们开发具有「实时」(Real-Time)特性的应用。
开发者只需引用一个 API 库文件就可以使用标准 RE
C++学习重点
lx.asymmetric
C++笔记
1.c++面向对象的三个特性:封装性,继承性以及多态性。
2.标识符的命名规则:由字母和下划线开头,同时由字母、数字或下划线组成;不能与系统关键字重名。
3.c++语言常量包括整型常量、浮点型常量、布尔常量、字符型常量和字符串性常量。
4.运算符按其功能开以分为六类:算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符和条件运算符。
&n
java bean和xml相互转换
q821424508
javabeanxmlxml和bean转换java bean和xml转换
这几天在做微信公众号
做的过程中想找个java bean转xml的工具,找了几个用着不知道是配置不好还是怎么回事,都会有一些问题,
然后脑子一热谢了一个javabean和xml的转换的工具里,自己用着还行,虽然有一些约束吧 ,
还是贴出来记录一下
顺便你提一下下,这个转换工具支持属性为集合、数组和非基本属性的对象。
packag
C 语言初级 位运算
1140566087
位运算c
第十章 位运算 1、位运算对象只能是整形或字符型数据,在VC6.0中int型数据占4个字节 2、位运算符: 运算符 作用 ~ 按位求反 << 左移 >> 右移 & 按位与 ^ 按位异或 | 按位或 他们的优先级从高到低; 3、位运算符的运算功能: a、按位取反: ~01001101 = 101
14点睛Spring4.1-脚本编程
wiselyman
spring4
14.1 Scripting脚本编程
脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行;
如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦;
如果我们的应用不允许重启,这在现实的情况中也是很常见的;
在spring中使用脚本编程给上述的应用场景提供了解决方案,即动态加载bean;
spring支持脚本