- 字符串接龙 /单词接龙 (BFs C#
毕竟秋山澪
算法
卡码网110和力扣127和LCq108题都是一个解法这两道题乍一看在结果处可能不一样力扣要求字符串里边必须包含对应的最后一个字符而110不需要最后一个字符但是在实验逻辑上是一致的只是110需要把如果在set中找不到最后一个字符就直接返回0的逻辑删去就可以了这就是两道题的区别110.字符串接龙题目描述字典strList中从字符串beginStr和endStr的转换序列是一个按下述规格形成的序列:1.
- Redis 实现消息队列
先睡
redis数据库缓存
Redis提供了多种数据结构来实现消息队列,主要包括List和Stream。以下是两种实现方式的详细说明:1.基于List实现消息队列实现方式:生产者:使用LPUSH或RPUSH命令将消息推入队列。消费者:使用RPOP或LPOP命令从队列中获取消息。为了提高可靠性,可以使用BRPOPLPUSH或BLMOVE命令,这些命令可以在获取消息的同时将其移动到另一个队列(如Pending队列),以确保消息在
- [Pytest][Part 3]检测python package状态
思则变
pytestpytest
目录实现需求1:检查pythonpackage状态——pkg_resourcehook实现自动检测包状态conftest.pyhook钩子函数Part1:https://blog.csdn.net/x1987200567/article/details/144915315?spm=1001.2014.3001.5501从这里开始逐个实现Part1中的需求实现需求1:测试开始前检查测试需要的pyth
- JMeter InfluxDB v2 Listener Plugin 常见问题解决方案
柏滢凝Wayne
JMeterInfluxDBv2ListenerPlugin常见问题解决方案jmeter-influxdb2-listener-pluginInfluxDBv2.0listenerpluginforApacheJMeter.Providesthepossibilitytoseetheonlinedashboard(aggregationtable,errors,theresponsebodyoff
- C语言综合:项目:学生管理系统
lyx 弈心
c语言算法数据结构
概述1.基础2.试题3.实现4.演示1.基础基于之前的C语言内容补充三点:1.1结构体数组栈区的结构体数组:structStudentstu[5]={{},{},{},{},{}};//结构体内容此处省略堆区的结构体数组:structStudent*p=(structStudent*)calloc(5,sizeof(structStudent));二者的区别:栈区的结构体数组可以直接赋值与调用,堆
- jfinal结合easyui完成基本的增删改查操作
顽疲
jfinal学习jfinaljavaeasyuicrud
jfinal结合easyui完成增删改查操作创建jfinal项目,具体不多说,下面会放出源码。请结合jfinal官网创建一个jfinal项目,加深印象。什么是jfinal?JFinal是基于Java语言的极速web开发框架。重点在于easyui的分页下面贴出部分代码publicvoiduserList(){Stringsql="fromuserorderbyiddesc";Pagepaginate
- 代码随想录算法训练营第二十二天|LeetCode 77 组合,LeetCode 216 组合总和 III,LeetCode 450 删除二叉搜索树中的节点
二师兄呀1001
代码随想录算法训练营算法leetcode职场和发展
1.LeetCode77组合题目链接:77.组合classSolution:defcombine(self,n:int,k:int)->List[List[int]]:defbacktracking(n,k,startIndex,path,result):iflen(path)==k:result.append(path[:])returnforiinrange(startIndex,n-(k-l
- 部署项目后配置nginx 前端项目地址路径
weixin_54129994
server{listen端口;server_nameip地址;#charsetkoi8-r;#access_loglogs/host.access.logmain;location/{root/home/userManagement;//路径indexindex.htmlindex.htm;//文件try_files$uri$uri//index.html;expires7d;}location
- vue+element-ui:vue自定义指令监听el-table的滚动事件,达到滚动条滚动到底部加载新数据。
weixin_54129994
vue+element-uivuejsjavascript
1.首先在vue项目中的main.js文件添加一个监听el-table滚动条事件的自定义指令,以供全局使用。//准备一个滚动加载指令Vue.directive('loadmore',{bind(el,binding){constselectWrap=el.querySelector('.el-table__body-wrapper')selectWrap.addEventListener('scr
- CMakeLists.txt语法规则:条件判断中表达式说明四
魏劭
编译linux程序人生
一.简介前面学习了CMakeLists.txt语法中的部分常用命令,常量变量,双引号的使用。前面几篇文章也简单了解了CMakeLists.txt语法中的条件判断,文章如下:CMakeLists.txt语法规则:条件判断说明一-CSDN博客CMakeLists.txt语法规则:条件判断中表达式说明一-CSDN博客
- Laravel - Artisan命令
概述Artisan是Laravel提供的CLI(命令行接口),它提供了非常多实用的命令来帮助我们开发Laravel应用。前面我们已使用过Artisan命令来生成应用的AppKey和控制器。在本教程中,我们会用到以下Artisan命令,你也可以使用phpartisanlist来查看所有可用的Artisan命令。命令说明phpartisankey:generate生成AppKeyphpartisanm
- Laravel路由模型绑定:简化依赖注入的艺术
2401_85742452
laravelandroidphp
Laravel路由模型绑定:简化依赖注入的艺术引言在现代Web应用开发中,Laravel框架以其优雅和简洁的代码而闻名。Laravel的路由模型绑定(RouteModelBinding)是框架提供的一项强大功能,它允许开发者在路由处理中自动注入模型实例,从而简化控制器的依赖注入过程。本文将深入探讨路由模型绑定的概念、优势以及如何在实际项目中应用这一技术。路由模型绑定简介路由模型绑定是一种在Lara
- 迭代器模式 - Flutter中的集合导航专家,解锁数据遍历的无限可能!
明似水
flutter迭代器模式flutter
自定义滚动效果/树形结构遍历/分页加载…用迭代器掌控数据流动的节奏痛点场景:多源数据混合遍历假设你的社交应用需要显示以下内容:本地缓存的帖子新收到的实时消息推荐广告朋友动态这些数据来自不同接口,结构各异:ListcachedPosts=[...];StreamrealtimeMessages=[...];Listads=[...];Future>friendActivities=[...];传统遍
- 享元模式 - Flutter中的对象共享大师,万级列表的性能救星!
明似水
flutter享元模式flutterjavascript
痛点场景:万级社交表情列表假设你的社交应用需要展示:10,000+种表情每个表情有相同操作(点击、长按)表情图片资源较大(平均50KB)需要平滑滚动传统实现方式:ListView.builder(itemCount:10000,itemBuilder:(context,index){returnEmojiItem(emoji:allEmojis[index],//每个item独立实例onTap:(
- flutter flutter_vlc_player播放视频设置循环播放失效、初始化后获取不到视频宽高
小蜜蜂嗡嗡
flutter
插件:flutter_vlc_player:^7.4.3问题1:设置循环播放_controller.setLooping(true);无用。解决方法://vlcPlayer设置循环播放失效,以这种方式失效循环播放_setLoopListener()async{if(_videoController!.value.hasError){esLoadingToast('视频加载失败');}else{if
- “Redis缓存:掌握Redis常用五大数据类型“
南石.
后端#MySQL数据库进阶#Redis缓存redis笔记
目录1、Redis中String字符串1.1常用命令解释1.2原子性1.3具有原子性的常用命令1.4String数据结构2、Redis常用数据类型-List列表2.1概念2.2常用命令2.3数据结构3、Redis常用数据类型-Set集合3.1概念3.2常用命令3.3数据结构4、Redis常用数据类型-Hash哈希4.1概念4.2常用命令4.3数据结构5、Redis常用数据类型-Zset有序集合5.
- 43.Textbox的数据绑定 C#例子 WPF例子
军训猫猫头
c#wpfjava
固定最简步骤,包括XAML:题头里引入命名空间标题下面引入类box和block绑定属性C#:通知的类,及对应固定的任务引入字段引入属性属性双触发,其中一个更新block的属性block=>指向box的属性从Textbox这行看binding是绑定的意思,后面的inputtext是类里的一个属性意思就是它的文本和这个属性绑定了updatesourcetrigger是一个触发,后面等号后的内容是不同的
- spring boot中使用easyexcel简单实现导出功能
导入依赖com.alibabaeasyexcel3.1.1建立excel表格所需数据类(载入excel表的数据)ExcelProperty可定义列名,位置等属性@Data@ExcelIgnoreUnannotatedpublicclassOrderListResp{/***用户id*/@ApiModelProperty("用户id")//value代表列名,index为表格列序号,此代表列名为用户
- RabbitMQ如何使用线程池进行消费
涛歌依旧fly
RabbitMQ医疗挂号系统java-rabbitmqrabbitmqjava
第一步,先写配置@ConfigurationpublicclassRabbitmqConfig{@Bean("batchQueueRabbitListenerContainerFactory")publicRabbitListenerContainerFactoryrabbitListenerContainerFactory(ConnectionFactoryconnectionFactory){
- 【设计模式09】组合模式
鼠鼠我呀2
设计模式设计模式组合模式
前言适用于树形结构,如公司的组织架构,目录和文件夹UML类图代码示例packagecom.sw.learn.pattern.C_structre.c_composite;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Component;importj
- Python性能优化:10个提升代码性能的策略
进击的六角龙
Pythonpython性能优化开发语言
文末赠免费精品编程资料~~引言今天,我们就来聊聊如何让你的Python代码飞起来——通过10个实用的性能优化策略。别担心,我们会从基础讲起,一步步带你进入性能优化的大门。1.使用内置函数和库Python内置了许多高效的函数和库,利用它们往往比自己从头写要快得多。比如,列表推导式就比for循环创建列表更快。# 列表推导式 vs for循环fast_list = [i**2 for i in rang
- C++标准库大全(STL)
C++标准库大全(STL)1.容器(Containers)*问题类型:序列容器(std::vector,std::deque,std::list,std::forward_list,std::array,std::string):各自的特点、底层实现、优缺点和适用场景?容器特点底层实现优点缺点适用场景std::vector动态数组,支持快速随机访问连续内存+三指针(数据头/尾/容量尾)随机访问O(
- Flutter基础(ListView.builder)
ListView.builder最基本的形式需要两个参数:itemCount:列表项的总数。itemBuilder:一个回调函数,用于构建每个列表项。ListView.builder(itemCount:10,//列表项总数(这里是10个)itemBuilder:(context,index){//返回一个Widget作为列表项returnListTile(title:Text('项目$index
- Redis 详细介绍
骑牛小道士
redis数据库缓存
RedisRedis是什么为什么要用RedisRedis的持久化Redis数据共享分布式Redis缓存的安全性保证(分布式锁)Redis的部署模式分类Redis的全局IDRedisTemplate常用方法Redis的应用Redis在消息队列中应用方式一:基于List的队列方式二:Redis发布/订阅(Pub/Sub)模式Redis发布消息Redis订阅消息(配置监听器)方式三:基于Streams的
- react 自定义状态管理库
stoneSkySpace
react.js前端前端框架
核心实现原理:全局状态容器:维护单一状态源订阅机制:组件订阅状态变化状态更新调度:通过Hooks触发组件重渲染基础版实现–核心代码//1.创建全局状态存储constcreateStore=(initialState)=>{letstate=initialStateconstlisteners=newSet()return{getState:()=>state,setState:(newState)
- 牛客周赛 Round 39补题
cozywinter
python
警钟长鸣,题目的名字和题目没有绝对关系B-小红不想做鸽巢原理_牛客周赛Round39(nowcoder.com)鸽巢原理是类似于三个人进两间屋子,至少有一个屋子的人至少为两人这样,和这个好像关联也不是太大,可能我太笨没想到求一下读入的数量的总数,对k取模,列表降序排列,从最大的数量开始判断能取几堆球不要忘记特判能全取光的情况n,k=map(int,input().split())li=list(m
- C++小游戏:欢乐赌场
独孤求拜1024
c++
废话赌博有害,请勿赌博#includeusingnamespacestd;structnode{stringname;intmoney;};nodedu[100];intmain(){srand(time(NULL));intn;cin>>n;for(inti=1;i>du[i].name;du[i].money=100;}inta,d[400],z[400];while(1){for(inti=
- C语言结构体精讲:从定义到初始化的三种核心方式
资料合集下载链接:https://pan.quark.cn/s/472bbdfcd014在C语言编程中,我们经常需要将不同类型的数据组合成一个有机的整体来进行处理,比如记录一个学生的信息(姓名、学号、成绩)。这时,单独的int、char或float变量就显得力不从心了。为了解决这个问题,C语言提供了一种强大的数据类型——结构体(Struct)。本文将根据课堂学习的要点,带你深入理解结构体变量的三种
- android原生 睡死,Android消息推送关键技术之休眠唤醒
为了节省电量,Android系统在一段时间不操作后,会进入休眠状态,Android6.0之后更是引入了Doze和Standby两种省电模式,达到进一步省电的目的。在这些省电模式下,会挂起一些设备的电源,限制网络访问和一些其它的后台操作,因此休眠自然也会影响到后台的推送服务。Android休眠机制由于Android系统是基于Linux内核的,所以Android系统地休眠机制也继承自Linux,并且在
- git操作命令大全
一个努力搬砖的码农
git命令git
1.配置#检查配置信息$gitconfig--list#查看全局配置列表$gitconfig--global-l#查看局部配置列表$gitconfig--local-l#查看所有的配置以及它们所在的文件$gitconfig--list--show-origin#修改本地默认分支master变为main$gitconfig--globalinit.defaultBranchmain#设置全局用户名/
- 多线程编程之存钱与取钱
周凡杨
javathread多线程存钱取钱
生活费问题是这样的:学生每月都需要生活费,家长一次预存一段时间的生活费,家长和学生使用统一的一个帐号,在学生每次取帐号中一部分钱,直到帐号中没钱时 通知家长存钱,而家长看到帐户还有钱则不存钱,直到帐户没钱时才存钱。
问题分析:首先问题中有三个实体,学生、家长、银行账户,所以设计程序时就要设计三个类。其中银行账户只有一个,学生和家长操作的是同一个银行账户,学生的行为是
- java中数组与List相互转换的方法
征客丶
JavaScriptjavajsonp
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
toArray
public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分
- Shell 流程控制
daizj
流程控制if elsewhilecaseshell
Shell 流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法):
<?php
if(isset($_GET["q"])){
search(q);}else{// 不做任何事情}
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样 if else if
if 语句语
- Linux服务器新手操作之二
周凡杨
Linux 简单 操作
1.利用关键字搜寻Man Pages man -k keyword 其中-k 是选项,keyword是要搜寻的关键字 如果现在想使用whoami命令,但是只记住了前3个字符who,就可以使用 man -k who来搜寻关键字who的man命令 [haself@HA5-DZ26 ~]$ man -k
- socket聊天室之服务器搭建
朱辉辉33
socket
因为我们做的是聊天室,所以会有多个客户端,每个客户端我们用一个线程去实现,通过搭建一个服务器来实现从每个客户端来读取信息和发送信息。
我们先写客户端的线程。
public class ChatSocket extends Thread{
Socket socket;
public ChatSocket(Socket socket){
this.sock
- 利用finereport建设保险公司决策分析系统的思路和方法
老A不折腾
finereport金融保险分析系统报表系统项目开发
决策分析系统呈现的是数据页面,也就是俗称的报表,报表与报表间、数据与数据间都按照一定的逻辑设定,是业务人员查看、分析数据的平台,更是辅助领导们运营决策的平台。底层数据决定上层分析,所以建设决策分析系统一般包括数据层处理(数据仓库建设)。
项目背景介绍
通常,保险公司信息化程度很高,基本上都有业务处理系统(像集团业务处理系统、老业务处理系统、个人代理人系统等)、数据服务系统(通过
- 始终要页面在ifream的最顶层
林鹤霄
index.jsp中有ifream,但是session消失后要让login.jsp始终显示到ifream的最顶层。。。始终没搞定,后来反复琢磨之后,得到了解决办法,在这儿给大家分享下。。
index.jsp--->主要是加了颜色的那一句
<html>
<iframe name="top" ></iframe>
<ifram
- MySQL binlog恢复数据
aigo
mysql
1,先确保my.ini已经配置了binlog:
# binlog
log_bin = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.log
log_bin_index = D:/mysql-5.6.21-winx64/log/binlog/mysql-bin.index
log_error = D:/mysql-5.6.21-win
- OCX打成CBA包并实现自动安装与自动升级
alxw4616
ocxcab
近来手上有个项目,需要使用ocx控件
(ocx是什么?
http://baike.baidu.com/view/393671.htm)
在生产过程中我遇到了如下问题.
1. 如何让 ocx 自动安装?
a) 如何签名?
b) 如何打包?
c) 如何安装到指定目录?
2.
- Hashmap队列和PriorityQueue队列的应用
百合不是茶
Hashmap队列PriorityQueue队列
HashMap队列已经是学过了的,但是最近在用的时候不是很熟悉,刚刚重新看以一次,
HashMap是K,v键 ,值
put()添加元素
//下面试HashMap去掉重复的
package com.hashMapandPriorityQueue;
import java.util.H
- JDK1.5 returnvalue实例
bijian1013
javathreadjava多线程returnvalue
Callable接口:
返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。
Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
ExecutorService接口方
- angularjs指令中动态编译的方法(适用于有异步请求的情况) 内嵌指令无效
bijian1013
JavaScriptAngularJS
在directive的link中有一个$http请求,当请求完成后根据返回的值动态做element.append('......');这个操作,能显示没问题,可问题是我动态组的HTML里面有ng-click,发现显示出来的内容根本不执行ng-click绑定的方法!
 
- 【Java范型二】Java范型详解之extend限定范型参数的类型
bit1129
extend
在第一篇中,定义范型类时,使用如下的方式:
public class Generics<M, S, N> {
//M,S,N是范型参数
}
这种方式定义的范型类有两个基本的问题:
1. 范型参数定义的实例字段,如private M m = null;由于M的类型在运行时才能确定,那么我们在类的方法中,无法使用m,这跟定义pri
- 【HBase十三】HBase知识点总结
bit1129
hbase
1. 数据从MemStore flush到磁盘的触发条件有哪些?
a.显式调用flush,比如flush 'mytable'
b.MemStore中的数据容量超过flush的指定容量,hbase.hregion.memstore.flush.size,默认值是64M 2. Region的构成是怎么样?
1个Region由若干个Store组成
- 服务器被DDOS攻击防御的SHELL脚本
ronin47
mkdir /root/bin
vi /root/bin/dropip.sh
#!/bin/bash/bin/netstat -na|grep ESTABLISHED|awk ‘{print $5}’|awk -F:‘{print $1}’|sort|uniq -c|sort -rn|head -10|grep -v -E ’192.168|127.0′|awk ‘{if($2!=null&a
- java程序员生存手册-craps 游戏-一个简单的游戏
bylijinnan
java
import java.util.Random;
public class CrapsGame {
/**
*
*一个简单的赌*博游戏,游戏规则如下:
*玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,
*如果点数和为2、3或12,则玩家输,
*如果和为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点
- TOMCAT启动提示NB: JAVA_HOME should point to a JDK not a JRE解决
开窍的石头
JAVA_HOME
当tomcat是解压的时候,用eclipse启动正常,点击startup.bat的时候启动报错;
报错如下:
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME shou
- [操作系统内核]操作系统与互联网
comsci
操作系统
我首先申明:我这里所说的问题并不是针对哪个厂商的,仅仅是描述我对操作系统技术的一些看法
操作系统是一种与硬件层关系非常密切的系统软件,按理说,这种系统软件应该是由设计CPU和硬件板卡的厂商开发的,和软件公司没有直接的关系,也就是说,操作系统应该由做硬件的厂商来设计和开发
- 富文本框ckeditor_4.4.7 文本框的简单使用 支持IE11
cuityang
富文本框
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>知识库内容编辑</tit
- Property null not found
darrenzhu
datagridFlexAdvancedpropery null
When you got error message like "Property null not found ***", try to fix it by the following way:
1)if you are using AdvancedDatagrid, make sure you only update the data in the data prov
- MySQl数据库字符串替换函数使用
dcj3sjt126com
mysql函数替换
需求:需要将数据表中一个字段的值里面的所有的 . 替换成 _
原来的数据是 site.title site.keywords ....
替换后要为 site_title site_keywords
使用的SQL语句如下:
updat
- mac上终端起动MySQL的方法
dcj3sjt126com
mysqlmac
首先去官网下载: http://www.mysql.com/downloads/
我下载了5.6.11的dmg然后安装,安装完成之后..如果要用终端去玩SQL.那么一开始要输入很长的:/usr/local/mysql/bin/mysql
这不方便啊,好想像windows下的cmd里面一样输入mysql -uroot -p1这样...上网查了下..可以实现滴.
打开终端,输入:
1
- Gson使用一(Gson)
eksliang
jsongson
转载请出自出处:http://eksliang.iteye.com/blog/2175401 一.概述
从结构上看Json,所有的数据(data)最终都可以分解成三种类型:
第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"ickes"这个字符串。
第二种类型是序列(sequence),又叫做数组(array)
- android点滴4
gundumw100
android
Android 47个小知识
http://www.open-open.com/lib/view/open1422676091314.html
Android实用代码七段(一)
http://www.cnblogs.com/over140/archive/2012/09/26/2611999.html
http://www.cnblogs.com/over140/arch
- JavaWeb之JSP基本语法
ihuning
javaweb
目录
JSP模版元素
JSP表达式
JSP脚本片断
EL表达式
JSP注释
特殊字符序列的转义处理
如何查找JSP页面中的错误
JSP模版元素
JSP页面中的静态HTML内容称之为JSP模版元素,在静态的HTML内容之中可以嵌套JSP
- App Extension编程指南(iOS8/OS X v10.10)中文版
啸笑天
ext
当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。你可以开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就可以在多个上下文环境中执行该任务。比如说,你提供了一个能让用户把内容分
- SQLServer实现无限级树结构
macroli
oraclesqlSQL Server
表结构如下:
数据库id path titlesort 排序 1 0 首页 0 2 0,1 新闻 1 3 0,2 JAVA 2 4 0,3 JSP 3 5 0,2,3 业界动态 2 6 0,2,3 国内新闻 1
创建一个存储过程来实现,如果要在页面上使用可以设置一个返回变量将至传过去
create procedure test
as
begin
decla
- Css居中div,Css居中img,Css居中文本,Css垂直居中div
qiaolevip
众观千象学习永无止境每天进步一点点css
/**********Css居中Div**********/
div.center {
width: 100px;
margin: 0 auto;
}
/**********Css居中img**********/
img.center {
display: block;
margin-left: auto;
margin-right: auto;
}
- Oracle 常用操作(实用)
吃猫的鱼
oracle
SQL>select text from all_source where owner=user and name=upper('&plsql_name');
SQL>select * from user_ind_columns where index_name=upper('&index_name'); 将表记录恢复到指定时间段以前
- iOS中使用RSA对数据进行加密解密
witcheryne
iosrsaiPhoneobjective c
RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名.
本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境
mac os
openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装.
Java 8
RSA基本原理
RS