- 粘包问题介绍
粘包问题(TCPStickiness)详解粘包问题是基于流的传输协议(如TCP)中的一种常见现象,指的是发送方连续发送的多个数据包,在接收方缓冲区中被合并成一个“大包”,导致接收方无法正确解析原始数据包的边界。为什么会出现粘包?(1)TCP协议的特性面向字节流:TCP不维护消息边界,数据被视为连续的字节流。缓冲区机制:为提高效率,TCP可能合并多次发送的小数据包(Nagle算法)。(2)发送与接收
- 让我们用流行的 3D 文件格式“glTF/glb”来增强 WebGL 的表现力吧!
在下胡三汉
3dmaxfbx
简介-什么是glTF-glTF(GL传输格式)是一种用于运行时应用程序的资产格式,它与类似OpenGL的API(WebGL、OpenGLES、OpenGL)具有高度相关性。特别是对于WebGL,它是不依赖于任何特定库的权威的成熟通用3D格式。最初,它是以COLLADA2jSON的名义开发的。这个名字出现在这里,但大约在10年前,也就是Playstation3时代,CG技术行业标准化组织Khrono
- python for android api,python-for-android
python-for-androidpython-for-androidisapackagingtoolforPythonappsonAndroid.YoucancreateyourownPythondistributionincludingthemodulesanddependenciesyouwant,andbundleitinanAPKalongwithyourowncode.Feature
- laravel无法运行php,Laravel:php artisan服务无法启动
常一二
laravel无法运行php
我在这里挖掘了其他一些答案,似乎没有什么比这更合适了.我可能最初会留下一些信息,所以请告诉我你还需要什么,谢谢!目前运行ubuntu7,使用composer和laravel两者似乎都正确安装:当我在终端输入'phpartisanserve'和'phpartisanserve--port:8000'时,我收到此错误:PHP警告:require(/home/user/Projects/thingy/b
- .gltf不同文件形式(.glb、贴图、.bin)
Threejs可视化
Three.jsThreejs
参考资料:threejs中文网threejsqq交流群:814702116.gltf不同文件形式(.glb、贴图、.bin).gltf格式模型文件,有不同的组织形式。单独.gltf文件单独.glb文件.gltf+.bin+贴图文件这些不同形式的gltf模型,加载代码其实没啥区别。//单独.gltf文件loader.load("../../工厂.gltf",function(gltf){scene.
- vbox两步解决VirtualBox共享文件夹在Windows下的符号链接创建问题
默认情况下,VirtualBox的共享文件夹特性在Windows下工作是有问题的,如果你运行一些需要符号连接(Symlink)的程序,比如默认设置的yarn或者npm,由于npm包在安装之后会在./node_modules/.bin创建在package.json中定义好的应用入口的符号连接,它会在最后一步报错。这是一个困扰了非常久的问题,我因此在这几年也一直在用vmdk(虚拟磁盘)挂载到虚拟机上来
- Python国内镜像地址及配置使用方式
源图客
工具应用Pythonpython开发语言
便捷设置pip全局镜像源pipconfigsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple一、国内镜像地址清华源:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:http://mirrors.aliyun.com/pypi/simple/清华大学:https://pypi.tuna.ts
- 如何使用 PyTorch Lightning 保存和加载检查点
喝过期的拉菲
PyTorchLightningpytorch人工智能Lighting
【PL基础】如何保存和加载检查点1.什么是检查点(checkpoint)?2.检查点有哪些内容3.如何保存检查点4.如何加载检查点5.保存超参数6.nn.Module的检查点7.禁用checkpointing8.恢复训练状态1.什么是检查点(checkpoint)? 当模型进行训练时,性能会随着它继续看到更多数据而发生变化。最佳实践是在整个训练过程中保存模型的状态。这将在模型开发过程中的每个关键
- HarmonyOS应用开发:掌握HTTP网络访问与封装技巧
引言在HarmonyOS(鸿蒙操作系统)应用开发中,网络访问是一个至关重要的环节。HTTP协议作为网络通信的基石,对于实现应用的数据交换和服务请求起着核心作用。本文将详细探讨在HarmonyOS应用开发中如何进行HTTP网络访问,包括基本的HTTP请求和响应处理,以及如何对这些操作进行封装,以提高代码的可重用性和可维护性。HarmonyOS中的HTTP网络访问使用HttpURLConnection
- python学习之路 - python的文件操作
目录一、python文件操作1、文件的编码a、概念b、编码分类2、文件的读取a、打开文件a、读取文件字节c、读取文件行d、for循环的读取3、文件的关闭4、文件的写入5、文件的追加6、文件操作综合a、案例一:读取字符个数b、案例二:复制文件一、python文件操作1、文件的编码a、概念计算机只能识别0和1,所以需要用编码技术将内容翻译成0和1b、编码分类UTF-8除非有特殊要求,否则一般都用此编码
- Pytorch Lightning使用:【LightningModule、LightningDataModule、Trainer、ModelCheckpoint】
LeapMay
pytorchlightningpytorchpython人工智能
pytorchlightning官方手册pytorchlightning官方手册Welcometo⚡PyTorchLightning—PyTorchLightning2.1.0devdocumentationhttps://lightning.ai/docs/pytorch/latest/PytorchLightning简介PyTorchLightning是面向专业AI研究人员和机器学习工程师的深
- SQL函数和存储过程的区别
_深巷的猫
sql
本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。2.对于存储过程来说可以返回参数,而函数只能返回值或
- svg全链路流程轨迹
一块小砖头儿
javascript开发语言
直接上效果exportdefault{props:{},data(){return{svgData:["0,200200,200300,300400,300400,200500,200"],};},computed:{},mounted(){},methods:{},};.circle-load-rect-svg{width:800px;}.g-rect-path{fill:none;stroke
- java:实现嵌套类信息(附带源码)
一、项目背景详细介绍在面向对象编程中,类是封装数据和行为的基本单位。Java提供了嵌套类(NestedClass)机制,使得在一个外部类中可以定义一个或多个内部类,按功能可分为:静态嵌套类(StaticNestedClass):与外部类同级别,不依赖外部类实例,可像普通类一样被静态访问。成员内部类(MemberInnerClass):定义在外部类成员位置,持有对外部类实例的隐式引用,可访问外部类的
- 【华为OD机试真题 2025B卷】770、周末爬山 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)
KJ.JK
OJ+最新华为OD机试(C++JavaPyCJS)华为odc++java华为OD机试真题2025B卷javascript周末爬山
文章目录一、题目题目描述输入输出样例1样例2二、代码与思路参考C++语言思路C++代码Java语言思路Java代码Python语言思路Python代码C语言思路C代码JS语言思路JS代码作者:KJ.JK订阅本专栏后即可解锁在线OJ刷题权限专栏介绍:最新的华为OD机试题目总结,使用C++、Java、Python、C语言、JS五种语言进行解答,每个题目的思路分析都非常详细,支持在线OJ评测刷题!!!!
- opencv 源码的裁剪,调试opencv源码以及对源码的重编译
opencv源码的裁剪,调试opencv源码以及对源码的重编译你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。如何获取模块之间的依赖关系1、安装windows版的cmake工具2、利用cmake-gui配置opencv源码的编译图片:参考链接:https://www.jianshu
- 匹配一切 学习笔记2025
AI算法网奇
python宝典计算机视觉人工智能
目录匹配一切MASAdemo:图像匹配roma匹配一切MASAMatchingAnythingBySegmentingAnything[CVPR24Highlight]git地址:https://github.com/siyuanliii/masaMethodBaseNovelmodelTETAAssocATETAAssocAOVTrack(CVPR23)35.536.927.833.6-<
- 跟rocktmq杠上了
樱桃的程序员麻麻
json
继上一次mq注册问题,今天又出现了,mq阿里云管理台显示注册成功了,但实际应用压测时,发现有2个节点并没有消费mq消息,这是为何。。昨晚压测的时候还是6个节点消费,今天变成4个了,想了想变动,今天运维调整开启启动脚本,和这个有关系?不应该啊,但是java应用也没有重新部署,除了这个变动没有其他原因了,后来运维又一波操作,但是还是注册不上,最终没办法还是找了阿里云客服,原来是因为旧的集群还在连着,但
- mq客户端注册不上去
晚上搞到12点因为一个问题,mq配置检查了,但应用起来后就是mq控制台看不到消费者,显示消费者离线的状态,后来想起rocketmq都有日志的,看/root/logs/ons.log很明显有个NumberFormat的异常,因为mq连接服务器时将地址按照:分隔,配置的是http://*****:8080,报错显示把//到8080前的冒号这一段当成了端口号了,但为什么呢,地址q控制台对接时提供的tcp
- orb-slam run rgbd data
hetongqiyue
计算机视觉slam
TUM数据集准备+RGB-D运行从这个网址下载tum数据集[http://vision.in.tum.de/data/datasets/rgbd-dataset/download]并且解压缩。使用python脚本关联RGB图像和深度图像[associate.py],[http://vision.in.tum.de/data/datasets/rgbd-dataset/tools].我们已经提供了一
- Blender glTF 2.0 导入导出插件技术文档
花锨潜Praised
BlenderglTF2.0导入导出插件技术文档glTF-Blender-IOBlenderglTF2.0importerandexporter项目地址:https://gitcode.com/gh_mirrors/gl/glTF-Blender-IO1.安装指南1.1系统要求Blender2.8及以上版本Python3.x1.2安装步骤Blender内置插件:Blender2.8及以上版本已经内
- 使用Ray实现的分布式PyTorch Lightning训练
刘瑛蓉
使用Ray实现的分布式PyTorchLightning训练ray_lightningPytorchLightningDistributedAcceleratorsusingRay项目地址:https://gitcode.com/gh_mirrors/ra/ray_lightning项目简介ray_lightning是一个不再维护的项目,现在已被【RayTrain】取代,它提供了将PyTorchLi
- Python 开发安卓Android及IOS应用库Kivy安装尝试
dingcb168
WIFI开关KIVY
yeayee------>更多技巧------>更多源码------>www.yeayee.com转载:https://www.cnblogs.com/yeayee/p/5420858.htmlPython开发安卓Android及IOS应用库Kivy安装尝试Python开发安卓Android及IOS应用库Kivy安装尝试:先来看看这货可以用来制作什么应用:CreateapackageforWind
- 【PHP】增量式垃圾回收
gskyi
php
增量式垃圾回收(IncrementalGarbageCollection,IGC)是一种分阶段、逐步进行垃圾回收的技术,旨在减少全量垃圾回收带来的性能开销。与传统的全量垃圾回收相比,增量式垃圾回收将垃圾回收的任务分解为多个小步骤,并在多个周期中执行,而不是一次性地执行所有回收任务。在增量式垃圾回收中,整个回收过程被划分为多个较小的“增量”阶段,每个阶段执行一小部分工作。这样做的好处是,垃圾回收的执
- 小红书自动化操作:使用本地Chrome和User Data实现高效反检测
龙潜月七
自动化chromepython
小红书自动化操作:使用本地Chrome和UserData实现高效反检测在自动化操作社交媒体平台时,如何绕过反爬虫机制一直是个挑战。本文将介绍如何配置Selenium驱动本地Chrome浏览器,并利用UserData目录保留浏览器指纹,实现更接近真实用户的操作行为。为什么使用本地Chrome和UserData?传统的无头浏览器或默认配置的Selenium容易被网站识别为机器人,主要原因在于:浏览器指
- Termux备份与恢复
龙潜月七
python
转载自:https://bbs.zsxwz.com/thread-3473.htm好不容易才安装了各种软件,环境等等,因此做一个备份有时候还是必要的,以免一时手贱。备份方法很多,比如dd,rsync,restic,比较简单的就是使用tar打包。(主要是因为学生党,没流量每次下载400m的python了)爬虫在手,天下我有。https://wiki.termux.com/wiki/Backing_u
- 大模型私有化部署的系统性挑战与解决方案:企业视角的深度解析
慌ZHANG
人工智能人工智能
个人主页:慌ZHANG-CSDN博客期待您的关注一、引言:企业为何需要私有部署大模型?随着ChatGPT、Claude、DeepSeek、通义千问等大语言模型(LLMs)能力爆发,企业纷纷探索“AI+业务”的融合创新。然而,由于数据隐私、定制需求、合规政策等多重因素,私有化部署成为多数企业采用LLM的首选路径。企业选择私有部署大模型,通常基于以下几个原因:数据安全需求:业务数据敏感,禁止外发;可控
- mongo常用命令
樱桃的程序员麻麻
服务器mongodb
1连接mongo服务器mongoip:端口/库名-u用户名-p密码2选择数据库showdbs;显示数据库列表use数据库名称;3集合操作(1)显示集合列表showtables;(2)删除集合db.集合名称.drop();(3)向集合插入记录db.集合名称.insertOne({article_id:100000,content:"今天天气真好,阳光明媚",user_id:"1001",});(4)
- html虚拟滚动,解决dom渲染过多卡顿的问题
极简虚拟滚动.container{width:300px;height:300px;border:1pxsolid#ccc;overflow:auto;position:relative;}.placeholder{height:50000px;/*假设总高度为1000个item*50px*/}.item{position:absolute;left:0;top:0;width:100%;heig
- python-文件操作
qq_512720272
pythonpython开发语言
1文件操作1.1文件打开与关闭1.1.1打开文件-open#打开文件(默认为只读模式)file_path='example.txt'withopen(file_path,'r')asfile:#执行文件操作,例如读取文件内容file_content=file.read()print(file_content)#文件在with块结束后会自动关闭,无需显式关闭文件在上述示例中:'example.txt
- 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设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&