jasypt加密

 

1.背景
现代互联网充斥着各种攻击、病毒、钓鱼、欺诈等手段,层出不穷。对于一个公司而已最基本的财富无非是代码和数据,“配置属性加密”的应用场景假设如果攻击者通过某些手段拿到部分敏感代码或配置,甚至是全部源代码和配置时,我们的基础设施账号依然不被泄漏。当然手段多种多种多样,比如以某台中毒的内网机器为肉机,对其他电脑进行ARP攻击抓去通信数据进行分析,或者获取某个账号直接拿到源代码或者配置,等等诸如此类。

2.思路
采用比较安全的对称加密算法;
对基础设施账号密码等关键信息进行加密;
构建时、运行时传入密钥,在加载属性前进行解密;
开发环境可以将密钥放置在代码中,测试、灰度、生产等环境放置在构建脚本或者启动脚本中;
如果自动化部署甚至可以有专门的程序来管理这些密钥(目前没有,暂不考虑);

值得思考的问题?

当内网被攻破,当源码泄漏,当zkui被攻破,当开发账号泄漏,当运维账号泄漏,我们如何保证生产环境的基础设施安全,如何防范关键信息泄漏?

3.技术框架
Jasypt是一个优秀的加密库,支持密码、Digest认证、文本、对象加密,此外密码加密复合RFC2307标准。http://www.jasypt.org/download.html
ulisesbocchio/jasypt-spring-boot,集成Spring Boot,在程序引导时对属性进行解密。https://github.com/ulisesbocchio/jasypt-spring-boot
4.处理过程

4.1 spring boot 密码形式

1.添加maven依赖引入jasypt



    com.github.ulisesbocchio
    jasypt-spring-boot-starter
    1.8

2.配置加密参数 

jasypt:
  encryptor:
    #这里可以理解成是加解密的时候使用的密钥
    password: password
写一个测试方法,这里直接在单元测试里面来实现给密码加密,得到字符串密码

@Autowired
StringEncryptor stringEncryptor;

@Test
public void encryptPwd() {
    String result = stringEncryptor.encrypt("yourpassword");
    System.out.println("=================="); 
    System.out.println(result); 
    System.out.println("==================");
}
把得到的密文写到需要使用到的地方,加密后的字符串需要放到ENC里面,格式如下:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false
    username: root
    password: ENC(4TyrSSgQd2DCHnXVwkdKMQ==)
    driver-class-name: com.mysql.jdbc.Driver

5.启动时加载命令模式
 通过命令行运行 jasypt-1.9.2.jar 包命令来加密解密:


1. 在jar包所在目录打开命令行,运行如下加密命令:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=security algorithm=PBEWithMD5AndDES
运行结果如下:
----ENVIRONMENT-----------------

Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.91-b14 

----ARGUMENTS-------------------

algorithm: PBEWithMD5AndDES
input: root
password: security

----OUTPUT----------------------

i00VogiiZ1FpZR9McY7XNw==
 2. 使用刚才加密出来的结果进行解密,执行如下解密命令:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="i00VogiiZ1FpZR9McY7XNw==" password=security algorithm=PBEWithMD5AndD
运行结果如下:

----ENVIRONMENT-----------------

Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.91-b14 

----ARGUMENTS-------------------

algorithm: PBEWithMD5AndDES
input: i00VogiiZ1FpZR9McY7XNw==
password: security

----OUTPUT----------------------

root

 

4.2 spring boot   密码文件形式(这种比较流行)

0. 准备工作:
0.1 生成密码文件
      使用附件加密工具(亦可@运维 帮忙从测试环境获取)生成密码文件:
      a. 执行java -jar jasypt-password-tool.jar
      b. 根据提示操作生成密码文件(一级),键入命令genkeyfile 
          如:genkeyfile E:\\password.dat

0.2 生成加密后的密码
      c. 根据提示,使用密码文件对数据库明文密码加密,键入命令encrypt -f  <filepath>
          如:encrypt -f 12345678 E:\\password.dat 
                生成密文:DzANZvtzC/JrnRTz8te1s/J/Pw=


1. 应用pom.xml新增依赖:
        <dependency>
              <groupId>com.github.ulisesbocchio</groupId>
             <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>1.18</version>
        </dependency>

2. 配置文件新增配置(path指向加密文件):
        jasypt.encryptor.password-file-path=/home/jasypt/pwd.dat

3. 配置加密密码,如下:
        
 hikari.datasource.write.password=ENC(DzANZvtzC/JrnRTz8te1s/J/Pw=)


4. 启动应用,看是否能成功启动。测试再具体测下insert、update等sql是否正常。

注:若应用启动失败,请检查mybatis相关包是否冲突,如下:
   
       <exclusion>
              <artifactId>mybatis-spring</artifactId>
              <groupId>org.mybatis</groupId>
       </exclusion>


若有任何问题,请及时反馈,谢谢。
</code></pre> 
  <p><br><strong>4.3、spring 配置</strong></p> 
  <pre class="has"><code class="language-java">1、使用spring mvc集成,可继承PropertyPlaceholderConfigurer子类
public class MyPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
    @Override
    protected String convertProperty(String propertyName, String propertyValue) {
        //针对数据库连接密码加密
        if (propertyName.equalsIgnoreCase("spring.datasource.password")) {
            propertyValue = propertyValue.replace("eszxdr", "");
        }
        return super.convertProperty(propertyName, propertyValue);
    }
}
2、实例化自定义的PropertyPlaceholderConfigurer对象
使用xml方式配置
<bean id="propertyConfigurer" class="com.spring.boot.test.util.MyPropertPlaceholderConfigurer">
    <property name="locations">
        <list>
        <value>classpath:application.poperties</value>
        </list>
    </property>
