- 初识redux
未命名小孩
前端知识reactjstypescript
Redux是一个用于管理JavaScript应用程序状态的可预测状态容器核心概念1.单一数据源整个应用的状态被存储在一个单一的对象树(store)中,这个对象树位于唯一的store里。创建store:conststore=createStore(reducer)2.状态是只读的唯一改变状态的方法是触发一个action,action是一个描述状态变化的纯对象。这保证了所有的状态变化都是可追踪的。一个
- sqlserver存储过程案例教程
超级无敌暴龙战士塔塔开
sqlserver数据库sql
定义用sql写业务逻辑,系统变了,只要数据库没变,功能还是可以生效常用存储过程(系统自带)--查看数据库execsp_databases;--查看表execsp_tables;--查看列execsp_columnsstudentInfo;execsp_helpIndexstudent;--查看索引execsp_helpConstraintstudent;--约束execsp_stored_proc
- python 登录接口_(转载)Python 的 OAuth 登录接口 python-oauth2
weixin_39923110
python登录接口
前言python-oauth2是Python语言的OAuth2的实现,包括客户端和服务器端。该项目经过完整的测试。它拥有一下特点:100%单元测试覆盖。完全去掉了DataStore对象。所有的类名不再带有OAuth前缀。Request类生产字典对象。不再支持Python2.3。Client类是在httplib2基础上进行的扩展。文档中的示例全用的是Twitter,包括以下内容:基本的Twitter
- springboot之https服务器(生成keystore证书库及转cer证书)
Biu→Biu丶
springboothttpsjavahttps
一.生成自签名证书打开cmd输入命令生成证书:keytool-genkeypair-aliastomcat_https-keypass123456-keyalgRSA-keysize1024-validity365-keystore./https-java.keystore-storepass123456属性说明:-alias别名-keypass指定生成密钥的密码-keyalg指定密钥使用的加密算
- Maven使用SpringBoot部署https服务启动时加载KeyStore报错:Invalid keystore format(Maven官方解决办法)
跳小闹成长记-跳爸
技术分享invalidkeystorejksmavenresource
一、前言最近在本地部署https服务的时候遇到一个问题。在创建好keystore签名文件之后,完成了一切配置工作。接着在启动的过程中却报错:Invalidkeystoreformat。经过再三确认KeyStore签名文件格式本身并没有问题。接下来就和大家分享下该问题的根源,以及如何解决该问题。二、根因分析1、基本原因遇到疑难杂症Google就比较好的习惯(不要问我为什么不用某度),经过一番搜索之后
- vue3响应式丢失解决办法(三)
xiaozaq
vue.js前端javascript
vue3的响应式的理解,与普通对象的区别(一)vue3分析总结响应式丢失问题原因(二)经过前面2篇文章,知道了响应式为什么丢失了,但是还是碰到了丢失情况,并且通过之前的内容还不能解决。这里要解决响应式丢失问题需要用到几个函数:toRef、toRefs与storeToRefs。conststate=reactive({a:1,b:2});比如上面一个响应式对象state,该对象在其他组件或者页面需要
- Redis(二十二):Redis迁移工具
蓬莱道人
Redis数据库memcachedmysql
1.Redis-shake2.Redis-migrate-tool3.Redis-full-check1.Redis-shake1.1简介redis-shake是阿里云Redis&MongoDB团队开源的用于redis数据同步的工具。redis-shake是我们基于redis-port基础上进行改进的一款产品。它支持解析、恢复、备份、同步四个功能。恢复restore:将RDB文件恢复到目的redi
- Pinia入门
qincjun
前端学习指南pinia
一、铺垫pinia官网:https://pinia.vuejs.org/zh/getting-started.html以下的内容全部来自官网;只不过有时候访问官网上不去;只能自己扒下来;pinia的前端使用非常简单;只需要掌握几个步骤就可以二、套路1.用你喜欢的包管理器安装pinia:yarnaddpinia#或者使用npmnpminstallpinia2.创建一个pinia实例(根store)并
- HBase的合并操作
b1gx
HBase
compact的作用flush操作会将memstore的数据落地为一个个StoreFile(HFile),那么随着时间的增长在HDFS上面就会有很多的HFile文件,这样对读操作会产生比较大的影响(读操作会对HFile进行归并查询),并且对DataNode的压力也会比较大。为了降低对读操作的影响,可以对这些HFile进行compact操作,但是compact操作会产生大量的IO,所以可以看出com
- 推荐开源项目:Rebble Store for Pebble
幸竹任
推荐开源项目:RebbleStoreforPebblerebble-storePebbleappstorereplacement.项目地址:https://gitcode.com/gh_mirrors/re/rebble-store项目介绍RebbleStore是一个专为Pebble智能手表打造的替代应用商店。随着原生Pebble应用商店逐渐淡出视线,RebbleStore正在积极发展并提供与之媲
- html显示base64的pdf,html - base64 embeded PDF files won't render in Chrome - Stack Overflow
weixin_33047553
SomePDFfileswon'trenderinChromebrowserbutwillrenderfineinFirefox.Allfilesrenderfineinallbrowsersifemededdirectly.Theconfusingpartisthattheproblemisonlyforsomefilesandnotall.Filesarestoredinafolderthat
- 解决win10 cmd下运行python弹出windows应用商店
一勺菠萝丶
pythonwindows开发语言
Windows10的五月更新为MicrosoftStore应用商店带来了Python3.7原因是这个环境变量“C:\Users\hongc\AppData\Local\Microsoft\WindowsApps”的优先级比我们创建的python环境变量优先级高所以我们只需要删除这个环境变量即可但是为了不影响正常功能推荐将Python的环境变量放在前面即可
- Vue3实战:从零实现电商购物车功能(含完整代码)
chenNorth。
vue前端javascriptvue.js前端
文章目录一、功能需求分析二、技术方案选型三、项目结构设计四、核心代码实现1.创建PiniaStore(购物车状态管理)2.商品列表组件3.购物车面板组件五、关键实现细节1.数据持久化方案2.性能优化方案3.异常处理六、扩展功能实现1.服务端同步(示例)2.优惠券功能七、最佳实践建议八、总结一、功能需求分析一个完整的购物车系统需要包含以下核心功能:商品展示模块商品列表展示(图片、名称、价格)商品规格
- k8s架构与名词解释
AllanRobinLukeman
dockerk8s华为云
Master:管控集群的管理面节点,提供Kubernetes核心服务和应用程序工作负载的业务流程,对集群进行调度管理。MasterNode由APIServer、Scheduler、ClusterStateStore和Controller-ManagerServer所组成。Node:业务运行的工作节点,用于运行应用程序的容器工作负载。WorkerNode包含kubelet、kubeproxy和Con
- 记一次hivemetastore启动报错
不吃饭的猪
hive
1,启动hivemetastore后报错日志2,排查lib下的mysql的驱动也在,这里和mysql的驱动大小一样3,把hive-site.xml中无关的配置都删掉,重启metastore还是报错4,最后排查,这个节点rpm部署了hive,现在只是copy了一个hive的目录过来,导致/usr/bin/hive这个里面和现在部署的安装包不是同一个
- Hive服务启动 之 metastore配置 和 hiveserver2
龍浮影
hive
Hive服务启动之metastore服务配置和hiveserver2 配置hive的时候都需要配置hive-site.xml,配置过程中可以选择hive直连或者使用metastore服务间接连接,那么他们之间有什么区别呢? 首先贴直连配置代码:javax.jdo.option.ConnectionURLjdbc:mysql://hadoop102:3306/metastore?useSSL=fal
- hive的metastore和hiveserver2服务的启动
要开心吖ZSH
hivehivehadoop大数据
1、描述nohup:放在命令开头,表示不挂起,也就是关闭终端进程也继续保持运行状态/dev/null:是Linux文件系统中的一个文件,被称为黑洞,所有写入改文件的内容都会被自动丢弃2>&1:表示将错误输出重定向到标准输出上第一个2表示错误输出,另外0表示标准输入,1表示标准输出&:放在命令结尾,表示后台运行一般会组合使用:nohup[xxx命令操作]>file2>&1&,表示将xxx命令运行的结
- pl/sql使用部分整理
weixin_30718391
数据库
在工作中使用pl/sql工具,总结一下常用操作,以便以后复习,也希望帮助朋友们熟悉pl/sql操作!1.pl/sql记住登录密码PL/SQLDeveloper->tools->Preferences->Oracle->LogonHistory,在右边界面的"Definition"中,"Storehistory"是默认勾选的,再勾选上"Storewithpassword",即可.重新登录的时候,从O
- 分布式存储--大规模订单架构设计
梦江河
大数据分布式订单系统大数据
架构一:MySQL+HBase+ElasticsearchMySQL存储实时订单,HBase存储历史订单,Elasticsearch实现订单的多维度搜索。架构复杂,运维维护成本高架构二:MySQL+TablestoreTablestore其实是HBase+Elasticsearch,既能存储大量数据,也能全文搜索架构三:分布式数据库TiDB+全文搜索功能参考文章
- 【前端开发学习笔记12】Vue_5
wei387245232
学习笔记vue.js
Vuex构建多组件共享的数据环境index.js://创建一个空仓库//目标:安装vuex插件,初始化一个空仓库//1.安装vuex:yarnaddvuex@3//2.新建vuex模块文件:新建store/index.js专门存放vuex//3.创建仓库:Vue.use(Vuex),创建仓库newVuex.Store()//4.main.js导入挂载:在main.js中导入挂载到Vue实例上//这
- hivemetastore 连接过多导致sql查询慢
sunxunyong
sql数据库
MetaStore(DB)修改对应的处理连接数maxConnectionsPerPartition建议设置成100(不能超过最大值300),重启Hive服务。建议值100是根据与工行规模相当集群的设置作参考,尽量大满足连接数请求的同时考虑connection占用资源(如果connection太多会占用太多的内存资源)的角度做出的一个综合评估值。原因分析metastore采用了线程池,若使用连接数达
- react和react-native中redux @reduxjs/toolkit的使用
九段刀客
ReactNativereact.jsreactnativejavascript
下面的示例是在react-native中使用yarnaddreact-redux@reduxjs/toolkit一、store中store/module/dict.jsimport{createSlice}from'@reduxjs/toolkit';import{api_dict_biz}from'~/api/dict'
- vue写一个axios的拦截器
蓝胖子不是胖子
vue.js前端javascript
方便直接带入项目的工具类importaxios,{AxiosResponse}from'axios'importqsfrom'qs'import{ElMessage}from'element-plus'import{useUserStore}from'@/store/modules/user'importcachefrom'@/utils/cache'import{ElMessageBox}fro
- android最佳分区方案,高通Android分区表详解
Android 2012
android最佳分区方案
ModemPartitionformodemFscCookiepartitiontostoreModemFileSystem’scookies.SsdPartitionforssddiagmodule.storestheencryptedRSAkeysSbl1PartitionforsecondarybootloaderSbl1bakBackupPartitionforsecondarybootl
- UI-设计规范大小总结
香香甜甜的辣椒炒肉
ui设计规范
移动端iOS系统设计尺寸:iPhone16Pro以402×874为标准尺寸;iPhone14Pro屏幕尺寸6.1英寸,分辨率2556×1179像素;iPhone14ProMax屏幕尺寸6.7英寸,分辨率2796×1290像素。图标尺寸:AppStore中应用图标1024×1024像素,设备主屏幕上180×180像素(@3x);系统图标24×24像素到44×44像素。状态栏、导航栏和标签栏高度:iP
- uniapp-列表样式
耶啵奶膘
univueuni-appjavascript
{{index}}import{ref,reactive}from'vue'import{onLoad,onShow,onReachBottom}from'@dcloudio/uni-app'importifrom'@/libs/common/index.js'importapifrom'@/request/api.js'import{userStore}from'@/store/userStor
- 【uni-app】Pinia 持久化
秀秀_heo
WebApp开发uni-appvue.js前端
小程序端Pinia持久化说明:Pinia用法与Vue3项目完全一致,uni-app项目仅需解决持久化插件兼容性问题。持久化存储插件安装持久化存储插件:pinia-plugin-persistedstatepnpmipinia-plugin-persistedstate插件默认使用localStorage实现持久化,小程序端不兼容,需要替换持久化API。基本用法import{defineStore}
- 关于uniapp使用pinia持久化配置兼容问题
别催小唐敲代码
uni-app前端
import{defineStore}from'pinia';import{ref}from'vue';//定义StoreexportconstuseMembersStore=defineStore('members',()=>{//状态constmemberInfo=ref({})//actionsconstsaveMemberInfo=(info:any)=>{memberInfo.value
- Paimon实战 -- paimon原理解析
阿华田512
Paimon学习必读系列paimon数据湖paimon介绍flink写入
一.简介ApachePaimon原名FlinkTableStore,2022年1月在ApacheFlink社区从零开始研发,Flink社区希望能够将Flink的Streaming实时计算能力和Lakehouse新架构优势进一步结合,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。二.基本概念1、快照(Snapshot)快照捕获表在某个时间点的状态。用户可以通过最新的快照访
- paimon实战 --核心原理和Flink应用进阶
阿华田512
Paimon学习必读系列Flink学习必读系列flink大数据flink读写paimon数据湖
简介Flink社区希望能够将Flink的Streaming实时计算能力和Lakehouse新架构优势进一步结合,推出新一代的StreamingLakehouse技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。Flink社区内部孵化了FlinkTableStore(简称FTS)子项目,一个真正面向Streaming以及Realtime的数据湖存储项目。2023年3月1
- 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