收录一些又长又臭,还可能要手写的模板算法题(说的就是你快排)1.快速排序publicclassQuickSort{publicstaticvoidquickSort(int[]nums,intlow,inthigh){if(low=pivot)j--;while(i
go设计模式——模板方法(1)
qqqweiweiqq
设计模式servlet服务器
场景:其中某个特定操作的步骤是相同的,但实现方式却可能有所不同。这正是适合考虑使用模板方法模式的情况。首先,我们定义一个由固定数量的方法组成的基础模板算法。这就是我们的模板方法。然后我们将实现每一个步骤方法,但不会改变模板方法。将共有的部分进行封装、减少代码的重复性,以便于系统的高可维护性Go模版方法模式讲解和代码示例
所有的基础最短路问题 dijkstra、堆优化dijkstra、bellman-ford、SPFA、Floyd
Cyber_Wz
AcWing题解算法蓝桥杯c++数据结构图论
以下代码都是自己敲的,结合acwing和算法笔记的一些思路整理。禁止盗用!有些模板算法是acwing的做了标记。一、朴素Dijkstra算法整体思想:1.找到与起点s最近的且未确认最短路径的顶点(记为u),访问并加入集合st(确定了最短路的集合)。2.之后,令u为中介点,优化起点s与所有经过u可以到达的顶点v的最短距离。算法模板://朴素Dijkstra邻接矩阵存储稠密图intg[N][N];//
一些推荐的CCFCSP认证试题参考网址
荷包蛋要三分熟
首先贴上历年真题刷题网址,就是在官网上哈http://118.190.20.162/https://passport.ccf.org.cn/sso/login?from=aHR0cHM6Ly9jc3AuY2NmLm9yZy5jbi9jc3AvaW5kZXguYWN0aW9uP19hY2s9MQ==其实kuangbin那本书还有点看不懂,附上其它的算法模板算法模板源码:学院老师写的github中找到
AcWing 107. 超快速排序—逆序对
chp的博客
C++日常训练排序排序算法算法数据结构
问题链接:AcWing107.超快速排序问题描述分析这道题考查的算法不难,就只是利用归并排序来求逆序对的数量,但是主要是如何分析问题,如何能从问题中看出来和逆序对数量有关,现在的题目基本上很少是那种模板算法题了,更注重思维,所以一定要培养好思维,模板只是基础。这道题交换相邻的两个数,首先会先想到冒泡排序,冒泡排序就是交换相邻的两个数,这道题用冒泡排序也能做,但是冒泡排序时间复杂度是O(n2)O(n
前缀和模板算法
辅助东皇燕双鹰
算法
一)模板前缀和【模板】前缀和_牛客题霸_牛客网(nowcoder.com)前缀和:快速的得出数组中某一段连续区间的和暴力破解的话需要从头到尾的进行遍历,时间复杂度就可以达到O(N),而前缀和时间复杂度是可以达到O(1)的第一步:预处理创建出一个前缀和数组dp,这个数组和原始数组规模是同等大小的dp[i]就表示从[1,i]区间内所有数组的和1到N区间内的和和1到L-1区间内的和本质上来说是同一类问题
算法与数据结构笔记
失败的Cc
算法与数据结构算法数据结构动态规划
文章目录算法动态规划算法递归算法回溯算法搜索算法分治算法与树有关位运算二分查找单调栈单调队列滑动窗口并查集随机化算法双指针排序算法模拟数学数据结构位图二叉树链表图论正则匹配表达式求值模板算法动态规划算法关键点(求最值,有重叠子问题(计算过的结果用dp保存),最优子结构(最后的解包含上一步的解))状态和选择#初始化basecasedp[0][0][...]=base#进行状态转移for状态1in状态
2019-10-23 贪心算法
我的的昵称已被使用换一个吧
记得刚开始学算法的时候,以为这个贪心算法是个固定一套的有模板算法,其实这个变化还是很灵活的贪心算法在思想上简单、操作高效,省去了为找到最优解可能需要的穷举操作,但是不会求出问题的最优解,从而错过真正答案,比如:找零钱:25分,20分,5分,1分凑出41分,怎样搭配硬币个数最少贪心算法的思路无非是对每一步或者每一个子问题取最优:第一步:取25分第二步:25objs;inttotalC;}KNAPSA
lintcode 80. Median
刘小小gogo
image.png注意quikselect模板算法导论这是以right作为pivoit的情况;classSolution{public:/***@paramnums:Alistofintegers*@return:Anintegerdenotesthemiddlenumberofthearray*/intpartition(vector&a,intleft,intright){intpivoit=
5.7日总结
行者dx
学到了(DAY1小目标达成):两小节算法课,辅助算法性能与写对模板算法测试两小节框架整合篇,三大框架的配置30分钟一篇翻译40分钟40单词心得:战胜懒惰是解决焦虑的唯一法子,去做一点事,事情很多又怎么样,做一件事也总比在那忧愁怎么办,做不完来的实在4小部分(如此也是很轻松就能完成的,小目标积累完成大目标,既学了东西又不是很累枯燥,太棒了):背单词:早晨,上第一节课之前,40分钟框架学习:上午,抽出
【模板算法】单源最短路问题-dijkstra算法(邻接表+优先队列优化)
幻世至上
算法
dijkstra算法适用范围:求一个点到另一个点或其他点的最短路问题,当然,最大路也可以,重载一下a.data:length>a.length;}};dijkstra算法具体实现#defineMAX_N510#defineINF99999999intN,M,start,end,d[MAX_N][2];//总点数,总路径数,起点,终点,保存当前从起点出发最短路径(优先)及最小的dataintpre[
自己实现一个STL的list容器
Kuany_
C/C++
封装了list的数据结构,和push_back(),push_front(),pop_back(),pop_front(),size()方法,内嵌了iterator迭代器类,还写了for_each()和accumulate()模板算法#include//#include//#include#includeusingnamespacestd;namespaceminiSTL{templateclas
0095 经典算法系列——并查集(Union-Find)
gendlee1991
Algorithm
概念TODOUF的标准模板算法实战等式方程的可满足性(medium)朋友圈(medium)最长连续序列(hard)下面将介绍以上题目的实现:等式方程的可满足性(medium)分析:ListitemclassSolution{publicbooleanequationsPossible(String[]equations){intn=equations.length;UFuf=newUF();for
学习STL,先看看这篇STL的总结与应用吧
零碎@流年絮语
程序设计B
文章目录STL组件STL容器STL容器元素的条件STL容器的共同操作STL迭代器失效的情况vector的使用添加元素读取元素map/multimap的使用插入数据查找数据重载运算符set/multiset的使用pair模板算法学习感受早前学习数据结构的时候,看到别人都能够熟练地使用STL的内容,心想什么时候自己也能够做到,就现在来说,掌握下面这些还是远远不够的,想要充分的理解STL,还是得从源码来
弗洛伊德循环查找算法(快慢指针法/龟兔指针法)
fang 0 jun
learning
文章目录算法原理算法模板算法原理这个算法是两个指针,一个跑的快,一个跑得慢。在龟兔赛跑的寓言中,跑的快的称为“乌龟”,跑得快的称为“兔子”。不管乌龟和兔子在循环中从哪里开始,它们最终都会相遇。这是因为兔子每走一步就向乌龟靠近一个节点(在它们的移动方向上)。通过快慢指针则可以避免使用数据结构记忆,检测是否有循环,在求取最短路径也会使用算法模板while(fastNode&&fastNode.next
P2398 GCD SUM 题解
bifanwen
数论#素数莫比乌斯
博客园同步原题链接前置知识:整除分块线性筛模板算法一对于30%30\%30%的数据,n≤3×103n\leq3\times10^3n≤3×103.直接模拟就好了。时间复杂度:O(n2logn)O(n^2\logn)O(n2logn).实际得分:30pts30pts30pts.for(ifrom1ton)for(jfrom1ton)s+=gcd(i,j)print(s)算法二对于60%60\%60
PCL:如何自定义一个点云PointT类型
Charles_k
PCL
1,使用基础点云类型#include"pcl/point_types.h"#include"pcl/impl/instantiate.hpp"#include"foo.h"#include"impl/foo.hpp"templateclassFoo;2,定义新的点云类型structMyPointType{floattest;};3,自己定义的类型能够使用PCL里的模板算法#definePCL_NO
uva753(最大流)
二分查找
图论uva
题目的意思就是有n种插口,然后有m个设备,每个设备可以插一种插口,然后有k种(注意是种,个数不限)转换器,可以把一种设备的插口转成另一种.现在问有几个设备充不上电.,首先用一个超级源点把插口都连到超级源点,容量为1.然后把所有设备都连到超级汇点.然后通过转化器构造中间的边,容量是INF.在ek模板算法就能算出最大流..#include#include#includeusingnamespacest
模板方法模式
zhaoyubetter
模板方法定义了算法的步骤,并允许子类为一个或多个步骤提供实现;模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类实现,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤;钩子方法如下代码,钩子,可以让子类实现模板算法中的可选部分,或者在钩子对子类的实现不重要的时候,子类可对钩子置之不理。AndroidActivity的生命周期方法,就是模板方法模式的体现,很多
模板方法模式
Nicoolidu
Java
模板方法模式–实现要素准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类最大的灵活性。最后将方法汇总构成一个不可改变的模板方法。使用场景:算法或操作遵循相似的逻辑重构时(把相同的代码抽取到父类中)重要,复杂的算法,核心算法设计为模板算法抽象基类包含:基类基本方法:提供所有子类都需要的且实现一样的方法。基类抽象方法:代表具体原则,不知道具体细
c++求数组最大最小元素的值以及索引位置
Haifamaster
vc++
利用容器vector和模板算法max_element和min_element再加上迭代器很容易输出:#include#include#includeusingnamespacestd;intmain(){vectors1={99,76,54,24,56,57,100};vector::iteratorbiggest;biggest=max_element(s1.begin(),s1.end());
回调方法、模板方法模式、钩子(hook)区分
Walk_er
java设计模式java设计模式
其实这三者之间没什么可区分的,因为他们是不同领域的概念。但是他们非常相似都是在抽象的定义了方法,然后子类实现它。他们都是java多态特性的实践。概念领域区分:1.正确的说应该就是模板方法模式,模板方法模式提供模板方法,这个方法是一个模板算法,或者说在方法的调用顺序上固定了一个模板。2.回调方法,是固定一个方法外观,java中通过接口实现。3.钩子方法,是一个抽象类提供空实现,子类进行选择性重写的方
Kruskal 求最小生成树
YOUSIKI
手写模板算法思想:将所有边按照边权从小到大排序,设置一个并查集,用来判断两个点是否在同一个联通块内。从小到大依次考虑所有边,如果该边的两点已经在同一个联通块内,则无需再添加此联通块,否则将该边加入图中,并更改并查集。代码实现#include
#include
#include
#include
#include
usingnamespacestd;
structedge{
intx,y,w;
ed
qsort--random_shuffle
shuffle
1,实现random_shuffle:random_shuffle是STL中的一个模板算法,作用是随机重排列一对random access iterator之间的元素。基本思想是:假设序列有n个元素,先从所有元素中选一个放到位置1(即与位置1的元素交换),然后再从剩下的n-1个元素中选择一个放到位置2,以此类推。
2,qsort:partition之后双向递归。
qsort的实现: Vi
HDU 1233 还是畅通工程
HDU
转载请注明出处:http://blog.csdn.net/a1dark
分析:kruskal模板算法、原理很简单、就是先把边从小到大排个序、然后并查集、并在一起就OK、
#include<stdio.h>
#include<algorithm>
using namespace std;
struct node{
int s,e;
C++ 模版的优点和缺点
C++
优点:
1. 灵活性, 可重用性和可扩展性;
2. 可以大大减少开发时间,模板可以把用同一个算法去适用于不同类型数据,在编译时确定具体的数据类型;
3. 模版模拟多态要比C++类继承实现多态效率要高, 无虚函数, 无继承;
缺点:
1. 易读性比较不好,调试比较困难;
2. 模板的数据类型只能在编译时才能被确定;
3. 所有用基于模板算法的实现必须包含在整个设计的.h
设计模式之行为模式
labreeze
设计模式
1.模板方法模式TemplateMethod 主要逻辑在父类中实现,子类只实现部分抽象方法或者钩子方法。 钩子方法的目的是让子类能够控制模板算法中可选的部分。 2.状态模式。 context中默认有一个当前状态。 如果有context请求都委托当前state执行,状态的切换可以再state中切换,也可以在context中切换,具体看是否需要动态切
设计模式之行为模式
labreeze
设计模式
1.模板方法模式TemplateMethod 主要逻辑在父类中实现,子类只实现部分抽象方法或者钩子方法。 钩子方法的目的是让子类能够控制模板算法中可选的部分。 2.状态模式。 context中默认有一个当前状态。 如果有context请求都委托当前state执行,状态的切换可以再state中切换,也可以在context中切换,具体看是否需要动态切
HDU3657Game(最大流)
Msro
原文链接:http://www.cnblogs.com/gj-Acit/p/3926019.html这几天敲了几道最大流的问题,发现网络流真是模板算法啊。。。。敲来敲去敲了几遍,基本每遍都敲得让人灰心,但同时也感受到了网络流的强大所在,这是我做网络流的第一题,,本以为看了一遍小白书的代码差不多理解就可以A掉一题的,没想到打击不是一点点的少啊。。。。。首先小白书将的邻接矩阵存边,这里必须用邻接表,而
HDU 1711Number Sequence(KMP)
u010270403
KMP
好长时间没看模式匹配类型的题了,刚开始都不知道怎么写了,于是又仔细的看了一遍,才写出来.题目大意:求出一个字符串在另一个字符串中的位子;题目解析:运用模板算法KMP;错误分析:数组不要开得太大;#include
#include
#include
usingnamespacestd;
#pragmacomment(linker,"/STACK:102400000,102400000")
#defi
github中多个平台共存
jackyrong
github
在个人电脑上,如何分别链接比如oschina,github等库呢,一般教程之列的,默认
ssh链接一个托管的而已,下面讲解如何放两个文件
1) 设置用户名和邮件地址
$ git config --global user.name "xx"
$ git config --global user.email "
[email protected]"
ip地址与整数的相互转换(javascript)
alxw4616
JavaScript
//IP转成整型
function ip2int(ip){
var num = 0;
ip = ip.split(".");
num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
n
读书笔记-jquey+数据库+css
chengxuyuancsdn
htmljqueryoracle
1、grouping ,group by rollup, GROUP BY GROUPING SETS区别
2、$("#totalTable tbody>tr td:nth-child(" + i + ")").css({"width":tdWidth, "margin":"0px", &q
javaSE javaEE javaME == API下载
Array_06
java
oracle下载各种API文档:
http://www.oracle.com/technetwork/java/embedded/javame/embed-me/documentation/javame-embedded-apis-2181154.html
JavaSE文档:
http://docs.oracle.com/javase/8/docs/api/
JavaEE文档:
ht
shiro入门学习
cugfy
javaWeb框架
声明本文只适合初学者,本人也是刚接触而已,经过一段时间的研究小有收获,特来分享下希望和大家互相交流学习。
首先配置我们的web.xml代码如下,固定格式,记死就成
<filter>
<filter-name>shiroFilter</filter-name>
&nbs
Array添加删除方法
357029540
js
刚才做项目前台删除数组的固定下标值时,删除得不是很完整,所以在网上查了下,发现一个不错的方法,也提供给需要的同学。
//给数组添加删除
Array.prototype.del = function(n){
navigation bar 更改颜色
张亚雄
IO
今天郁闷了一下午,就因为objective-c默认语言是英文,我写的中文全是一些乱七八糟的样子,到不是乱码,但是,前两个自字是粗体,后两个字正常体,这可郁闷死我了,问了问大牛,人家告诉我说更改一下字体就好啦,比如改成黑体,哇塞,茅塞顿开。
翻书看,发现,书上有介绍怎么更改表格中文字字体的,代码如下
 
unicode转换成中文
adminjun
unicode编码转换
在Java程序中总会出现\u6b22\u8fce\u63d0\u4ea4\u5fae\u535a\u641c\u7d22\u4f7f\u7528\u53cd\u9988\uff0c\u8bf7\u76f4\u63a5这个的字符,这是unicode编码,使用时有时候不会自动转换成中文就需要自己转换了使用下面的方法转换一下即可。
/**
* unicode 转换成 中文
一站式 Java Web 框架 firefly
aijuans
Java Web
Firefly是一个高性能一站式Web框架。 涵盖了web开发的主要技术栈。 包含Template engine、IOC、MVC framework、HTTP Server、Common tools、Log、Json parser等模块。
firefly-2.0_07修复了模版压缩对javascript单行注释的影响,并新增了自定义错误页面功能。
更新日志:
增加自定义系统错误页面功能
设计模式——单例模式
ayaoxinchao
设计模式
定义
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
分析
从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。
&nb
Javascript 多浏览器兼容性问题及解决方案
BigBird2012
JavaScript
不论是网站应用还是学习js,大家很注重ie与firefox等浏览器的兼容性问题,毕竟这两中浏览器是占了绝大多数。
一、document.formName.item(”itemName”) 问题
问题说明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName&quo
JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
bijian1013
junit4.11单元测试
下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网看了一下,如下发现:
[Zookeeper学习笔记之二]Zookeeper部署脚本
bit1129
zookeeper
Zookeeper伪分布式安装脚本(此脚本在一台机器上创建Zookeeper三个进程,即创建具有三个节点的Zookeeper集群。这个脚本和zookeeper的tar包放在同一个目录下,脚本中指定的名字是zookeeper的3.4.6版本,需要根据实际情况修改):
#!/bin/bash
#!!!Change the name!!!
#The zookeepe
【Spark八十】Spark RDD API二
bit1129
spark
coGroup
package spark.examples.rddapi
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object CoGroupTest_05 {
def main(args: Array[String]) {
v
Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
ronin47
modules
在modules目录中只有httpd.exp,那些so文件呢?
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,
Java基础-克隆
BrokenDreams
java基础
Java中怎么拷贝一个对象呢?可以通过调用这个对象类型的构造器构造一个新对象,然后将要拷贝对象的属性设置到新对象里面。Java中也有另一种不通过构造器来拷贝对象的方式,这种方式称为
克隆。
Java提供了java.lang.
读《研磨设计模式》-代码笔记-适配器模式-Adapter
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
package design.pattern;
/*
* 适配器模式解决的主要问题是,现有的方法接口与客户要求的方法接口不一致
* 可以这样想,我们要写这样一个类(Adapter):
* 1.这个类要符合客户的要求 ---> 那显然要
HDR图像PS教程集锦&心得
cherishLC
PS
HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。
软件有photomatix和nik hdr efex。
一、教程
叶明在知乎上的回答:
http://www.zhihu.com/question/27418267/answer/37317792
大意是修完后直方图最好是等值直方图,方法是HDR软件调一遍,再结合不透明度和蒙版细调。
二、心得
1、去除阴影部分的
maven-3.3.3 mvn archetype 列表
crabdave
ArcheType
maven-3.3.3 mvn archetype 列表
可以参考最新的:http://repo1.maven.org/maven2/archetype-catalog.xml
[INFO] Scanning for projects...
[INFO]
linux shell 中文件编码查看及转换方法
daizj
shell中文乱码vim文件编码
一、查看文件编码。
在打开文件的时候输入:set fileencoding
即可显示文件编码格式。
二、文件编码转换
1、在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
&
MySQL--binlog日志恢复数据
dcj3sjt126com
binlog
恢复数据的重要命令如下 mysql> flush logs; 默认的日志是mysql-bin.000001,现在刷新了重新开启一个就多了一个mysql-bin.000002
数据库中数据表数据迁移方法
dcj3sjt126com
sql
刚开始想想好像挺麻烦的,后来找到一种方法了,就SQL中的 INSERT 语句,不过内容是现从另外的表中查出来的,其实就是 MySQL中INSERT INTO SELECT的使用
下面看看如何使用
语法:MySQL中INSERT INTO SELECT的使用
1. 语法介绍
有三张表a、b、c,现在需要从表b
Java反转字符串
dyy_gusi
java反转字符串
前几天看见一篇文章,说使用Java能用几种方式反转一个字符串。首先要明白什么叫反转字符串,就是将一个字符串到过来啦,比如"倒过来念的是小狗"反转过来就是”狗小是的念来过倒“。接下来就把自己能想到的所有方式记录下来了。
1、第一个念头就是直接使用String类的反转方法,对不起,这样是不行的,因为Stri
UI设计中我们为什么需要设计动效
gcq511120594
UIlinux
随着国际大品牌苹果和谷歌的引领,最近越来越多的国内公司开始关注动效设计了,越来越多的团队已经意识到动效在产品用户体验中的重要性了,更多的UI设计师们也开始投身动效设计领域。
但是说到底,我们到底为什么需要动效设计?或者说我们到底需要什么样的动效?做动效设计也有段时间了,于是尝试用一些案例,从产品本身出发来说说我所思考的动效设计。
一、加强体验舒适度
嗯,就是让用户更加爽更加爽的用
JBOSS服务部署端口冲突问题
HogwartsRow
java应用服务器jbossserverEJB3
服务端口冲突问题的解决方法,一般修改如下三个文件中的部分端口就可以了。
1、jboss5/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
2、./server/default/deploy/jbossweb.sar/server.xml
3、.
第三章 Redis/SSDB+Twemproxy安装与使用
jinnianshilongnian
ssdbreidstwemproxy
目前对于互联网公司不使用Redis的很少,Redis不仅仅可以作为key-value缓存,而且提供了丰富的数据结果如set、list、map等,可以实现很多复杂的功能;但是Redis本身主要用作内存缓存,不适合做持久化存储,因此目前有如SSDB、ARDB等,还有如京东的JIMDB,它们都支持Redis协议,可以支持Redis客户端直接访问;而这些持久化存储大多数使用了如LevelDB、RocksD
ZooKeeper原理及使用
liyonghui160com
ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordination)服务,与之对应的Google的类似服务叫Chubby。今天这篇文章分为三个部分来介绍ZooKeeper,第一部分介绍ZooKeeper的基本原理,第二部分介绍ZooKeeper
程序员解决问题的60个策略
pda158
框架工作单元测试
根本的指导方针
1. 首先写代码的时候最好不要有缺陷。最好的修复方法就是让 bug 胎死腹中。
良好的单元测试
强制数据库约束
使用输入验证框架
避免未实现的“else”条件
在应用到主程序之前知道如何在孤立的情况下使用
日志
2. print 语句。往往额外输出个一两行将有助于隔离问题。
3. 切换至详细的日志记录。详细的日
Create the Google Play Account
sillycat
Google
Create the Google Play Account
Having a Google account, pay 25$, then you get your google developer account.
References:
http://developer.android.com/distribute/googleplay/start.html
https://p
JSP三大指令
vikingwei
jsp
JSP三大指令
一个jsp页面中,可以有0~N个指令的定义!
1. page --> 最复杂:<%@page language="java" info="xxx"...%>
* pageEncoding和contentType:
> pageEncoding:它