</bean>
使用java配置方式
@Bean
public PropertyPlaceholderConfigurer propertyPlaceholderConfigurer(){
    PropertyPlaceholderConfigurer placeholderConfigurer=new MyPropertyPlaceholderConfigurer();
    PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    Resource resource = resolver.getResource("classpath:application.properties");
    placeholderConfigurer.setLocation(resource);
    return placeholderConfigurer;
}
3、以上方式不支持yaml文件,无法使用spring boot,因为使用spring boot 数据库连接会在PropertyPlaceHolderConfigurer之前初始化
</code></pre> 
  <p><br>  </p> 
  <p> </p> 
  <p><em>参考文章:https://blog.csdn.net/clypm/article/details/79539124</em></p> 
  <p><em>参考文章:https://blog.csdn.net/u014421556/article/details/78832427#commentsedit</em></p> 
  <p> </p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1288453617740750848"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(算法)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1895934400122646528.htm"
                           title="考研导师选择方法" target="_blank">考研导师选择方法</a>
                        <span class="text-muted">herosunly</span>
<a class="tag" taget="_blank" href="/search/%E8%80%83%E5%90%8D%E6%A0%A1%E7%A0%94%E7%A9%B6%E7%94%9F%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">考名校研究生经验分享</a><a class="tag" taget="_blank" href="/search/%E8%80%83%E7%A0%94/1.htm">考研</a><a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9%E5%AF%BC%E5%B8%88/1.htm">选择导师</a><a class="tag" taget="_blank" href="/search/%E8%80%83%E7%A0%94%E5%AF%BC%E5%B8%88/1.htm">考研导师</a><a class="tag" taget="_blank" href="/search/%E9%80%89%E6%8B%A9%E6%96%B9%E6%B3%95/1.htm">选择方法</a>
                        <div>  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。  </div>
                    </li>
                    <li><a href="/article/1895930114957438976.htm"
                           title="梯度下降法(Gradient Descent) -- 现代机器学习的血液" target="_blank">梯度下降法(Gradient Descent) -- 现代机器学习的血液</a>
                        <span class="text-muted">AOIWB</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>梯度下降法(GradientDescent)–现代机器学习的血液梯度下降法是现代机器学习最核心的优化引擎。本文从数学原理、算法变种、应用场景到实践技巧,用三维可视化案例和代码实现揭示其内在逻辑,为你构建完整的认知体系。优化算法一、梯度下降法的定义与核心原理定义:梯度下降法是一种通过迭代更新参数来最小化目标函数的优化算法,其核心思想是沿着当前点的负梯度方向逐步逼近函数最小值。数学表达:参数更新公式为</div>
                    </li>
                    <li><a href="/article/1895929988633391104.htm"
                           title="环境会影响你的决策:K近邻算法(KNN)" target="_blank">环境会影响你的决策:K近邻算法(KNN)</a>
                        <span class="text-muted">AOIWB</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/1.htm">机器学习基础</a><a class="tag" taget="_blank" href="/search/%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95/1.htm">近邻算法</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>环境会影响你的决策:K近邻算法(KNN)1.核心思想与流程KNN是一种基于局部相似性的分类算法,核心思想是“近朱者赤”:待测样本的类别由其最近的k个邻居的多数类别决定。关键步骤:定义空间与距离:通常采用欧式空间,计算两点间直线距离:dis(a,b)=∑i=1n(ai−bi)2\text{dis}(a,b)=\sqrt{\sum_{i=1}^n(a_i-b_i)^2}dis(a,b)=i=1∑n(a</div>
                    </li>
                    <li><a href="/article/1895929105614958592.htm"
                           title="3 算法1-3 火星人" target="_blank">3 算法1-3 火星人</a>
                        <span class="text-muted">咚咚轩</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>题目描述一个火星人用一个人类的手演示了如何用手指计数。如果把五根手指――拇指、食指、中指、无名指和小指分别编号为1,2,3,4和5,当它们按正常顺序排列时,形成了5位数12345,当你交换无名指和小指的位置时,会形成5位数12354,当你把五个手指的顺序完全颠倒时,会形成54321,在所有能够形成的120个5位数中,12345最小,它表示1;12354第二小,它表示2;54321最大,它表示120</div>
                    </li>
                    <li><a href="/article/1895926586100740096.htm"
                           title="OpenSSL 基础使用流程" target="_blank">OpenSSL 基础使用流程</a>
                        <span class="text-muted">TsuanS</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/OpenSSL/1.htm">OpenSSL</a>
                        <div>理解OpenSSL的基础使用流程是学习如何进行安全通信的关键,特别是在实现SSL/TLS连接时。以下是OpenSSL基础使用流程的一个简要总结,并附上一个简单的示例代码,帮助你理解如何通过OpenSSL建立一个基本的安全通信连接。OpenSSL基础使用流程初始化OpenSSL在使用OpenSSL之前,你需要先初始化OpenSSL库。这个初始化过程会加载加密算法、SSL库等所需的组件。创建SSL上下</div>
                    </li>
                    <li><a href="/article/1895920280518324224.htm"
                           title="前沿计组知识入门(二)" target="_blank">前沿计组知识入门(二)</a>
                        <span class="text-muted">tianyunlinger</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%BB%84/1.htm">计组</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>第2页:并行计算与编程硬件:多处理器多内存互连网络系统软件:并行操作系统用于表达和协调并发的编程构造应用软件:并行算法目标:利用硬件、系统和应用软件实现加速(速度提升):Tp=TspT_p=\frac{T_s}{p}Tp=pTs解决需要大量内存的问题第3页:并行算法/公式化并行公式化:并行化串行算法。并行算法:可能与串行算法完全不同。重点:主要讨论如何开发并行公式化。也会涉及一些非串行算法的并行例</div>
                    </li>
                    <li><a href="/article/1895916371338915840.htm"
                           title="嵌入式Qt的动平衡仪完整设计方案" target="_blank">嵌入式Qt的动平衡仪完整设计方案</a>
                        <span class="text-muted">m0_55576290</span>
