- Elasticsearch创建快照与快照恢复
写bug的羊羊
elasticsearchelasticsearch大数据
使用了kibana进行请求发送1.旧es创建快照1.查看elasticsearch.yml配置的仓库路径,没有添加上,重启espath.repo:["E:/develop/elasticsearch-7.9.3/backups"]2.注册仓库,如仓库名backup1PUT/_snapshot/backup1{"type":"fs","settings":{"location":"backup1"}
- Openstack Neutron 专题
1.构架2.代码3.cmdneutronnet-listneutronrouter-listneutronsecurity-group-listneutronsecurity-group-showb4850001-security-group-idneutronsecurity-group-rule-listneutronsecurity-group-rule-show2ca442c7-secur
- PF4J+SpringBoot
QingyunChen
javaspringboot后端java
plugin-commonpom.xml相关配置pub.qingyunplugin-common0.0.1-SNAPSHOT插件配置类org.pf4jpf4j3.12.0org.apache.maven.pluginsmaven-assembly-plugintruecommon-impl0.0.1jar-with-dependenciesmake-assemblypackagesingle插件服
- Ubuntu下ffmpeg源码编译详解
v奶油爆米花
ffmpegubuntulinux
最近需要使用可以编码H265码流的ffmpeg,需要先将修改后的源码编译,查找了网友编译文章(本人稍有修改),记录如下1、下载源码可编码H265的FFmpeg源码下载地址:https://gitee.com/xia-chu/FFmpeg.git2、解压并创建生成目录ffmpegtest放编译的库文件makedir/root/ffmpegtest//创建生成目录ffmpeg-snapshot.tar
- AAAI 2024 | 细节决定成败:基于Mamba的联合展开网络用于快照光谱压缩成像
小白学视觉
计算机顶会顶刊论文解读AAAI计算机顶会论文解读深度学习
论文信息题目:DetailMatters:Mamba-InspiredJointUnfoldingNetworkforSnapshotSpectralCompressiveImaging细节决定成败:基于Mamba的联合展开网络用于快照光谱压缩成像作者:MengjieQin,YuchaoFeng,ZongliangWu,YulunZhang,XinYuan源码:https://github.com
- HarmonyOS开发:组件截图-@componentSnapshot
「已注销」
HarmonyOS鸿蒙OpenHarmony前端javascript开发语言oracle鸿蒙harmonyos数据库
本模块提供获取组件截图的能力,包括已加载的组件的截图和没有加载的组件的截图。组件截图只能够截取组件大小的区域,如果组件的绘制超出了它的区域,或子组件的绘制超出了父组件的区域,这些在组件区域外绘制的内容不会在截图中呈现。兄弟节点堆叠在组件区域内,截图不会显示兄弟组件。本模块首批接口从APIversion10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。对于使用XComponent的
- Passive Snapshot Coded Aperture Dual-Pixel RGB-D Imaging, CVPR 2024解读
吃饭睡觉发paper
python人工智能开发语言
一、论文核心贡献解析问题驱动传统RGB-D成像的瓶颈:主动光(如ToF、结构光)依赖环境光稳定性,被动方法(双目、单目)依赖纹理或运动,且双像素(Dual-Pixel)传感器的深度估计受限于散焦模糊的稀疏性。本文目标:设计一种无需主动光源、单次快照即可获取高精度RGB-D的被动成像系统,克服动态场景和低纹理下的深度估计问题。核心创新点编码孔径+双像素传感器的融合:编码孔径:通过空间调制点扩散函数(
- 【openwrt-21.02】openwrt-21.02 T750 MT7916 WiFi联盟认证10351/10340 Fail问题解决方案
wellnw
WiFiDriver功能实现及问题处理WiFi
Openwrt版本NAME="OpenWrt"VERSION="21.02-SNAPSHOT"ID="openwrt"ID_LIKE="ledeopenwrt"PRETTY_NAME="OpenWrt21.02-SNAPSHOT"VERSION_ID="21.02-snapshot"HOME_URL="https://openwrt.org/"BUG_URL="https://bugs.openw
- [openwrt-21.02]openwrt-21.02 package软件包Makefile中PKG_MIRROR_HASH和PKG_SOURCE_VERSION说明
Openwrt版本NAME="OpenWrt"VERSION="21.02-SNAPSHOT"ID="openwrt"ID_LIKE="ledeopenwrt"PRETTY_NAME="OpenWrt21.02-SNAPSHOT"VERSION_ID="21.02-snapshot"HOME_URL="https://openwrt.org/"BUG_URL="https://bugs.openw
- 【openwrt-21.02】openwrt-21.02 T750 开机点亮LED灯实现
wellnw
功能实现及问题处理openwrt
Openwrt版本NAME="OpenWrt"VERSION="21.02-SNAPSHOT"ID="openwrt"ID_LIKE="ledeopenwrt"PRETTY_NAME="OpenWrt21.02-SNAPSHOT"VERSION_ID="21.02-snapshot"HOME_URL="https://openwrt.org/"BUG_URL="https://bugs.openw
- 【Elasticsearch】安全地删除快照仓库、快照
安全地删除快照仓库、快照1.删除仓库2.删除快照在上一篇博文《【Elasticsearch】快照与恢复功能详解》中,我们针对Elasticsearch的快照和恢复功能进行的讲解。细心的同学可能会对以下的命令产生疑惑,直接删除是安全的吗?本文将会给你答案。删除仓库:DELETE/_snapshot/my_backup_repo删除快照:DELETE/_snapshot/my_backup_repo/
- AWS架构师
咸鱼一条_o.0?!
aws云计算
AWS架构师部分定义S3(S3存储桶)EC2弹性计算云EBS弹性块存储SNAPSHOT快照AMI:EC2镜像ELB弹性负载均衡器EFSDATABASEDATAWAREHOUSEOLTPOLAPElastiCacheVPCRoute53部分定义UserGroup:用户组下的用户继承该用户组所有权限Policy:Jasonformat:类似文字描述,指定object的类型。给user和group提供权
- dubbo的简单示例
yinhaijun
构建过程dubbo服务有服务方provider和消费方consumer,整个项目用tomcat做容器,在创建demo之前请先安装zookeeper项目结构如图image.pngimage.pngimage.png主pom.xml4.0.0com.haijunyindubbodemo-simple-parentpom1.0-SNAPSHOTdubbodemo-simple-providerdubbo
- 从AWS MySQL数据库下载备份到S3的完整解决方案
AWS官方合作商
数据库awsmysql
本文将介绍两种主流方法将AWSRDSMySQL数据库备份下载到S3,适用于生产环境需求。方法一:通过RDS快照导出(AWS原生方案)适用场景:全量备份、大数据量、无需额外计算资源流程:创建数据库快照进入AWSRDS控制台→选择目标MySQL实例→点击"操作"→"拍摄快照"输入快照名称(如my-db-snapshot-2024)配置S3导出任务在RDS控制台左侧菜单选择快照→选择刚创建的快照点击"操
- 阿里云Centos镜像源和EPEL源
weixin_34399060
运维
Centos配置yum本地源aliyun的EPEL源1、本地yum源[root@openstack~]#mount/dev/sr0/mnt/[root@openstack~]#echo"/dev/sr0/mntiso9660defaults00">>/etc/fstab[root@openstack~]#rm-rf/etc/yum.repos.d/*[root@openstack~]#cat>/e
- 博客摘录「 华为云平台-FusionSphere OpenStack 8.2.1 系统加固」2025年7月15日
编号加固项"风险等级"加固原理/Rationale审计方法/Audit期望结果/ExpectResults加固方法/Remediation1OpenSSH加固配置1.1OpenSSH加固配置1.1.1SSH使用的版本H"OpenSSHV2版本在安全性能、方便性上有所提高,默认使用V2版本。如果用户根据实际需要采用V1版本,可登录主机将数值修改为“1”。"查看/etc/ssh/sshd_config
- 低版本hive(1.2.1)UDF实现清除历史分区数据
༺水墨石༻
hivehiveUDFhivehadoop数据仓库
目标:通过UDF实现对表历史数据清除入参:表名、保留天数N一、pom文件4.0.0com.examplehive-udf-example1.0-SNAPSHOTjarhive-udf-exampleHiveUDFfordeletingpartitionsbydateUTF-81.81.8org.apache.hivehive-exec1.2.1org.apache.hivehive-metasto
- 【MyBatis-Plus】基础功能测试
zhxvictory
java
MyBatis-Plus的基础使用方法包括:自动填充,乐观锁,查询,逻辑删除这里用的是SpringBoot版本是------2.2.1.RELEASEpom.xml4.0.0org.springframework.bootspring-boot-starter-parent2.2.1.RELEASEcom.zxmpdemo010.0.1-SNAPSHOTmpdemo01mpdemo011.8org
- python 64式: 第27式、分布式锁与群组管理__2、tooz应用之负载均衡
天地一扁舟
python64式
python中分布式锁与群组管理系列最近有接触到分布式锁的相关问题。基于openstack相关组件源码,tooz官网文档和自己对组件使用的一点点心得,想整理一下这部分的内容。主要想分为四个部分介绍:分布式锁与群组管理1、tooz介绍分布式锁与群组管理2、tooz应用之负载均衡分布式锁与群组管理3、tooz应用之分布式锁分布式锁与群组管理4、tooz源码分析下面是第2部分的内容1引言ceilomet
- 项目构建错误:com.mabang:wms-api:0.0.1-SNAPSHOT 的不可解析父 POM
Roam-G
SpringBootmaven
报错信息:Projectbuilderror:Non-resolvableparentPOMforcom.mabang:wms-api:0.0.1-SNAPSHOT:Couldnottransferartifactorg.springframework.boot:spring-boot-starter-parent:pom:2.2.2.RELEASEfrom/tonexus(http://192.
- ‘parent.relativePath‘ of POM com.xx:xxxxx:1.0-SNAPSHOT points at com.example:zzu_gtp instead
余677
springboot
在父工程pom文件下添加spring-boot-starter-parentorg.springframework.boot2.7.3变成spring-boot-starter-parentorg.springframework.boot2.7.3然后刷新maven就行了
- TPAMI 2024 | 利用相机原始快照进行高效的视觉计算
小白学视觉
论文解读IEEETPAMI数码相机TPAMI深度学习顶刊论文论文解读
题目:EfficientVisualComputingWithCameraRAWSnapshots利用相机原始快照进行高效的视觉计算作者:ZhihaoLi;MingLu;XuZhang;XinFeng;M.SalmanAsif;ZhanMa源码链接:https://njuvision.github.io/rho-vision摘要传统相机在传感器上捕获图像辐照度(RAW),并使用图像信号处理器(IS
- OpenStack
架构介绍:OpenStack架构全景图核心服务组件全局组件:Keystone认证服务:提供身份验证,服务发现和分布式多租户授权;管理全局认证和授权的组件;Ceilometer计量服务:监控集群的状态,监控集群虚拟机的使用量;Horizon界面管理服务:提供基于Web的控制界面,使云管理员和用户能够管理各种OpenStack资源和服务;控制台可以控制OpenStack架构内部的所有功能;依赖于Key
- openstack 扩展开发最佳实践之计算节点高可用
手机版网站
前言:注意是扩展开发,这个词是我杜撰的,大概意思是指基于openstack的restapi做的一些开发,用于辅助相关功能,而不是直接改动openstack内的代码,怎么修改添加openstack各个组件的代码不在此文章内容内。首先,千万,千万,千万不要用Openstack提供的SDK,原因如下。一,SDK的相关文档并不健全。二,版本不够统一,即兼容的问题。所以不要使用openstack的SDK而是
- 给OpenStack扩展自定义功能
jmppok
云计算openstack
转自:http://quake.iteye.com/blog/1343584得益于OpenStack的良好架构,对OpenStack进行扩展非常方便,每个模块都留出了各种接口和扩展点,能够让用户扩展自定义功能。下面以操作记录为例子,介绍一下如何扩展nova-api组件。需求:用户的一些重要操作必须记录下来,方便进行事后查询,比如instance的创建、销毁,比如公网IP的申请、分配等等。实现:因为
- OpenStack 扩展镜像和虚拟机实例目录大小
chenjiang7359
参考:https://blog.csdn.net/Tomstrong_369/article/details/52574090https://blog.csdn.net/chinagissoft/article/details/504413011、镜像默认存放目录:/etc/glance/glance-api.conffilesystem_store_datadir=/var/lib/glance
- OpenStack入门体验
ASDyushui
openstack
目录一.云计算概述1.什么是云计算2.云计算的服务模型(1).laaS(2).PaaS(3).Saas3.OpenStack概述(1).OpenStack起源(2).什么是OpenStack(3).OpenStack优势二.部署Openstack1.系统描述2.设置在线安装3.系统基本环境设置4.设置KVM源5.设置openstack仓库6.安装部署工具7.一键安装一.云计算概述1.什么是云计算云
- Oracle Data Guard之Snapshot Standby(快照备库)
学无止境的小一
oracle数据库
前言在日常工作中,有时会有一些需求,那就是需要用到生产环境的数据进行测试,如果按照常规方法,通过备份恢复到测试库进行测试的话,数据库体积越大恢复的速度越慢。在这种情况下我们可以使用SnapshotStandby(快照备库)来进行一些测试操作。SnapshotStandby的介绍Oracle11g中的DataGuard不仅引入了ActiveDataGuard实时查询特性,还提供了snapshotst
- oracle控制文件快照,Oracle快照控制文件理解
##Oracle快照控制文件??快照控制文件(snapshotcontrolfile),顾名思义就是Oracle控制文件的一个副本或者备份。快照控制文件并不多见,在使用RMAN的时候这个快照控制文件才会被使用。控制文件简单介绍控制文件是Oracle的重要组成部分,记录了当前数据库的结构信息,同时也包含数据文件,日志文件,归档的信息。记录数据库当前的SCN。1.什么是快照控制文件1)为什么要有快照控
- oracle快照点,oracle 快照(snapshot) 管理
皮皮波
oracle快照点
----手工创建oracle快照BEGINDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();END;/---删除快照具体快照信息可以查看视图DBA_HIST_SNAPSHOTBEGINDBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id=>22,high_snap_id=>32,dbid=>3310
- java线程Thread和Runnable区别和联系
zx_code
javajvmthread多线程Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
- 【转】JSON与XML的区别比较
丁_新
jsonxml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
- c++ 实现五种基础的排序算法
CrazyMizzz
C++c算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
- 我的软件
麦田的设计者
我的软件音乐类娱乐放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
- linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
- 各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
- oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
- tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
- 遍历的方法
百合不是茶
遍历
遍历
在java的泛
- linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
- java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
- 【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
- 【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
- 通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
- java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
- Netty源码学习-ReplayingDecoder
bylijinnan
javanetty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
- js特殊字符过滤
cngolon
js特殊字符js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
- hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
- linux shell脚本中切换用户执行命令方法
daizj
linuxshell命令切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
- 好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
- Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
- linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总linux管道命令linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
- Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
- asp.net获取站点根目录下子目录的名称
hvt
.netC#asp.nethovertreeWeb Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
- Eclipse程序员要掌握的常用快捷键
justjavac
javaeclipse快捷键ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
- c++编程随记
lx.asymmetric
C++笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
- linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
- 随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
- 我认为POJO是一个错误的概念
windshome
javaPOJO编程J2EE设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&