题目描述样例输入3152111153样例输出FFT代码如下:#includeusingnamespacestd;longlongm,a;intmain(){cin>>m;for(inti=1;i>a;longlongt=a,n[10],cc=0,s=0;while(t!=0){//求位数与拆位n[cc]=t%10;t=t/10;cc++;}for(intj=0;j
Qt中多线程模块的使用
图灵,图灵,图个机灵
Qt开发qtc++
Qt中多线程模块的使用随着多核处理器的流行,并发编程已经得到普及。CC++已经有线程库了,Qt早些时候就有了自己的线程库,为多线程操作提供了完整的支持。QThread提供了跨平台的管理线程的方法。一个QThread类的对象管理一个线程,一般从QThread继承一个自定义类,并重写虚函数run(),在run()函数里实现自己的业务操作。创建好线程类之后,创建该类的对象,并调用start()开始执行工
【C++】c++入门,认识c++版本的Hello world!
崽崽..
c++
Hello,everybody!在c语言,数据结构初阶学完之后,咱们就要开始c++的学习了。关于c++的语法,有很多是为了弥补c语言的不足。在咱们学习c++的过程中,随着你对c++语法掌握的越来越熟练。我相信你会逐渐爱上c++。那我们直接进入正题。1.c++兼容cc++兼容c的意思就是百分之99的c语法在c++中同样适用。在text.cpp文件中写标准的c语言同样可以运行。2.cin,cout那既
新手如何学习学嵌入式开发?
华清远见成都中心
学霸笔记学习
新手如何学习嵌入式开发?这个问题相信是困扰所有嵌入式初学者的难题,下面的内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路&数字电路。1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turboc编译器为开发环境,联系C语言编程;安装vc++6.0学习C++编程。2、操作系统,先在电脑上安装一个
【CC++】基础:内存管理
Fat one
c语言c++java
【C/C++】基础:内存管理文章目录【C/C++】基础:内存管理一、C/C++内存分布二、C的动态内存管理三、C++的动态内存管理3.1new和delete3.2operatornew与operatordelete函数四、定位new五、区分5.1malloc/free和new/delete的区别:5.2delete与delete[]的区别5.2delete与delete[]的区别代码将会放到:ht
【CC++】基础:模板
Fat one
c语言c++开发语言
【C/C++】基础:模板代码将会放到:https://gitee.com/liu-hongtao-1/c–c–review.git,欢迎查看;欢迎各位点赞、评论、收藏与关注,大家的支持是我更新的动力,我会继续不断地分享更多的知识;文章多为学习笔记,以综述学习的重点为主,可能有一些细节没有提及或把握不到位,感谢理解;一、泛型编程现有问题:C++提供的函数重载,可以处理参数类型不同功能相同的函数。但是
【基础算法练习】前缀和与差分模板
戊子仲秋
基础算法练习算法c++开发语言
文章目录前缀和算法思想差分算法思想C++版本的前缀和模板一维前缀和二维前缀和C++版本的差分模板一维差分二维差分前缀和算法思想用O(N)的复杂度构建前缀和数组,通过这种方式达成O(1)的时间来得到区间和,说是一种算法,其实可以说是一种常用的算法思想差分算法思想用O(N)的复杂度构建差分数组,通过这种方式达成O(1)的时间让一个区域内的值同时+CC++版本的前缀和模板一维前缀和vectorv(N),
golang devops项目实战 - 为什么选择go语言
chengshen1136
先来聊聊go有趣的历史在google中,大部分的项目都是采用CC++开发,少量地用了java,其次才是python;在2007年的某一天,google的首席工程师在编译一个C++项目过程中,尽管在google早就实现了分布式编译系统,但是RobPike和RobertGriesemer实在受够了那个漫长的编译等待时间,于是突发灵感与坐在旁边的KenThompson一起讨论实在有必要发明一个新的编程语
C语言文件/流函数getc/putc,gets/puts, fgetc/fputc, fputs,fprintf一篇文章全记住
warmingsummer
就业班视频学习c语言学习开发语言
bilibili课程:CC++就业班视频C#/C++全栈高级开发工程师就业班(完结)_哔哩哔哩_bilibiliputchar()和getchar(),fputchar()和fgetcharputc()和getc(),fputc()和fgetc()puts()和gets(),fputs()和fgets()printf()和sprintf(),fprintf()scanf()和sscanf(),fs
JAVA学习笔记
一心急就越位了
第一章入门1.1计算机发展史和未来方向第一代语言机器语言第二代语言汇编语言goto语法第三代语言javacc++1.2常见语言介绍CC++面向对象效率高Java最主流PHPweb开发、中小型网站开发Object-C&Swiftios开发JavaScriptH5开发核心就是JavaScript,其次HTML5\CSSPython图形处理、科学计算、web变成、人工智能C#微软、用来抗衡Java,运行
速通CSAPP(二)信息的表示和处理
灰海宽松
#CSAPPc语言数据结构
Ch2.信息的表示与处理说实话,这部分的东西我到大四了,我觉得我看过不下10遍了。原码反码补码浮点运算之类的。本章重点主要包括三种数:无符号数:表示大于等于零的数。有符号数:通常用补码表示。浮点数:小数。CSAPP主要讲解CC++的数据表示方法,java有些不同。内存空间计算机寻址并不是按一个个二进制位来找的,通常是8位二进制位组成的一个字节是最小的寻址单元。内存可以被视作一个字节数组,虚拟内存。
阿里云 云网络c/c++研发暑期实习面经
零声教育
面经集合c++面试编程语言linuxjava
2022年秋招/春招/提前批/大厂面经整理(持续更新中~)阿里云云网络cc++研发暑期实习面经记人生第一次面试三月份看到学长在群里发了实习生招聘内推,看到有c++岗位,于是抱着试一试的态度写了一个个人简历然后交给了我的学长,第二天面试官就联系我了。3月3日,3月5日一面30min3月3日面试官打来电话问有没有时间聊一聊,我以为是就聊聊我的个人情况然后约个时间面试,就和面试官唠唠学习情况,聊着聊着开
JVM调优(10)JVM的运行时数据区
蘑菇蘑菇不会开花~
JVM调优jvm
一、概述对于CC++来说,在内存管理领域,JVM既拥有最高的权利,但是同时他们又是从事最基础工作的劳动人员,因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说,再虚拟机自动内存管理的帮助下,不再需要为每一个new操作去分配内存,不容易出现内存泄漏和内存溢出的情况,但是因为我们Java程序员不用管理内存,所以一旦出现内存问题,很容易让我们手忙脚乱,所以呢我们必须要了解Java虚拟器的
C++与C的区别 day1
[小瓜]
励志学习C瓜瓜c++c语言
头文件与命名空间创建的源文件是.cpp,头文件没有变化,依然的.h文件包含目录C语言中的:采用原来的方式包含可以用C++包含方式,去掉.h加个cC++的标准输入输出头文件是iostream命名空间的引入命名语法//1.基本创建空间方法namespace空间名{inta;voidprint(){}}//2.学会访问命名空间中的东西,用空间名限定去访问intmain(){空间名::a=1;空间名::p
CC++位运算概述与应用(二)
chenyu_max
在上篇C/C++位运算概述与应用(一)讲了位运算的概述,要明白位运算是在二进制中的运算方式,所有其他进制的数在进行位运算时都要先转化成二进制数再进行运算。所以,位运算是一种十分高效的运算,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段。如果能把位运算运用的神出鬼没,很多程序都将十分精妙。那么今天我们就来看看位运算能进行哪些应用吧。1.判断某个数的奇偶相信大多数人第一思维
2022-07-22
Michael0016
利用关键字[extern],可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。一、引用同一个文件中的变量#includeintfunc();intmain(){func();//1printf("%d",num);//2return0;}intnum=3;intfunc(){printf("%d\n",num);}二CC++混合开发add.cintadd(){
【数据结构C/C++】双向链表的增删改查
ZhangBlossom
考研408数据结构数据结构c语言c++
文章目录CC++对我个人而言,在开发过程中使用的比较多的就是双向链表了。很多重要的代码优化都会使用到基于双向链表实现的数据机构。比如我们常用的HashMap,我们知道Key其实是无序存放的,而LinkedHashMap底层使用HashMap+双向链表的方式实现了对key的有序遍历。双向链表的一些重要特点和优点:双向遍历:双向链表具有两个指针,一个指向前一个节点(前驱),一个指向后一个节点(后继)。
【C++学习笔记】 C++特点
MR_Promethus
C++c++学习笔记
静态类型使用编译执行的编程语言,使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。也就是说在写程序时要声明所有变量的数据类型。兼容CC++是C的一个超集,事实上,任何合法的C程序都是合法的C++程序。完全支持面向对象的程序设计面向对象开发的四大特性:封装、抽象、继承、多态。ANSI标准ANSI标准是为了确保C++的便携性——您所编写的代码在Mac、UNIX、Windows、
Android jni引用第三方so动态库和.a静态库并且调用(c)方法
Arisono
AndoridJNIandroidc语言开发语言
最近花了一周时间来入门学习AndroidJNI方面的知识,因为后续的工作很多需要用到cc++库,我需要用jni来包装一下c函数,来提供给上次java调用。总之多学点知识对自己有好处。案例效果:上文我们讲解了androidstudiocmake生成.a文件(静态库)及调用(cc++)静态库.a本文接着上文,这次我们利用JNI来引用第三方动态库so文件,并且让Java调用它的函数。第一步:生成.so动
ndk开发-交叉编译
wildlily8427
androidndk开发ndk交叉编译
为什么要使用交叉编译:在linux系统一般使用cc++编译可执行程序或者so库文件。该程序只能在当前linux系统执行,为了将生成文件可以再android平台运行,必须使用交叉编译。ndk中提供了跟多android平台交叉编译链,所以首先下载ndk工具。ndk旧版本与新版本的编译链工具有改变,所以新版本与旧版本交叉编译的环境配置不同。NDK官网:https://developer.android.
C语言和C++的区别
喜欢摄影的pengpeng->code
c++
C语言和C++的区别//C语言——(1)没有标准模板库(2)没有封装,编程不规范(3)需要自己初始化和销毁,容易遗漏。//C++——封装----class----构造函数+析构函数、深浅拷贝、运算符重载、引用、函数重载......////C++学习中我们要看到编译器做了更多的事情(把复杂的细节隐藏起来了)//CC++//STst;STst;////....//....//StackPush(&st
程序员必须要掌握的三种语言,小心被淘汰……
C语言学习圈1
程序员必须要掌握的三种语言,小心被淘汰……随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,从排行榜上第一名Java、CC++、python。随之带来的变化就是程序员需要跟进学习的语言也很多。但是语言这么多不可能都去一一掌握,在当前形式下,最需要掌握的三种编程语言。评判的标准是不过时,说的直白些就是找工作比较容易,能扩充自己的知识体系,能让自己的编程之路走的更加顺畅。C语言,几乎是所有语
CC++ 程序计时方法的总结(windows API下)
CarnivoreRabbit
VSC++c++c语言windows
C/C++程序计时方法的总结(Windows)文章目录C/C++程序计时方法的总结(Windows)1.time.h下的方法1.1C语言下的time()函数1.2C++下的clock()函数2.windows.h下的方法2.1GetTickCount()2.2QueryPerformanceCounter()3.C++11标准后的chrono库参考资料1.time.h下的方法1.1C语言下的tim
01:View C++ as a federation of languages
一世长安乱
将C++视为一个由相关语言组成的联邦而非单一的语言C++包含四个次要语言CC++仍是以C为基础。区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-indatatypes)、数组(arrays)、指针(pointers)。但是C语言没有模板(templates)、异常(exceptions)、重载(overloading)……Obje
【Go语言】Golang保姆级入门教程 Go初学者介绍chapter1
小胡的博客号Aoife艺馨
golang开发语言后端
Golang开山篇Golang的学习方向区块链研发工程师:去中心化虚拟货币金融Go服务器端、游戏软件工程师:CC++处理日志数据打包文件系统数据处理很厉害处理大并发Golang分布式、云计算软件工程师:盛大云cdn京东消息推送分布式文件系统2、Golang的应用领域区块链应用:区块链也是分布式账本技术是一种互联网数据库技术特点是去中心化公开透明就是每个人都可以参与数据库记录后端服务器端的开发:美团
【2023】华为OD机试真题Java CC++ Python JS Go-题目0251-跳格子2
AmosCloud2013
华为odjavac语言pythonc++
题目0251-跳格子2题目描述小明和朋友玩跳格子游戏,有n个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择以任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈;给定一个代表每个格子得分的非负整数数组,计算能够得到的最高分数。输入描述给定一个数例,第一个格子和最后一个格子首尾相连,如:232输出描述输出能够得到的最高分,如:3备注1≤nums.length≤1001\leqnu
【2023】华为OD机试真题Java CC++ Python JS Go-题目0252-密钥格式化
AmosCloud2013
华为odpythonjavac++c语言
题目0252-密钥格式化题目描述给定一个非空字符串SSS,其被NNN个-分隔成N
【2023】华为OD机试真题Java CC++ Python JS Go-题目0250-选修课
AmosCloud2013
华为odjavac语言pythonjavascript
题目0250-选修课题目描述现有两门选修课,每门选修课都有一部分学生选修,每个学生都有选修课的成绩,需要你找出同时选修了两门选修课的学生,先按照班级进行划分,班级编号小的先输出,每个班级按照两门选修课成绩和的降序排序,成绩相同时按照学生的学号升序排序。输入描述第一行为第一门选修课学生的成绩,第二行为第二门选修课学生的成绩,每行数据中学生之间以英文分号分隔,每个学生的学号和成绩以英文逗号分隔,学生学
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设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&