<a class="tag" taget="_blank" href="/search/Balance/1.htm">Balance</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>一、系统架构总览硬件层硬件接口层数据采集模块动平衡算法模块数据存储模块UI模块通信模块系统服务层所有模块二、硬件接口层实现1.传感器驱动抽象//drivers/sensor_driver.hclassSensorDriver{public:virtualboolinit()=0;virtualQVectorreadData()=0;virtualboolcalibrate(floatbaseVal</div>
                    </li>
                    <li><a href="/article/1895909689535819776.htm"
                           title="【十大排序算法】(一)冒泡排序算法(优化)" target="_blank">【十大排序算法】(一)冒泡排序算法(优化)</a>
                        <span class="text-muted">2401_84408404</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">排序算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>intborder=len-1,lastIndex=0;for(inti=0;iarr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;lastIndex=j;isSorted=false;}}border=lastIndex;if(isSorted){break;}}}但是,优化第二版仍不是最优方案,上面的两种优化方案只是减少每轮的操作次数,</div>
                    </li>
                    <li><a href="/article/1895903134648168448.htm"
                           title="Datawhale 数学建模导论国赛B学习笔记" target="_blank">Datawhale 数学建模导论国赛B学习笔记</a>
                        <span class="text-muted">瓜瓜蛋</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>贪心算法贪心算法(Greedyalgorithm)(贪婪算法)基本思想:多机调度问题是一个多项式复杂程度的非确定性问题(Non-deterministicPolynomial),具有一定的复杂程度,当前没有有效的解决方法。相较于其它算法,贪心算法求解不从整体最优上加以考虑,。而是寻求某种意义上的局部最优解,从而做出当下最好的选择。因此,在求解并行机调度问题上,贪心算法容易获得近似最优解的答案,更有</div>
                    </li>
                    <li><a href="/article/1895894452124315648.htm"
                           title="react原理面试题" target="_blank">react原理面试题</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFreact/1.htm">前端react</a>
                        <div>以下是一些关于React原理的面试题:一、虚拟DOM(VirtualDOM)请简要解释React中的虚拟DOM是如何工作的?答案:当组件的状态发生变化时,React首先会在内存中创建一个新的虚拟DOM树来表示更新后的UI结构。然后,React会将这个新的虚拟DOM树与旧的虚拟DOM树进行比较(这个过程称为Diff算法)。Diff算法会找出两个虚拟DOM树之间的差异,例如哪些节点被添加、删除或者修改</div>
                    </li>
                    <li><a href="/article/1895892162663477248.htm"
                           title="2021年最新社招字节跳动 go 后端开发工程师一二三四五面面经" target="_blank">2021年最新社招字节跳动 go 后端开发工程师一二三四五面面经</a>
                        <span class="text-muted">AI乔治</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a>
                        <div>因为公司原因,所以就换了工作,第一目标就是字节,12月份找朋友内推的上海教育部门,朋友让我多准备准备,过了两周才开始一面。附上新鲜的一二三四五面面经。写在前面面试字节一定要提前复习,能提前多久就提前多久。尤其是算法,绝对是重中之重,因为我已经刷了3年LeetCode了,所以算法没怎么复习,三次面试一共6题也全写出来了,基本上都是原题。然后就是数据库、网络、消息中间件、架构等等。校招的话架构可以不用</div>
                    </li>
                    <li><a href="/article/1895886993481592832.htm"
                           title="【算法学习之路】4.简单数论(4)" target="_blank">【算法学习之路】4.简单数论(4)</a>
                        <span class="text-muted">零零时</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E4%B9%8B%E8%B7%AF/1.htm">算法学习之路</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6/1.htm">数学</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E7%B2%BE%E5%BA%A6/1.htm">高精度</a>
                        <div>简单数论(4)前言三.高精度1.什么是高精度2.解决办法精度乘除法一.精度乘法1.数据的存储2.步骤3.例题:高精度乘法二.精度除法1.例子2.步骤3.例题:高精度除法前言我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,滑动窗口的题单正在更新,其他的也会陆陆续续的更新,希望大家点赞收藏我会尽快更新的!!!三.高精度1.什么是高精度对运</div>
                    </li>
                    <li><a href="/article/1895879937345253376.htm"
                           title="三七互娱,蓝禾,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推" target="_blank">三七互娱,蓝禾,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推</a>
                        <span class="text-muted">weixin_53585422</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E7%BE%8E%E6%9C%AF/1.htm">游戏美术</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/%E6%B1%82%E8%81%8C%E6%8B%9B%E8%81%98/1.htm">求职招聘</a>
                        <div>三七互娱,蓝禾,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推①康冠科技【职位】算法、软件、硬件、技术,结构设计,供应链,产品,职能,商务【一键内推】https://sourl.cn/2Mm9Lk【内推码】EVBM88②蓝禾(秋招投过还可投)【岗位】国内/国际电商运营,设计,营销,职能,工作地:深圳【请选择“校园大使推荐码”】71T3HES【一键内推】https://so</div>
                    </li>
                    <li><a href="/article/1895875273329537024.htm"
                           title="软考程序员各模块知识点对应的分值分布及考试形式总结" target="_blank">软考程序员各模块知识点对应的分值分布及考试形式总结</a>
                        <span class="text-muted">水瓶丫头站住</span>
