- 使用 C# 实现 FTP 上传的方法,包括详细的代码示例和测试代码
zhxup606
李工篇C#实战教程c#开发语言
以下是使用C#实现FTP上传的方法,包括详细的代码示例和测试代码。以下代码使用System.Net.FtpWebRequest实现文件上传,并附带一个简单的测试用例。C#FTP上传方法csharpusingSystem;usingSystem.IO;usingSystem.Net;publicclassFtpClient{//////上传文件到FTP服务器//////FTP服务器地址,例如ftp:
- 尚庭公寓-学习跟敲笔记(二)
wenbinglin66
学习笔记springbootjava
管理端后端开发-租赁管理模块1.看房预约管理1.1根据ID更新预约状态在ViewAppointmenController中增加内容@Operation(summary="根据id更新预约状态")@PostMapping("updateStatusById")publicResultupdateStatusById(@RequestParamLongid,@RequestParamAppointme
- Error: C++14 standard requested but CXX14 is not defined
闹钟又响了
在R中安装包如果遇到上述问题,基本上去修改一下Makevars文件即可。可以用vim编辑,也可以在R中编辑,如下dotR<-file.path(Sys.getenv("HOME"),".R")if(!file.exists(dotR))dir.create(dotR)M<-file.path(dotR,"Makevars")if(!file.exists(M))file.create(M)cat(
- 【Appium】selenium.common.exceptions.WebDriverException: Message: The requested resource could not be
枫萏
Appium踩坑达人appium
1、报错内容(1)脚本报错内容在PyCharm编写好脚本后,模拟器和appium也是连接成功的,但是运行脚本时报错:selenium.common.exceptions.WebDriverException:Message:Therequestedresourcecouldnotbefound,orarequestwasreceivedusinganHTTPmethodthatisnotsuppo
- 能分析从服务器收到的消息,Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息...
我引起此原因的功能如下:在aspx页面添加按钮JS方法:functiondownPPT(){$("#Btn_DownPPT").click();}…………OnClick="Btn_DownPPT_Click"/>……………………aspx.cs方法protectedvoidBtn_DownPPT_Click(objectsender,EventArgse){…………Response.WriteFil
- [尚庭公寓]15-个人中心
恩稀码
Java项目mybatisjavaspring服务器
浏览历史浏览历史指的是浏览房间详情的历史,关于浏览历史,有两项工作需要完成,一是提供一个查询浏览历史列表的接口,二是在浏览完房间详情后,增加保存浏览历史的逻辑,下面分别实现。1.分页查询浏览历史列表packagecom.atguigu.lease.web.app.controller.history;@RestController@Tag(name="浏览历史管理")@RequestMapping
- Vue3中Axios的使用-附完整代码
【本人】
Vue前端框架vue.js
前言首先介绍一下什么是axiosAxios是一个基于promise网络请求库,作用于node.js和浏览器中。它是isomorphic的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.jshttp模块,而在客户端(浏览端)则使用XMLHttpRequests官方网站:Axios中文文档|Axios中文网目前官方最新版本1.8.4一、Axios优势1.简单易用Axio
- Python requests设置代理的3种方法
爱睡觉的圈圈
代理服务python网络开发语言代理模式
在进行网络爬虫或数据采集时,经常需要使用代理来避免IP被封或突破访问限制。本文介绍Pythonrequests库设置代理的3种常用方法。方法一:基础代理设置最简单的代理设置方式:importrequests#设置代理proxies={'http':'http://proxy_ip:port','https':'https://proxy_ip:port'}#发送请求response=request
- Python爬虫IP被封的5种解决方案
前言做爬虫的朋友都遇到过这种情况:程序跑得好好的,突然就开始返回403错误,或者直接连接超时。十有八九是IP被网站封了。现在的网站反爬虫越来越严格,稍微频繁一点就会被拉黑。今天分享几个实用的解决方案,都是我在实际项目中用过的。方案一:代理IP池这是最直接的办法,换个马甲继续干活。基本实现importrequestsimportrandomimporttimeclassProxyPool:def__
- Python爬虫实战:研究picloud相关技术
ylfhpy
爬虫项目实战python爬虫开发语言picloud
一、引言1.1研究背景与意义在数字化时代,网络数据已成为企业决策、学术研究和社会服务的重要资源。爬虫技术作为自动化获取网络信息的关键手段,在舆情监测、市场分析、学术研究等领域具有广泛应用。Python以其简洁的语法和丰富的爬虫库(如Requests、BeautifulSoup、Scrapy)成为爬虫开发的首选语言。然而,面对海量数据和高并发需求,本地爬虫系统往往面临性能瓶颈。picloud作为专业
- git和npm在执行拉取或下载命令时的一些bug
落源晓峰
遇到的问题集合gitnpmbug
1.问题产生的原因在使用npm或者git下载包或者拉取项目是,我经常是在开启的环境下去拉取或下载的,所以因为代理的问题,通常会导致拉取或下载时报错。例如:npm:npmERR!codeECONNREFUSEDnpmERR!syscallconnectnpmERR!errnoECONNREFUSEDnpmERR!FetchError:requesttohttps://registry.npmjs.o
- Python网络爬虫技术深度解析:从入门到高级实战
Python爬虫项目
2025年爬虫实战项目python爬虫开发语言easyuiscrapy
1.爬虫技术概述网络爬虫(WebCrawler)是一种自动化程序,通过模拟人类浏览行为从互联网上抓取、解析和存储数据。根据应用场景可分为:通用爬虫:如搜索引擎的蜘蛛程序聚焦爬虫:针对特定领域的数据采集增量式爬虫:只抓取更新内容深层网络爬虫:处理需要交互的动态内容2.2024年Python爬虫技术栈技术分类推荐工具适用场景基础请求库requests,httpx静态页面请求解析库BeautifulSo
- HTTP 入门必备:基础概念、请求响应报文与 URL 完全解析
编程随想▿
HTTPhttp网络协议网络web
目录一、HTTP:万维网的通信基石核心特点HTTPS:安全的HTTP二、HTTP请求与响应报文剖析1.HTTP请求报文(Request)2.HTTP响应报文(Response)三、网址(URL)的结构详解总结:一个形象的比喻一、HTTP:万维网的通信基石HTTP(HyperTextTransferProtocol-超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它是万维网(W
- 000-Python网络库requests教程目录
lvjesus
Pythonpython-requests开发语言python
Python网络库requests教程目录教程概述本教程将带你从零开始掌握Python最流行的HTTP库requests,从基础的HTTP请求到高级的性能优化,从简单的API调用到复杂的企业级应用开发。通过系统性的学习和丰富的实战案例,帮助你成为requests库的专家。学习路径基础篇进阶篇高级篇实战篇专家篇环境搭建基本请求响应处理会话管理认证机制文件操作SSL处理性能优化异步处理API测试数据采
- hideSoftInputFromWindow方法失效问题解决
西门小贼
问题:在处理一个事件之后显示一个EditView,此EditView获取焦点并显示软键盘,onStop中调用hideSoftInputFromWindow,软键盘不能自动收起。EditView获取焦点mSearchInput.setFocusable(true);mSearchInput.setFocusableInTouchMode(true);mSearchInput.requestFocus
- 熟悉亚马逊邮件(第九天)
七qi_
电商运营分析学习方法
HellofromAmazonSellingPartnerSupport,Weunderstandyourrequestare-measurementandreimbursementforFBAexcessesfeePleasenotethatwearestillworkingwithourrelevantteamtoreacharesolutiononyourcase.Whileweareuna
- [Flask] 异步非阻塞IO实现
_小老虎_
Flask默认是不支持非阻塞IO的,表现为:当请求1未完成之前,请求2是需要等待处理状态,效率非常低。在flask中非阻塞实现可以由2种:启用flask多线程机制#FlaskfromflaskimportFlask,request,gimportosimportsysreload(sys)sys.setdefaultencoding('utf-8')app=Flask(__name__)app.c
- SpringMVC——请求参数与请求头
获取请求参数一、@RequestParam获取jsp实例testRequestParamprivatestaticfinalStringSUCCESS="success";@RequestMapping(value="/testRequestParam")publicStringtestRequestParam(@RequestParam(value="username")Stringuserna
- snmp包分析
new_abc
网络
可以测试snmp后我们就可以抓包看看snmp包的结构下面是一个Get-Next-Request包NMP使用**ASN.1(抽象语法标记)**和**BER(基本编码规则)**定义数据类型。每个字段由**类型(Type)**、**长度(Length)**和**值(Value)**三部分组成。以下是常见的类型及其对应的编码值:####**(1)通用类型(UniversalTypes)**|类型标识符(十
- 历史天气信息数据爬取
Aronup
python正则表达式
北京市2020年1月份历史天气爬取视频教程(讲的阔以的)1确定目标网址1.1目标网址[2345天气]1.2目标数据北京2020年一月份2分析网页分析过程大家去看视频吧,讲的很好,现学现卖3爬取js文件爬取过程1.构造URL2.用requests获取js,处理成json样式,接下转换成标准的json3.用demjson转换成标准的json4.解析数据放入列表5.封装成一个函数这里使用的工具包分别有:
- axios+springboot 文件上传
Msr 王
代码块
思路:客户端通过表单方式上传服务端使用@RequestParam接收注意事项:服务端接收所有表单数据时,只能使用@RequestParam,不能使用@RequestBody前端要把文件代码:@PutMapping(path="/app/questions/{id}")@Transactionalpublicvoidupdate(@PathVariableLongid,@RequestParamSt
- 请求拦截器,响应拦截器,都是些啥呀,我好懵逼呀!
请求拦截器,响应拦截器,都是些啥呀,我好懵逼呀!别慌!“请求拦截器”和“响应拦截器”其实是Web开发中用于干预请求和响应流程的组件,目的是在请求到达目标接口(比如Controller)之前、或响应返回给用户之前,做一些通用处理(比如日志记录、权限校验、数据修改等)。它们的核心区别就在于拦截的时机不同,下面用生活化的例子和技术细节帮你理清:一、先搞懂:什么是“请求”和“响应”?请求(Request)
- 《web结构反思报告》郑耀辉
fc6ea61498f0
在这11月份我学习了jsp技术。了解了各种标识和注释和out、request、response、session、application等内置对象及JDBC。在JSP中主要包含3种指令,分别是page指令(页面指令)、include指令和taglib指令。\n\n\u003C%@指令名称属性1=\"属性值\"属性2=\"属性值\"…%>。想要熟悉的运用这些知识我需要更加努力的学习,让学到的知识成为我
- ICMPv4报文类型详解表
两圆相切
网络规划设计师智能路由器网络
ICMPv4报文类型详解表一、错误报文类型(Type0-18)Type值名称Code范围触发条件示例典型用途0EchoReply0响应EchoRequest(ping回复)网络连通性测试3DestinationUnreachable0-150:网络不可达1:主机不可达2:协议不可达3:端口不可达4:需要分片但DF标志设置5:源路由失败6:目的网络未知7:目的主机未知8:源主机隔离9:目的网络被禁止
- Ping与ICMP报文
yyyzhhhhh
计算机网络
ICMP主要分为查询报文和差错报文ping使用的是ICMP查询报文(Echo)A向B发送Echorequest报文,B向A发送Echoreply报文计算时间:可以在ICMP报文的数据段写入发送时间,对方收到的时候再根据收到的时间求出单程的时间参考:https://www.jianshu.com/p/e1795962ad76
- 盘点一个Python网络爬虫问题
皮皮_f075
大家好,我是皮皮。一、前言前几天在Python最强王者群【刘桓鸣】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。image.png他自己的代码如下:importrequestskey=input("请输入关键字")res=requests.post(url="https://jf.10086.cn/cmcc-web-shop/search/query",data={"sortColu
- 使用@RequestBodyAdvice处理客户端的加密请求体
SpringBoot中文社区
业务场景:客户端把json数据进行加密后,编码成Base64字符串,提交给服务器。服务器再进行解密。使用@RequestBodyAdvice,可以在不修改任何Controller代码的前提下,轻松完成。之前写过一篇帖子,使用@ResponseBodyAdvice统一对响应的数据进行处理。演示了,使用ResponseBodyAdvice统一对响应给客户的json进行AES加密。RequestBody
- 使用python调用DeepSeek接口的几种方法
xiekj
研发管理人工智能数据库python机器学习深度学习
一、调用DeepSeekText模型的方式DeepSeek提供了多种方式来调用其文本模型,以下是主要的调用方式:1.API调用(推荐)importrequestsAPI_URL="https://api.deepseek.com/v1/chat/completions"API_KEY="your_api_key_here"headers={"Authorization":f"Bearer{API_
- python爬取豆瓣图书Top250
实验要求:爬取豆瓣图书排行榜书单信息,存储到数据库中,并爬取图书评论进行数据分析,提取关键字做成词云展示。实验成果:词云效果图:废话不多说,直接开始实战!爬取数据先来看简单的例子:importrequestsfrombs4importBeautifulSoupurl="https://book.douban.com/top250"headers={'User-Agent':'Mozilla/5.0
- 以上传用户头像为例直接搞懂SpringBoot文件上传存储思路!
此方法将图片直接存入磁盘中下列代码中的:@Autowired属于IoC的内容,参考:简单了解IoC与DIController@RestController@RequestMapping("/user")@Slf4jpublicclassUserController{@AutowiredprivateUserServiceImpluserService;@PostMapping("/uploadAv
- html页面js获取参数值
0624chenhong
html
1.js获取参数值js
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = windo
- MongoDB 在多线程高并发下的问题
BigCat2013
mongodbDB高并发重复数据
最近项目用到 MongoDB , 主要是一些读取数据及改状态位的操作. 因为是结合了最近流行的 Storm进行大数据的分析处理,并将分析结果插入Vertica数据库,所以在多线程高并发的情境下, 会发现 Vertica 数据库中有部分重复的数据. 这到底是什么原因导致的呢?笔者开始也是一筹莫 展,重复去看 MongoDB 的 API , 终于有了新发现 :
com.mongodb.DB 这个类有
- c++ 用类模版实现链表(c++语言程序设计第四版示例代码)
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T>
class Node
{
private:
Node<T> * next;
public:
T data;
- 最近情况
麦田的设计者
感慨考试生活
在五月黄梅天的岁月里,一年两次的软考又要开始了。到目前为止,我已经考了多达三次的软考,最后的结果就是通过了初级考试(程序员)。人啊,就是不满足,考了初级就希望考中级,于是,这学期我就报考了中级,明天就要考试。感觉机会不大,期待奇迹发生吧。这个学期忙于练车,写项目,反正最后是一团糟。后天还要考试科目二。这个星期真的是很艰难的一周,希望能快点度过。
- linux系统中用pkill踢出在线登录用户
被触发
linux
由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户
1/#who 查出当前有那些终端登录(用 w 命令更详细)
# who
root pts/0 2010-10-28 09:36 (192
- 仿QQ聊天第二版
肆无忌惮_
qq
在第一版之上的改进内容:
第一版链接:
http://479001499.iteye.com/admin/blogs/2100893
用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题.
增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑.
信息修改后上传至服务器再告诉所有用户,自己的窗口
- java读取配置文件
知了ing
1,java读取.properties配置文件
InputStream in;
try {
in = test.class.getClassLoader().getResourceAsStream("config/ipnetOracle.properties");//配置文件的路径
Properties p = new Properties()
- __attribute__ 你知多少?
矮蛋蛋
C++gcc
原文地址:
http://www.cnblogs.com/astwish/p/3460618.html
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。
__attribute__ 书写特征是:
- jsoup使用笔记
alleni123
java爬虫JSoup
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
2014/08/28
今天遇到这种形式,
- JAVA中的集合 Collectio 和Map的简单使用及方法
百合不是茶
listmapset
List ,set ,map的使用方法和区别
java容器类类库的用途是保存对象,并将其分为两个概念:
Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素 ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的
- 杀LINUX的JOB进程
bijian1013
linuxunix
今天发现数据库一个JOB一直在执行,都执行了好几个小时还在执行,所以想办法给删除掉
系统环境:
ORACLE 10G
Linux操作系统
操作步骤如下:
第一步.查询出来那个job在运行,找个对应的SID字段
select * from dba_jobs_running--找到job对应的sid
&n
- Spring AOP详解
bijian1013
javaspringAOP
最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。
1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用
- [Gson六]Gson类型适配器(TypeAdapter)
bit1129
Adapter
TypeAdapter的使用动机
Gson在序列化和反序列化时,默认情况下,是按照POJO类的字段属性名和JSON串键进行一一映射匹配,然后把JSON串的键对应的值转换成POJO相同字段对应的值,反之亦然,在这个过程中有一个JSON串Key对应的Value和对象之间如何转换(序列化/反序列化)的问题。
以Date为例,在序列化和反序列化时,Gson默认使用java.
- 【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行
bit1129
driver
Driver Program是用户编写的提交给Spark集群执行的application,它包含两部分
作为驱动: Driver与Master、Worker协作完成application进程的启动、DAG划分、计算任务封装、计算任务分发到各个计算节点(Worker)、计算资源的分配等。
计算逻辑本身,当计算任务在Worker执行时,执行计算逻辑完成application的计算任务
- nginx 经验总结
ronin47
nginx 总结
深感nginx的强大,只学了皮毛,把学下的记录。
获取Header 信息,一般是以$http_XX(XX是小写)
获取body,通过接口,再展开,根据K取V
获取uri,以$arg_XX
&n
- 轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点
bylijinnan
数组
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ExoWeb {
public static void main(String[] args) {
ExoWeb ew=new ExoWeb();
System.out.pri
- Netty源码学习-Java-NIO-Reactor
bylijinnan
java多线程netty
Netty里面采用了NIO-based Reactor Pattern
了解这个模式对学习Netty非常有帮助
参考以下两篇文章:
http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html
http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf
- AOP通俗理解
cngolon
springAOP
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和 我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而 已。 2.为什么用aop&nb
- cursor variable 实例
ctrain
variable
create or replace procedure proc_test01
as
type emp_row is record(
empno emp.empno%type,
ename emp.ename%type,
job emp.job%type,
mgr emp.mgr%type,
hiberdate emp.hiredate%type,
sal emp.sal%t
- shell报bash: service: command not found解决方法
daizj
linuxshellservicejps
今天在执行一个脚本时,本来是想在脚本中启动hdfs和hive等程序,可以在执行到service hive-server start等启动服务的命令时会报错,最终解决方法记录一下:
脚本报错如下:
./olap_quick_intall.sh: line 57: service: command not found
./olap_quick_intall.sh: line 59
- 40个迹象表明你还是PHP菜鸟
dcj3sjt126com
设计模式PHP正则表达式oop
你是PHP菜鸟,如果你:1. 不会利用如phpDoc 这样的工具来恰当地注释你的代码2. 对优秀的集成开发环境如Zend Studio 或Eclipse PDT 视而不见3. 从未用过任何形式的版本控制系统,如Subclipse4. 不采用某种编码与命名标准 ,以及通用约定,不能在项目开发周期里贯彻落实5. 不使用统一开发方式6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函
- Android逐帧动画的实现
dcj3sjt126com
android
一、代码实现:
private ImageView iv;
private AnimationDrawable ad;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout
- java远程调用linux的命令或者脚本
eksliang
linuxganymed-ssh2
转载请出自出处:
http://eksliang.iteye.com/blog/2105862
Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
使用步骤如下:
1.导包
官网下载:
http://www.ganymed.ethz.ch/ssh2/
ma
- adb端口被占用问题
gqdy365
adb
最近重新安装的电脑,配置了新环境,老是出现:
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
百度了一下,说是端口被占用,我开个eclipse,然后打开cmd,就提示这个,很烦人。
一个比较彻底的解决办法就是修改
- ASP.NET使用FileUpload上传文件
hvt
.netC#hovertreeasp.netwebform
前台代码:
<asp:FileUpload ID="fuKeleyi" runat="server" />
<asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" />
- 代码之谜(四)- 浮点数(从惊讶到思考)
justjavac
浮点数精度代码之谜IEEE
在『代码之谜』系列的前几篇文章中,很多次出现了浮点数。 浮点数在很多编程语言中被称为简单数据类型,其实,浮点数比起那些复杂数据类型(比如字符串)来说, 一点都不简单。
单单是说明 IEEE浮点数 就可以写一本书了,我将用几篇博文来简单的说说我所理解的浮点数,算是抛砖引玉吧。 一次面试
记得多年前我招聘 Java 程序员时的一次关于浮点数、二分法、编码的面试, 多年以后,他已经称为了一名很出色的
- 数据结构随记_1
lx.asymmetric
数据结构笔记
第一章
1.数据结构包括数据的
逻辑结构、数据的物理/存储结构和数据的逻辑关系这三个方面的内容。 2.数据的存储结构可用四种基本的存储方法表示,它们分别是
顺序存储、链式存储 、索引存储 和 散列存储。 3.数据运算最常用的有五种,分别是
查找/检索、排序、插入、删除、修改。 4.算法主要有以下五个特性:
输入、输出、可行性、确定性和有穷性。 5.算法分析的
- linux的会话和进程组
网络接口
linux
会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。会话首进程:调用setsid创建会话的进程1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用se
- 二维数组 元素的连续求解
1140566087
二维数组ACM
import java.util.HashMap;
public class Title {
public static void main(String[] args){
f();
}
// 二位数组的应用
//12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。
public static void f(){
- 也谈什么时候Java比C++快
windshome
javaC++
刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。
你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?
我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C