- Structs中使用Validator框架(上)
Daly罗
框架validationstrutsactionencodingemail
框架能够克服在ActionFormBean中以编程方式进行数据验证的局限,它允许Struts应用灵活的配置验证规则,无需编程。使用Validator框架之前的准备:包准备:StrutsValidator框架主要依赖两个JAR文件jakarta-oro.jar和commons-validator.jar,两个xml文件:验证规则文件validator-rules.xml以及自定义表单验证规则文件va
- Module not found: Error: Can‘t resolve ‘sass-loader‘ in...
Coisini_甜柚か
web前端sassvue.jscss
"sass-loader"报错!!!Failedtocompile../src/main.jsModulenotfound:Error:Can'tresolve'sass-loader'in'E:\study_software\JetBrains\WebStorm2021\WebstormProjects\vue-element-admin-master'npminstallsass-loader
- maven的pom引入第三方jar包的两种方式
苏supper
mavenjar
方式1:直接在maven的pom.xml增加如下配置,直接引入jar包。注意scope为system,systemPath为jar包的路径,groupId、artifactId、version按实际填写。com.sysutils1.0systemD:/MyWork/IdeaProjects/java-web-maven/out/artifacts/utils/utils.jar方式2:把jar包i
- MySQL空间函数ST_Distance_Sphere()的使用
niceLiuSir
mysql
MySQL提供了一系列的空间函数,其中ST_Distance_Sphere()函数可以计算两个经纬度坐标之间的距离,返回单位为米的浮点数。这个函数使用的是球形大地模型,因此对于较短的距离,计算结果的精度比较高。下面是一个使用ST_Distance_Sphere()函数计算两个经纬度之间距离的示例:SELECTST_Distance_Sphere(POINT(-122.4194155,37.7749
- VC++中CString和char*的相互转换
寒江孤影d
VC++c/c++
可参考的另外一篇文章:https://blog.csdn.net/luoweifu/article/details/20232379转自:https://blog.csdn.net/e_wsq/article/details/26307817网上转来的学习下1.传给未分配内存的constchar*(LPCTSTR)指针.CStringcstr(asdd);constchar*ch=(LPCTSTR
- 怪物猎手
Dylan12138
Legalrelated-copyrightnoticeWithoutthewrittenpermissionoftheperson,anyunitorindividualshallnotuse,copy,modify,transcribe,disseminateorbundleanypartoftheabove-mentionedproducts,services,informationorma
- wpf datagrid 设置自动新增行后 避免行内没有内容也会新增行处理
梅兰松竹菊
wpfc#
前台后台privatevoidDataGrid_OnRowEditEnding(objectsender,DataGridRowEditEndingEventArgse){if(e.EditAction==DataGridEditAction.Commit){varnewItem=e.Row.ItemasZjwz;Console.WriteLine("1111:"+_gridZhuJieList)
- wpf datagrid通过点击单元格 获取行列索引2.0
梅兰松竹菊
wpfc#
privatevoidDataGrid_OnMouseRightButtonUp(objectsender,MouseButtonEventArgse){vardataGrid=senderasDataGrid;//获取点击的位置varmousePosition=e.GetPosition(dataGrid);varhit=dataGrid.InputHitTest(mousePosition)a
- 如何使用React-Lottie将动画添加到React应用
cukw6666
javavuepythonreactjavascriptViewUI
介绍(Introduction)AdobeAfterEffectscanbeanintuitivewaytogeneratewebanimations,buttherehashistoricallybeenproblemsconvertingtheseanimationstowebapps.Itisusuallynecessarytouseathirdpartyprogramtoimportana
- Policy of privacy 隐私协议 2018-12-19
Codeaholic
1.COLLECTIONOFINFORMATION信息的收集Thedatawecollectdependsonthecontextofyourinteractionswithus,thechoicesyoumake,includingyourprivacysettings,andtheproductsandfeaturesyouuse.ThedatawecollectcanincludeSDK/A
- (二)人们的想法不会因为事实而改变 2019-05-17
缘起比尔哥
Theminddoesn’tfollowthefacts.Facts,asJohnAdamsputit,arestubbornthings,butourmindsareevenmorestubborn.Doubtisn’talwaysresolvedinthefaceoffactsforeventhemostenlightenedamongus,howevercredibleandconvinci
- 计算机基础知识复习8.9
我叫啥都行
计算机基础知识java开发语言后端笔记jvm
什么是零拷贝是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。就是内核缓冲区和应用缓冲区共享,从而减少了从读缓冲区到用户缓冲区的一次CPU拷贝StringStringBuilderStringBuffer使用String是不可变的,StringBuilder与StringBuffer都继承自AbstractStr
- Java--异常处理try_catch和throws
可乐小巧粒
java小知识回顾javajvmmce异常
异常处理try_catch和throwsthrow关键字Objects非空判断第一种方式:throws处理异常第二种方式:try_catch处理异常Throwable类中3个异常处理的方式finally代码块多异常处理自定义异常throw关键字package异常学习;/**java.lang.Throwable:类是java语言中所有错误或异常的超类*Excepttion:编译期异常,进行编译Ja
- SQLSERVER将子查询数据合并拼接成一个字段
xiaoweiwei99
面试学习路线阿里巴巴android前端后端
业务场景:有两张表,部门表和员工表部门表:部门编码部门名称1A2A3A4B员工表:员工名称所属部门张三1李四1王五1赵六2现在需要一个部门人员报表,要求将该部门的员工合并显示在一列,如:部门编码部门名称所属人员1A张三、李四、王五2B赵六解决方案:通过SQLSERVER的FORXMLPATH函数+STUFF函数,对查询出来的数据进行合并拼接,放到指定的字段selectSTUFF((select‘,
- Android CTS兼容性测试工具介绍
闲暇部落
android
参考官方文档:兼容性测试套件|AndroidOpenSourceProject参考文章:Android---一篇带你搞懂CTS_androidcts-CSDN博客
- iOS 苹果健康-睡眠
蛋黄他爹
ios
直接上代码吧api如下api如下HKCategoryType*sleep1=[HKCategoryTypecategoryTypeForIdentifier:HKCategoryTypeIdentifierSleepAnalysis];//睡眠分析NSSet*healthSet=[NSSetsetWithObjects:sleep1,nil];//向系统的健康APP请求数据,并回调结果[self.
- MySQL数据查询——聚合函数
小风呼呼吹儿
数据库sqlmysql
#聚合函数5个,数量count(x),最大值max(x),最小值min(x),平均值avg(x),求和sum(x)selectcount(*)'所有成年人的数量'fromstudentwhereage>=18;selectmax(age)'最大年龄',min(age)'最小年龄'fromstudent;selectavg(age)'平均年龄'fromstudent;selectsum(age)'总
- MyBatis注解开发详解
hoypte
mybatis
MyBatis注解开发详解一、前言MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通的Java对象)为数据库中的记录。在MyBatis中,注解提供了一种更加简洁和直观的
- MS COCO数据集目标检测评估(Detection Evaluation)
Ambition_LAO
人工智能计算机视觉
MSCOCO(MicrosoftCommonObjectsinContext)是一个广泛应用于计算机视觉领域的数据集和评估平台,尤其是在目标检测、分割和人体关键点检测等任务中。COCO数据集和其评估方法被广泛用于学术研究和工业应用。以下是对MSCOCO数据集目标检测评估、人体关键点评估、输出数据的结果格式以及如何参加比赛的详细阐述和总结。1.MSCOCO数据集目标检测评估(DetectionEva
- python爬虫番外篇 | Reuqests库高级用法(1)
摆烂牛杂
爬虫python爬虫c++
文章目录1.会话对象(SessionObjects)2.请求和响应对象(RequestandResponseObjects)3.准备好的请求(PreparedRequests)4.SSL证书验证5.客户端证书6.CA证书7.正文内容工作流程(BodyContentWorkflow)8.keep-alive9.流式上传(StreamingUploads)10.块编码的请求(Chunk-Encoded
- 文件元数据,内存映射文件
Moving on395
c语言vimlinuxubuntubash
文件元数据文件元数据的获取#includeintstat(charconst*path,structstat*buf);intfstat(intfd,structstat*buf);intlstat(charconst*path,structstat*buf);->功能:从i节点中提取文件的元数据,即文件的属性信息->参数:path文件路径buf文件元数据结构fd文件描述符->返回值:成功返回0,
- 上海交大RFect siRNA转染试剂成功转染胆囊癌细胞系(NOZ、GBC-SD)
清风拂面vv
上海交通大学研究团队在探讨RNA甲基转移酶NSUN2在胆囊癌中的功能作用相关研究中,使用RFectsiRNA转染试剂将NSUN2及其他相关基因的siRNA转染到胆囊癌细胞系NOZ和GBC-SD细胞中。qRT-PCR结果显示,转染后两种细胞中相关基因mRNA的表达与阴性对照相比均能敲低90%左右。此外,westernblot结果也显示转染后两种细胞中相关蛋白的表达量相比对照明显减少了。
- “鹰飞计划”前期准备 | 工作软件环境 | 基本素质
Jacob_胡云飞
软件环境ide我经常用的是jetbranins公司的产品,感觉很舒服,流畅,他们家对常用的语言都有对应的设计,下面是他的官网。https://www.jetbrains.com/products/我电脑上的一些ide:HBuilderX:我开发uniapp(小程序)的时候需要用到,它也能开发vue,但是我觉得这个ide的功能不太让我舒服,如果有比它更好的开发小程序的ide,我肯定会换。WebStr
- 图片转换二进制流-二进制流转换图片保存(winform、Wince程序通用)
code_li
C#
代码如下:privatevoidbutton1_Click(objectsender,EventArgse){Bitmapbitmap=newBitmap(Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString())+"\\CheckTable\\选择标准.jpg");//图片转成二进制流M
- 【ORACLE】LOBSEGMENT类型对象清理
小雨嗒嗒
数据库oracle数据库
在Oracle数据库中,LOBSEGMENT类型的对象通常用于存储大型对象(LOB),如BLOB(二进制大对象)和CLOB(字符大对象)。如果需要清理LOBSEGMENT对象以释放空间,可以采取以下步骤:确定LOBSEGMENT对象的来源:首先,你需要确定哪个表和哪个字段使用了这个LOBSEGMENT。可以通过查询dba_objects和dba_lobs视图来获取这些信息。例如,使用以下SQL语句
- 数字电路中卡诺图理解
Lambor_Ma
数字
简单理解就是,卡诺图是用来化简数字逻辑的图表,它将不同输入变量的组合枚举到图表中,然后填入是否为1或者0.化简有2种方式1种是SOP一种是POS。SOPsumofproducts就是P=ab+bc+abc这种形式化简方法为:1.圈出相邻的1(4个角也可以认为是相邻的)2.化简写出每个圈的最简式子3.将最简式相加举例假设A圈是BD构成,B圈是B’D’构成,则最后结果是BD+B’D’POSproduc
- 03 vue3之Reactive全家桶
流氓也是种气质 _Cookie
Vue3vue.js前端javascriptvue3
reactive用来绑定复杂的数据类型例如对象数组AarryObjectsetmapreactive源码约束了我们的类型他是不可以绑定普通的数据类型这样是不允许会给我们报错import{reactive}from'vue'letperson=reactive('sad')绑定普通的数据类型我们可以使用ref你如果用ref去绑定对象或者数组等复杂的数据类型我们看源码里面其实也是去调用reactive
- Golang | Leetcode Golang题解之第367题有效的完全平方数
__AtYou__
经验分享GolangLeetcode题解
题目:题解:funcisPerfectSquare(numint)bool{x0:=float64(num)for{x1:=(x0+float64(num)/x0)/2ifx0-x1<1e-6{x:=int(x0)returnx*x==num}x0=x1}}
- C++ | Leetcode C++题解之第367题有效的完全平方数
Ddddddd_158
经验分享C++Leetcode题解
题目:题解:classSolution{public:boolisPerfectSquare(intnum){doublex0=num;while(true){doublex1=(x0+num/x0)/2;if(x0-x1<1e-6){break;}x0=x1;}intx=(int)x0;returnx*x==num;}};
- npm ERR [email protected]: Permission denied (publickey)
晓风伴月
开发问题#Node开发问题npmgitgithub
一、问题描述:npminstall安装报错
[email protected]:Permissiondenied(publickey)npmERR!code128npmERR!AnunknowngiterroroccurrednpmERR!commandgit--no-replace-objectsls-remotessh://
[email protected]/mvayngrib/changes-
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIlinuxPHPandroid
╔-----------------------------------╗┆
- zookeeper admin 笔记
braveCS
zookeeper
Required Software
1) JDK>=1.6
2)推荐使用ensemble的ZooKeeper(至少3台),并run on separate machines
3)在Yahoo!,zk配置在特定的RHEL boxes里,2个cpu,2G内存,80G硬盘
数据和日志目录
1)数据目录里的文件是zk节点的持久化备份,包括快照和事务日
- Spring配置多个连接池
easterfly
spring
项目中需要同时连接多个数据库的时候,如何才能在需要用到哪个数据库就连接哪个数据库呢?
Spring中有关于dataSource的配置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
&nb
- Mysql
171815164
mysql
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作
- CommonDAO(公共/基础DAO)
g21121
DAO
好久没有更新博客了,最近一段时间工作比较忙,所以请见谅,无论你是爱看呢还是爱看呢还是爱看呢,总之或许对你有些帮助。
DAO(Data Access Object)是一个数据访问(顾名思义就是与数据库打交道)接口,DAO一般在业
- 直言有讳
永夜-极光
感悟随笔
1.转载地址:http://blog.csdn.net/jasonblog/article/details/10813313
精华:
“直言有讳”是阿里巴巴提倡的一种观念,而我在此之前并没有很深刻的认识。为什么呢?就好比是读书时候做阅读理解,我喜欢我自己的解读,并不喜欢老师给的意思。在这里也是。我自己坚持的原则是互相尊重,我觉得阿里巴巴很多价值观其实是基本的做人
- 安装CentOS 7 和Win 7后,Win7 引导丢失
随便小屋
centos
一般安装双系统的顺序是先装Win7,然后在安装CentOS,这样CentOS可以引导WIN 7启动。但安装CentOS7后,却找不到Win7 的引导,稍微修改一点东西即可。
一、首先具有root 的权限。
即进入Terminal后输入命令su,然后输入密码即可
二、利用vim编辑器打开/boot/grub2/grub.cfg文件进行修改
v
- Oracle备份与恢复案例
aijuans
oracle
Oracle备份与恢复案例
一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与
- JavaEE开源快速开发平台G4Studio v5.0发布
無為子
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V5.0版本已经正式发布。
访问G4Studio网站
http://www.g4it.org
2013-04-06 发布G4Studio_V5.0版本
功能新增
(1). 新增了调用Oracle存储过程返回游标,并将游标映射为Java List集合对象的标
- Oracle显示根据高考分数模拟录取
百合不是茶
PL/SQL编程oracle例子模拟高考录取学习交流
题目要求:
1,创建student表和result表
2,pl/sql对学生的成绩数据进行处理
3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选
1,创建student表,和result表
学生信息表;
create table student(
student_id number primary key,--学生id
- 优秀的领导与差劲的领导
bijian1013
领导管理团队
责任
优秀的领导:优秀的领导总是对他所负责的项目担负起责任。如果项目不幸失败了,那么他知道该受责备的人是他自己,并且敢于承认错误。
差劲的领导:差劲的领导觉得这不是他的问题,因此他会想方设法证明是他的团队不行,或是将责任归咎于团队中他不喜欢的那几个成员身上。
努力工作
优秀的领导:团队领导应该是团队成员的榜样。至少,他应该与团队中的其他成员一样努力工作。这仅仅因为他
- js函数在浏览器下的兼容
Bill_chen
jquery浏览器IEDWRext
做前端开发的工程师,少不了要用FF进行测试,纯js函数在不同浏览器下,名称也可能不同。对于IE6和FF,取得下一结点的函数就不尽相同:
IE6:node.nextSibling,对于FF是不能识别的;
FF:node.nextElementSibling,对于IE是不能识别的;
兼容解决方式:var Div = node.nextSibl
- 【JVM四】老年代垃圾回收:吞吐量垃圾收集器(Throughput GC)
bit1129
垃圾回收
吞吐量与用户线程暂停时间
衡量垃圾回收算法优劣的指标有两个:
吞吐量越高,则算法越好
暂停时间越短,则算法越好
首先说明吞吐量和暂停时间的含义。
垃圾回收时,JVM会启动几个特定的GC线程来完成垃圾回收的任务,这些GC线程与应用的用户线程产生竞争关系,共同竞争处理器资源以及CPU的执行时间。GC线程不会对用户带来的任何价值,因此,好的GC应该占
- J2EE监听器和过滤器基础
白糖_
J2EE
Servlet程序由Servlet,Filter和Listener组成,其中监听器用来监听Servlet容器上下文。
监听器通常分三类:基于Servlet上下文的ServletContex监听,基于会话的HttpSession监听和基于请求的ServletRequest监听。
ServletContex监听器
ServletContex又叫application
- 博弈AngularJS讲义(16) - 提供者
boyitech
jsAngularJSapiAngularProvider
Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。
那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Fac
- java-写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。
bylijinnan
java
public class CommonSubSequence {
/**
* 题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。
* 写一个版本算法复杂度O(N^2)和一个O(N) 。
*
* O(N^2):对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。
* O(
- sqlserver 2000 无法验证产品密钥
Chen.H
sqlwindowsSQL ServerMicrosoft
在 Service Pack 4 (SP 4), 是运行 Microsoft Windows Server 2003、 Microsoft Windows Storage Server 2003 或 Microsoft Windows 2000 服务器上您尝试安装 Microsoft SQL Server 2000 通过卷许可协议 (VLA) 媒体。 这样做, 收到以下错误信息CD KEY的 SQ
- [新概念武器]气象战争
comsci
气象战争的发动者必须是拥有发射深空航天器能力的国家或者组织....
原因如下:
地球上的气候变化和大气层中的云层涡旋场有密切的关系,而维持一个在大气层某个层次
- oracle 中 rollup、cube、grouping 使用详解
daizj
oraclegroupingrollupcube
oracle 中 rollup、cube、grouping 使用详解 -- 使用oracle 样例表演示 转自namesliu
-- 使用oracle 的样列库,演示 rollup, cube, grouping 的用法与使用场景
--- ROLLUP , 为了理解分组的成员数量,我增加了 分组的计数 COUNT(SAL)
- 技术资料汇总分享
Dead_knight
技术资料汇总 分享
本人汇总的技术资料,分享出来,希望对大家有用。
http://pan.baidu.com/s/1jGr56uE
资料主要包含:
Workflow->工作流相关理论、框架(OSWorkflow、JBPM、Activiti、fireflow...)
Security->java安全相关资料(SSL、SSO、SpringSecurity、Shiro、JAAS...)
Ser
- 初一下学期难记忆单词背诵第一课
dcj3sjt126com
englishword
could 能够
minute 分钟
Tuesday 星期二
February 二月
eighteenth 第十八
listen 听
careful 小心的,仔细的
short 短的
heavy 重的
empty 空的
certainly 当然
carry 携带;搬运
tape 磁带
basket 蓝子
bottle 瓶
juice 汁,果汁
head 头;头部
- 截取视图的图片, 然后分享出去
dcj3sjt126com
OSObjective-C
OS 7 has a new method that allows you to draw a view hierarchy into the current graphics context. This can be used to get an UIImage very fast.
I implemented a category method on UIView to get the vi
- MySql重置密码
fanxiaolong
MySql重置密码
方法一:
在my.ini的[mysqld]字段加入:
skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库
然后进入mysql
mysql>use mysql;
mysql>更新 user set password=password('新密码') WHERE User='root';
mysq
- Ehcache(03)——Ehcache中储存缓存的方式
234390216
ehcacheMemoryStoreDiskStore存储驱除策略
Ehcache中储存缓存的方式
目录
1 堆内存(MemoryStore)
1.1 指定可用内存
1.2 驱除策略
1.3 元素过期
2 &nbs
- spring mvc中的@propertysource
jackyrong
spring mvc
在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了:
@PropertySource 在spring 3.1中开始引入
比如有配置文件
config.properties
mongodb.url=1.2.3.4
mongodb.db=hello
则代码中
@PropertySource(&
- 重学单例模式
lanqiu17
单例Singleton模式
最近在重新学习设计模式,感觉对模式理解更加深刻。觉得有必要记下来。
第一个学的就是单例模式,单例模式估计是最好理解的模式了。它的作用就是防止外部创建实例,保证只有一个实例。
单例模式的常用实现方式有两种,就人们熟知的饱汉式与饥汉式,具体就不多说了。这里说下其他的实现方式
静态内部类方式:
package test.pattern.singleton.statics;
publ
- .NET开源核心运行时,且行且珍惜
netcome
java.net开源
背景
2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和核心
- 使用oscahe缓存技术减少与数据库的频繁交互
Everyday都不同
Web高并发oscahe缓存
此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。
缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——
- Spring+Mybatis 手动控制事务
toknowme
mybatis
@Override
public boolean testDelete(String jobCode) throws Exception {
boolean flag = false;
&nbs
- 菜鸟级的android程序员面试时候需要掌握的知识点
xp9802
android
熟悉Android开发架构和API调用
掌握APP适应不同型号手机屏幕开发技巧
熟悉Android下的数据存储
熟练Android Debug Bridge Tool
熟练Eclipse/ADT及相关工具
熟悉Android框架原理及Activity生命周期
熟练进行Android UI布局
熟练使用SQLite数据库;
熟悉Android下网络通信机制,S