<a class="tag" taget="_blank" href="/search/%E8%80%83%E8%AF%95/1.htm">考试</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">排序算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>软考程序员考试分为基础知识(综合知识)和应用技术两个科目,各科目满分均为75分,合格标准通常为45分。以下是各模块知识点对应的分值分布及考试形式总结:一、综合知识(上午考试)题型:75道客观选择题(含5道专业英语题),每题1分,总分75分。核心模块及分值(基于近10次考试统计):数据结构和算法(11-13分)重点:顺序表、链表、树、图、排序与查找算法等。计算机系统基础知识(7-11分)包含进制转换</div>
                    </li>
                    <li><a href="/article/1895871745378807808.htm"
                           title="算法001-奇偶统计-给你若干个数字,最后一个数字是 0,让你统计这些数字中有多少个偶数,以及所有奇数的和" target="_blank">算法001-奇偶统计-给你若干个数字,最后一个数字是 0,让你统计这些数字中有多少个偶数,以及所有奇数的和</a>
                        <span class="text-muted">m0_66127918</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a>
                        <div>奇偶统计【题目描述】给你若干个数字,最后一个数字是0,让你统计这些数字中有多少个偶数,以及所有奇数的和。【输入格式】一行,若干个数字,最后一个数字是0。【输出格式】第一行是这些数字中的偶数的个数。第二行是这些数字中奇数的总和。【样例】输入数据:125372399436542899933660输出数据:8257#includeusingnamespacestd;intmain(){intn,num_</div>
                    </li>
                    <li><a href="/article/1895870482687782912.htm"
                           title="冒泡排序算法优化" target="_blank">冒泡排序算法优化</a>
                        <span class="text-muted">kupeThinkPoem</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>一概述冒泡排序是一种简单的交换排序算法,其核心思想是通过相邻元素比较和交换将最大元素逐步移动到数组末尾。二、基础冒泡排序voidbubbleSort(intarr[],intn){for(inti=0;iarr[j+1]){swap(arr[j],arr[j+1]);}}}}三、优化方案及实现1提前终止优化(最优情况时间复杂度O(n))voidoptimizedBubble1(intarr[],i</div>
                    </li>
                    <li><a href="/article/1895864683345276928.htm"
                           title="苹果AI生态再扩容!iOS 18.4代码泄密:Find My定位将获Gemini多模态能力加持" target="_blank">苹果AI生态再扩容!iOS 18.4代码泄密:Find My定位将获Gemini多模态能力加持</a>
                        <span class="text-muted">北京自在科技</span>
<a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/findmy/1.htm">findmy</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E6%B2%BF%E6%8A%80%E6%9C%AF/1.htm">前沿技术</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/1.htm">科技</a><a class="tag" taget="_blank" href="/search/google/1.htm">google</a><a class="tag" taget="_blank" href="/search/Gemini/1.htm">Gemini</a>
                        <div>2025年2月24日,开发者社区通过iOS18.4测试版后端代码发现重大升级——苹果正将谷歌Gemini模型深度整合至FindMy定位体系,这标志着全球超20亿苹果设备组成的FindMyNetwork将迎来智能进化。FindMy技术升级路径多模态定位算法增强代码显示,当用户通过Siri调用FindMy查找AirTag或第三方设备时,系统将优先调用Gemini2.0的视觉-语义联合模型。例如查找丢失</div>
                    </li>
                    <li><a href="/article/1895858253225586688.htm"
                           title="leetcode 0004 寻找两个正序数组的中位数 - hard" target="_blank">leetcode 0004 寻找两个正序数组的中位数 - hard</a>
                        <span class="text-muted">SuperCandyXu</span>
<a class="tag" taget="_blank" href="/search/Leetcode/1.htm">Leetcode</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a>
                        <div>1题目:寻找两个正序数组的中位数给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。示例1:输入:nums1=[1,3],nums2=[2]输出:2.00000解释:合并数组=[1,2,3],中位数2示例2:输入:nums1=[1,2],nums2=[3,4]输出:2.50000解释:合并数组=[</div>
                    </li>
                    <li><a href="/article/1895851694764388352.htm"
                           title="强化学习探索与利用:多臂老虎机的UCB与Softmax策略" target="_blank">强化学习探索与利用:多臂老虎机的UCB与Softmax策略</a>
                        <span class="text-muted">海棠AI实验室</span>
<a class="tag" taget="_blank" href="/search/%E6%99%BA%E5%85%83%E5%90%AF%E7%A4%BA%E5%BD%95/1.htm">智元启示录</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/USB/1.htm">USB</a><a class="tag" taget="_blank" href="/search/Softmax/1.htm">Softmax</a>
                        <div>目录引言多臂老虎机问题概述ε-贪心算法(ε-Greedy)上置信界(UCB,UpperConfidenceBound)软max策略(Softmax)算法对比与评估实验与结果总结与展望参考文献引言多臂老虎机问题(Multi-ArmedBandit,MAB)是强化学习领域中的一个经典问题,广泛应用于广告推荐、网页优化、金融交易、医疗决策等场景。其核心挑战在于如何平衡探索(exploration)和利用</div>
                    </li>
                    <li><a href="/article/1895849802546081792.htm"
                           title="mysql怎样更改加密算法及修改密码加密方式" target="_blank">mysql怎样更改加密算法及修改密码加密方式</a>
                        <span class="text-muted">IT_狂奔者</span>
<a class="tag" taget="_blank" href="/search/MySQL/1.htm">MySQL</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>MySQL是一种流行的关系型数据库管理系统,可以用来存储和管理数据。MySQL默认使用的加密算法是sha256_password,但有时候我们需要更改加密算法。本篇文章将介绍如何更改MySQL的加密算法。mysql全局修改加密算法步骤如下:1.查看当前加密算法SELECT@@default_authentication_plugin;2.停止MySQLsudo/etc/init.d/mysqlds</div>
                    </li>
                    <li><a href="/article/1895849423410360320.htm"
                           title="2022-11-11 mysql-表间关联算法—BNL" target="_blank">2022-11-11 mysql-表间关联算法—BNL</a>
                        <span class="text-muted">悟世者</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>在MySQL中,多表关联一直是其处理不太好的地方。MySQL本身只支持一种表间关联方式,就是嵌套循环(NestedLoop)。如果关联表的规模较大,则执行时间会非常长。在5.5以后的版本中,MySQL通过引入多种算法来优化嵌套执行。下面就介绍其中的一种,BlockNested-Loop。1.准备工作(1).创建结构CREATETABLE`big_emp`(`empno`int(4)NOTNULL,</div>
                    </li>
                    <li><a href="/article/1895846525142102016.htm"
                           title="python蓝桥杯备赛(day8)[KMP算法]" target="_blank">python蓝桥杯备赛(day8)[KMP算法]</a>
                        <span class="text-muted">kiki坤哥</span>
<a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a>
                        <div>第四章字符串part02[KMP算法]今日任务28.实现strStr()题目链接:28.找出字符串中第一个匹配项的下标-力扣(LeetCode)文章链接:代码随想录这题要用kmp算法,一下是我认为搞清楚kmp需要知道的前缀表是什么:记录下标i之前(包括i)的字符串(即子串)中,最大长度相同前缀后缀前缀表有什么作用:前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始</div>
                    </li>
                    <li><a href="/article/1895845768644849664.htm"
                           title="mysql的算法" target="_blank">mysql的算法</a>
                        <span class="text-muted">再见,再也不见(๑>؂<๑)</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>MySQL是一个关系型数据库管理系统,其内部实现了许多算法来支持各种数据库操作和功能。以下是MySQL中一些常用的算法:查询优化算法:查询执行计划生成:MySQL使用查询优化器来生成最优的查询执行计划,以提高查询性能。优化器会考虑索引、表的统计信息、连接顺序等因素来选择最佳的执行计划。索引选择算法:MySQL会根据查询条件和表结构来选择合适的索引进行查询,常见的索引选择算法包括最左前缀匹配、覆盖索</div>
                    </li>
                    <li><a href="/article/1895845264363679744.htm"
                           title="【洛谷贪心算法】P1090合并果子" target="_blank">【洛谷贪心算法】P1090合并果子</a>
                        <span class="text-muted">Reese_Cool</span>
<a class="tag" taget="_blank" href="/search/%E6%B4%9B%E8%B0%B7/1.htm">洛谷</a><a class="tag" taget="_blank" href="/search/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/1.htm">贪心算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>为了使消耗的体力最小,每次都应该选择当前重量最小的两堆果子进行合并。可以使用优先队列(小根堆)来实现这个过程,优先队列可以自动维护元素的顺序,每次取出堆顶的两个元素(即最小的两个元素)进行合并,然后将合并后的结果重新插入堆中,重复这个过程直到堆中只剩下一个元素。【算法思路】优先队列的定义:使用priority_queue,greater>pq;定义一个小根堆,这样每次从堆中取出的元素都是当前最小的</div>
                    </li>
                    <li><a href="/article/1895836818276937728.htm"
                           title="NCCL学习笔记-拓扑和算法" target="_blank">NCCL学习笔记-拓扑和算法</a>
                        <span class="text-muted">MatsumotoChrikk</span>
<a class="tag" taget="_blank" href="/search/NVIDIA/1.htm">NVIDIA</a><a class="tag" taget="_blank" href="/search/NCCL/1.htm">NCCL</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>集合通信数据并行:all-reduce或reduce-scatter和all-gather张量并行:all-reduce流水并行:点对点p2p序列并行:all-gather和reduce-scatter专家并行:all-to-all集合通信-MPI标准进程间通信也是消息传递最基本的消息传递包括sendreceive等等MPI系统的通信方式都是p2p可以阻塞可以非阻塞而openMPI中就有多个集合通</div>
                    </li>
                    <li><a href="/article/1895834298838216704.htm"
                           title="前后端数据传输加密:Python 与 Vue 的实践" target="_blank">前后端数据传输加密:Python 与 Vue 的实践</a>
                        <span class="text-muted">风清扬【coder】</span>
<a class="tag" taget="_blank" href="/search/Web%E5%BA%94%E7%94%A8/1.htm">Web应用</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>Python与Vue实现接口数据加密传输在当今互联网应用开发中,数据安全是重中之重。尤其是在前后端进行数据交互时,确保传输数据的保密性、完整性和可用性,是每一位开发者不可忽视的关键环节。本文将深入探讨如何运用Python后端和Vue前端技术,实现接口数据传输过程中的加密处理,为大家揭开数据安全保护的神秘面纱。加密基石:AES算法我们选用的加密算法是AES(AdvancedEncryptionSta</div>
                    </li>
                    <li><a href="/article/1895834172405116928.htm"
                           title="实体识别处理--在给定的文本中识别特定类型的实体" target="_blank">实体识别处理--在给定的文本中识别特定类型的实体</a>
                        <span class="text-muted">风清扬【coder】</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%88%86%E6%9E%90%E5%A4%84%E7%90%86/1.htm">自然语言分析处理</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/nlp/1.htm">nlp</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a>
                        <div>整体功能概述这个算法实现了一个实体识别系统,主要用于在给定的文本中识别特定类型的实体。它结合了字典匹配和向量相似度匹配两种方法,利用预训练的BERT模型来获取实体的嵌入表示,通过构建Trie树来提高字典匹配的效率。代码结构和模块分析1.导入必要的库importtorchfromtorchimportnnfromtransformersimportBertTokenizer,BertModelfro</div>
                    </li>
                    <li><a href="/article/1895819175901851648.htm"
                           title="halcon手眼标定例程详解_七、机器人运动控制算法——标定" target="_blank">halcon手眼标定例程详解_七、机器人运动控制算法——标定</a>
                        <span class="text-muted">戴亦舒</span>
<a class="tag" taget="_blank" href="/search/halcon%E6%89%8B%E7%9C%BC%E6%A0%87%E5%AE%9A%E4%BE%8B%E7%A8%8B%E8%AF%A6%E8%A7%A3/1.htm">halcon手眼标定例程详解</a>
                        <div>在工程中,标定实验是经常要做的,有一些小伙伴可能不太清楚标定是什么,所以我就拿机器人来举例说明一下。前几章的主要任务是建立模型,那我们为什么要建立(数学)模型呢?(数学)模型又是什么呢?(数学)模型是对现实世界中各种物体、运动、或者工作过程的一种抽象,即用数学语言描述我们存在的世界。我们了解自然的目的是让自然界更友好地对待我们人类,让我们人类生存在这个地球上更容易一些。既然要改造自然,那前提是了解</div>
                    </li>
                    <li><a href="/article/1895809333761994752.htm"
                           title="高精度运算【加减乘除比较】" target="_blank">高精度运算【加减乘除比较】</a>
                        <span class="text-muted">NovakG_</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E5%BF%83%E5%BE%97/1.htm">学习心得</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E7%B2%BE%E5%BA%A6/1.htm">高精度</a>
                        <div>高精度定义高精度计算(ArbitraryPrecisionArithmetic)是指超过编程语言内置数据类型(如int、long、double)所能表示范围的数值运算。一般编程语言的数值类型有固定的存储位数,导致超出范围时可能溢出或丢失精度,因此需要使用高精度算法来处理。出现的原因:1️⃣存储空间限制:int、double等数据类型有固定的存储位数,超出范围会溢出或丢失精度。2️⃣浮点数误差:计算</div>
                    </li>
                    <li><a href="/article/1895808325212237824.htm"
                           title="基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。" target="_blank">基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。</a>
                        <span class="text-muted">qq924711725</span>
<a class="tag" taget="_blank" href="/search/%E4%BB%BF%E7%9C%9F%E6%A8%A1%E5%9E%8B/1.htm">仿真模型</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97/1.htm">随机森林</a>
                        <div>基于RF随机森林机器学习算法的回归预测模型MATLAB代码实现了一个回归任务的决策树集成模型。首先从Excel文件中导入数据集,并将数据划分为训练集和测试集。然后,对数据进行归一化处理并转置以适应模型的要求。文章目录MATLAB代码实现说明:MATLAB代码实现说明:运行代码前的注意事项:示例输出:MATLAB代码实现说明:示例输出:以下是一个基于随机森林(RF,RandomForest)机器学习</div>
                    </li>
                                <li><a href="/article/73.htm"
                                       title="Hadoop(一)" target="_blank">Hadoop(一)</a>
                                    <span class="text-muted">朱辉辉33</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。 
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧. 
&nbsp;&nbsp; 在hdfs下,运行hadoop fs -mkdir /u</div>
                                </li>
                                <li><a href="/article/200.htm"
                                       title="maven An error occurred while filtering resources" target="_blank">maven An error occurred while filtering resources</a>
                                    <span class="text-muted">blackproof</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E9%94%99/1.htm">报错</a>
                                    <div>转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources 
&nbsp; 
maven报错: 
maven An error occurred while filtering resources 
&nbsp; 
Maven -&gt; Update Proje</div>
                                </li>
                                <li><a href="/article/327.htm"
                                       title="jdk常用故障排查命令" target="_blank">jdk常用故障排查命令</a>
                                    <span class="text-muted">daysinsun</span>
<a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
                                    <div>linux下常见定位命令: 
1、jps &nbsp; &nbsp; &nbsp;输出Java进程 
&nbsp; &nbsp; &nbsp; -q &nbsp; &nbsp; &nbsp; 只输出进程ID的名称,省略主类的名称; 
&nbsp; &nbsp; &nbsp; -m &nbsp; &nbsp; &nbsp;输出进程启动时传递给main函数的参数; 
&nbsp; &nbsp; &nb</div>
                                </li>
                                <li><a href="/article/454.htm"
                                       title="java 位移运算与乘法运算" target="_blank">java 位移运算与乘法运算</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E7%A7%BB/1.htm">位移</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%AE%97/1.htm">运算</a><a class="tag" taget="_blank" href="/search/%E4%B9%98%E6%B3%95/1.htm">乘法</a>
                                    <div>&nbsp; 
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:  
&nbsp;  
&nbsp;  问题:  
用最有效率的方法算出2   乘以8   等於几?”        
答案:2 &lt;&lt; 3    
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二</div>
                                </li>
                                <li><a href="/article/581.htm"
                                       title="java中的枚举(enmu)" target="_blank">java中的枚举(enmu)</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举: 
public enum ResultType {
	
	/**
	 * 成功
	 */
	SUCCESS,
	/**
	 * 失败
	 */
	FAIL,
	</div>
                                </li>
                                <li><a href="/article/708.htm"
                                       title="MQ初级学习" target="_blank">MQ初级学习</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/activemq/1.htm">activemq</a>
                                    <div>1.下载ActiveMQ 
去官方网站下载:http://activemq.apache.org/ 
 
2.运行ActiveMQ 
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。 
 
启动ActiveMQ以后,登陆:http://localhos</div>
                                </li>
                                <li><a href="/article/835.htm"
                                       title="Spring_Transactional_Propagation" target="_blank">Spring_Transactional_Propagation</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a>
                                    <div>//事务传播属性 
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个 
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务 
@Transactional(propagation=Propagation.REQUIREDS_N</div>
                                </li>
                                <li><a href="/article/962.htm"
                                       title="我的spring学习笔记12-idref与ref的区别" target="_blank">我的spring学习笔记12-idref与ref的区别</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>idref用来将容器内其他bean的id传给&lt;constructor-arg&gt;/&lt;property&gt;元素,同时提供错误验证功能。例如: 
 
&lt;bean id =&quot;theTargetBean&quot; class=&quot;...&quot; /&gt;
&lt;bean id =&quot;theClientBean&quot; class=&quo</div>
                                </li>
                                <li><a href="/article/1089.htm"
                                       title="Jqplot之折线图" target="_blank">Jqplot之折线图</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/timeseries/1.htm">timeseries</a><a class="tag" taget="_blank" href="/search/jqplot/1.htm">jqplot</a>
                                    <div>timeseriesChart.html 
&lt;script type=&quot;text/javascript&quot; src=&quot;jslib/jquery.min.js&quot;&gt;&lt;/script&gt;  
&lt;script type=&quot;text/javascript&quot; src=&quot;jslib/excanvas.min.js&</div>
                                </li>
                                <li><a href="/article/1216.htm"
                                       title="JDBC中事务处理应用" target="_blank">JDBC中事务处理应用</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/JDBC%E7%BC%96%E7%A8%8B/1.htm">JDBC编程</a><a class="tag" taget="_blank" href="/search/%E4%BA%8B%E5%8A%A1%E6%8E%A7%E5%88%B6%E8%AF%AD%E5%8F%A5/1.htm">事务控制语句</a>
                                    <div>&nbsp; 
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复 
&nbsp; 
事务常用命令: 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Commit提交 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
                                </li>
                                <li><a href="/article/1343.htm"
                                       title="[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论" target="_blank">[转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8/1.htm">线程安全</a><a class="tag" taget="_blank" href="/search/HashMap/1.htm">HashMap</a>
                                    <div>在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的</div>
                                </li>
                                <li><a href="/article/1470.htm"
                                       title="ng-if与ng-show、ng-hide指令的区别和注意事项" target="_blank">ng-if与ng-show、ng-hide指令的区别和注意事项</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a>
                                    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或</div>
                                </li>
                                <li><a href="/article/1597.htm"
                                       title="【持久化框架MyBatis3七】MyBatis3定义typeHandler" target="_blank">【持久化框架MyBatis3七】MyBatis3定义typeHandler</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/TypeHandler/1.htm">TypeHandler</a>
                                    <div>什么是typeHandler? 
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射 
&nbsp; 内置typeHandler 
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler, </div>
                                </li>
                                <li><a href="/article/1724.htm"
                                       title="上传下载文件rz,sz命令" target="_blank">上传下载文件rz,sz命令</a>
                                    <span class="text-muted">bitcarter</span>
<a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4rz/1.htm">linux命令rz</a>
                                    <div>刚开始使用rz上传和sz下载命令: 
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求: 
 
我遇到的问题: 
sz下载A文件10M左右,没有问题 
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题 
 
解决方法: 
上传命令改为;rz -ybe 
下载命令改为:sz -be filename 
 
如果还是有问题: 
那就是文</div>
                                </li>
                                <li><a href="/article/1851.htm"
                                       title="通过ngx-lua来统计nginx上的虚拟主机性能数据" target="_blank">通过ngx-lua来统计nginx上的虚拟主机性能数据</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/ngx-lua%E3%80%80%E7%BB%9F%E8%AE%A1+%E8%A7%A3%E7%A6%81ip/1.htm">ngx-lua 统计 解禁ip</a>
                                    <div>介绍 
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能 
 
 支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计. 
 可以统计与query-times request-time </div>
                                </li>
                                <li><a href="/article/1978.htm"
                                       title="java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132" target="_blank">java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.Arrays;
import java.util.Comparator;

public class MinNumFromIntArray {

	/**
	 * Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
	 * 例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题</div>
                                </li>
                                <li><a href="/article/2105.htm"
                                       title="Oracle基本操作" target="_blank">Oracle基本操作</a>
                                    <span class="text-muted">ccii</span>
<a class="tag" taget="_blank" href="/search/Oracle+SQL%E6%80%BB%E7%BB%93/1.htm">Oracle SQL总结</a><a class="tag" taget="_blank" href="/search/Oracle+SQL%E8%AF%AD%E6%B3%95/1.htm">Oracle SQL语法</a><a class="tag" taget="_blank" href="/search/Oracle%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/1.htm">Oracle基本操作</a><a class="tag" taget="_blank" href="/search/Oracle+SQL/1.htm">Oracle SQL</a>
                                    <div>一、表操作 
 
1. 常用数据类型 
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位 
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位) 
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位) 
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认</div>
                                </li>
                                <li><a href="/article/2232.htm"
                                       title="[强人工智能]实现强人工智能的路线图" target="_blank">[强人工智能]实现强人工智能的路线图</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                                    <div> 
&nbsp;&nbsp;&nbsp; 1:创建一个用于记录拓扑网络连接的矩阵数据表 
&nbsp;&nbsp;&nbsp;&nbsp; 2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图 
&nbsp;&nbsp;&nbsp;&nbsp; 3:将这个流程图导入到矩阵数据表中 
&nbsp;&nbsp;&nbsp;&nbsp; 4:在矩阵的每个有意义的节点中嵌入一段简单的</div>
                                </li>
                                <li><a href="/article/2359.htm"
                                       title="给Tomcat,Apache配置gzip压缩(HTTP压缩)功能" target="_blank">给Tomcat,Apache配置gzip压缩(HTTP压缩)功能</a>
                                    <span class="text-muted">cwqcwqmax9</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                                    <div>背景: 
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,</div>
                                </li>
                                <li><a href="/article/2486.htm"
                                       title="SpringMVC and Struts2" target="_blank">SpringMVC and Struts2</a>
                                    <span class="text-muted">dashuaifu</span>
<a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a>
                                    <div>SpringMVC  VS Struts2

1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r</div>
                                </li>
                                <li><a href="/article/2613.htm"
                                       title="windows常用命令行命令" target="_blank">windows常用命令行命令</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/cmd/1.htm">cmd</a><a class="tag" taget="_blank" href="/search/command/1.htm">command</a>
                                    <div>在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本&nbsp;wmimgmt.msc 打开windows管理体系结构(wmi)&nbsp;wupdmgr windows更新程序&nbsp;wscrip</div>
                                </li>
                                <li><a href="/article/2740.htm"
                                       title="再看知名应用背后的第三方开源项目" target="_blank">再看知名应用背后的第三方开源项目</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a>
                                    <div>知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《 
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者 
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了 
Facebook Paper使用的第三</div>
                                </li>
                                <li><a href="/article/2867.htm"
                                       title="Objective-c单例模式的正确写法" target="_blank">Objective-c单例模式的正确写法</a>
                                    <span class="text-muted">jsntghf</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/iPhone/1.htm">iPhone</a>
                                    <div>一般情况下,可能我们写的单例模式是这样的: 
#import &lt;Foundation/Foundation.h&gt;

@interface Downloader : NSObject

+ (instancetype)sharedDownloader;

@end


#import &quot;Downloader.h&quot;

@implementation</div>
                                </li>
                                <li><a href="/article/2994.htm"
                                       title="jquery easyui datagrid 加载成功,选中某一行" target="_blank">jquery easyui datagrid 加载成功,选中某一行</a>
                                    <span class="text-muted">hae</span>
<a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/datagrid/1.htm">datagrid</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD/1.htm">数据加载</a>
                                    <div>1.首先你需要设置datagrid的onLoadSuccess   
$( 
'#dg' 
).datagrid({onLoadSuccess&nbsp;:&nbsp; 
function 
(data){   
&nbsp;&nbsp;&nbsp;&nbsp; 
$( 
'#dg' 
).datagrid( 
'selectRow' 
,3);   
}});   &nbsp;   
2.onL</div>
                                </li>
                                <li><a href="/article/3121.htm"
                                       title="jQuery用户数字打分评价效果" target="_blank">jQuery用户数字打分评价效果</a>
                                    <span class="text-muted">ini</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码: 
&lt;!DOCTYPE html&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;title&gt;jQuery用户数字打分评分代码 - HoverTree&lt;/</div>
                                </li>
                                <li><a href="/article/3248.htm"
                                       title="mybatis的paramType" target="_blank">mybatis的paramType</a>
                                    <span class="text-muted">kerryg</span>
<a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                                    <div>MyBatis传多个参数: 
1、采用#{0},#{1}获得参数: 
&nbsp;&nbsp; Dao层函数方法: 
&nbsp;&nbsp;&nbsp; public User selectUser(String name,String area); 
 对应的Mapper.xml 
&nbsp;&nbsp; &lt;select id=&quot;selectUser&quot; result</div>
                                </li>
                                <li><a href="/article/3375.htm"
                                       title="centos 7安装mysql5.5" target="_blank">centos 7安装mysql5.5</a>
                                    <span class="text-muted">MrLee23</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。 
&nbsp; 
#列出所有被安装的rpm package rpm -qa | grep mariadb 
&nbsp; 
#卸载 
rpm -e mariadb-libs-5.</div>
                                </li>
                                <li><a href="/article/3502.htm"
                                       title="利用thrift来实现消息群发" target="_blank">利用thrift来实现消息群发</a>
                                    <span class="text-muted">qifeifei</span>
<a class="tag" taget="_blank" href="/search/thrift/1.htm">thrift</a>
                                    <div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就</div>
                                </li>
                                <li><a href="/article/3629.htm"
                                       title="实现一个sizeof获取Java对象大小" target="_blank">实现一个sizeof获取Java对象大小</a>
                                    <span class="text-muted">teasp</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E5%AD%98/1.htm">内存</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E8%B1%A1%E5%A4%A7%E5%B0%8F/1.htm">对象大小</a><a class="tag" taget="_blank" href="/search/sizeof/1.htm">sizeof</a>
                                    <div>&nbsp;&nbsp; 由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。 
&nbsp; 
&nbsp;&nbsp;</div>
                                </li>
                                <li><a href="/article/3756.htm"
                                       title="SVN错误及处理" target="_blank">SVN错误及处理</a>
                                    <span class="text-muted">xiangqian0505</span>
<a class="tag" taget="_blank" href="/search/SVN%E6%8F%90%E4%BA%A4%E6%96%87%E4%BB%B6%E6%97%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BC%BA%E8%A1%8C%E5%85%B3%E9%97%AD/1.htm">SVN提交文件时服务器强行关闭</a>
                                    <div>在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道   SVN无法读取current修复方法 Can't read file : End of file found 
 
文件:repository/db/txn_current、repository/db/current 
&nbsp; 
其中current记录当前最新版本号,txn_current记录版本库中版本</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>