- 博客(100)
- 资源 (11)
- 问答 (6)
- 收藏
- 关注
原创 MySQL的Group by后组内的数据的排序Order by
分组查询到结果后,组内的数据还想排序select a.id,a.x from ( select id,count(*) as x from ( select * from message order by id desc limit 1000000 ) as msg group by msg.sender)as awhere a.x>1重点:内部查询必须加上limit,这样可以防止mysql的优化,造成order by被忽略。...
2021-03-08 15:22:02
584
原创 你可能不知道的5个Chrome调试技巧
1.格式化压缩过的JavaScript压缩过后的JavaScript看起来就几行,每一行都很长,如果不进行格式化,根本没办法进行调试。Chrome的{}按钮(Pretty-print)可以使JavaScript以格式化的方式打开。2.断点修改DOM元素的JavaScript想要知道哪个代码修改了当前元素属性、修改了当前元素的子元素、删除了当前元素?Break on可以断点到对应的Jav...
2019-10-11 17:48:14
537
原创 日志文件分析工具
日志文件分析工具按空格split初始化字符匹配组合条件计数统计函数:自定义AttPreProcessor预处理行为分组排序limit:限制输出数量花了两天时间写了一个日志文件分析工具。该工具可实现对日志文件的分析,可以方便地对日志文件进行类似于数据库查询统计一样的操作。主要功能包括:条件筛选:包含、不包含、相等、不等、大于、大于等于、小于、小于等于、正则匹配不同条件的“或”与“并”关系可...
2019-03-21 11:48:06
1852
原创 JavaScript的自执行方法和模块模式
首先,每个方法定义的局部变量,在外部是无法访问的,比如:function foo(){ var name;}这里的name变量对外界没有任何的污染,不会影响到其他地方的代码。如果每个模块的代码都这样写,那么就都不会打架了。利用的函数的这一特性来实现隔离非常有效。通常情况下,我们只需要一个匿名的自执行函数就可以了:(function(){ var name = 'Tom'; re
2016-12-21 14:25:44
637
1
原创 通过修改EL表达式输出行为解决XSS问题
项目中有好多通过EL表达式输出字符时没有考虑XSS问题,比如<div><span>${user.name}</span></div>简单来说,可以使用jstl标签来显示就好了:<div><span><c:out value="${user.name}"/></span></div>问题是,系统中非常多地方都存在这种问题,要一一修改工作量简直就是灾难啊。 我想到的办法是,改变EL表达式的输出
2016-08-20 01:00:04
5717
原创 阿里云RDS接口开发笔记
这里是RDS的接口文档:阿里云开发者社区,但文档里说的那些什么签名啊什么的其实是有误导的,咱不需要关心。感觉RDS的接口最开始就是这种HTTP的,我在看这个文档的时候就很奇怪,为什么没有封装成SDK。看签名部分的时候真的很蛋疼。其实是有SDK的,并且在文档中有引用到:aliyun-openapi-java-sdk。阿里云几乎所有的api都可以在这里找到,当然包括了RDS。但就单个模块而言,在gith
2016-07-18 22:36:11
3638
原创 Lync(Skype)接口开发实录
首先要把测试环境搭起来。 在使用Lync登录时如果报证书验证错误,可以采用这个方法导入证书就好了: http://www.cnblogs.com/liyuxin/p/3708633.html如果遇到下面这种错误,那肯定是账号在AD域中根本不存在: 安装Skype for bussiness: https://www.microsoft.com/zh-cn/download/confirmat
2016-07-02 00:49:16
3660
原创 MySQL创建外键时报Can't create table (errno: 150)错误解决办法
总的来说,这个问题的原因就是创建的外键和关联的表的主键类型不匹配。下面用个简单的例子来说明。两张很简单的表,学生表和教师表:CREATE TABLE `t_teacher` ( `id` varchar(11) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAUL
2016-05-17 02:30:02
42443
4
原创 进步了的时间才算时间
今天看到一个观点,觉得挺有道理的。“做技术的应该找大一点儿的公司和平台,为以后铺路”。确实啊,如果一直在小公司呆着,你永远都只能是小打小闹,不会有什么突破。等你稍微老一点儿,一大堆勤奋而且工资要求又低的新人涌入这个行业的时候,你就会被拍死在沙滩上! 去大公司的道理看似废话,大公司和大平台谁都想去啊,但不是每个人都能去的。我认为这不是重点,重点是,在你工作了一段时间之后,你还有没有想
2015-04-27 11:21:12
950
4
原创 进步了的时间才算时间
今天看到一个观点,觉得挺有道理的。“做技术的应该找大一点儿的公司和平台,为以后铺路”。确实啊,如果一直在小公司呆着,你永远都只能是小打小闹,不会有什么突破。等你稍微老一点儿,一大堆勤奋而且工资要求又低的新人涌入这个行业的时候,你就会被拍死在沙滩上! 去大公司的道理看似废话,大公司和大平台谁都想去啊,但不是每个人都能去的。我认为这不是重点,重点是,在你工作了一段时间之后,你还有没有想去大...
2015-04-27 11:17:57
144
原创 Hibernate中的left outer join
首先,最简单的是一对多的连接,比如:select student from Teacher t join t.students student where student....如果是多对一呢?这里有隐式和显示的区别(上面的一对多的情况属于隐式连接)。可以像下面这样select student from Student student where student.teacher.ag
2014-12-17 19:17:34
1435
Hibernate中的left outer join
首先,最简单的是一对多的连接,比如:select student from Teacher t join t.students student where student....如果是多对一呢?这里有隐式和显示的区别(上面的一对多的情况属于隐式连接)。可以像下面这样select student from Student student where student.teacher...
2014-12-17 19:17:00
212
原创 从MyEclipse插件安装中想到的
网上一搜“Eclipse插件安装”一大堆文章,之前也懒得记。刚才又安装了以下SVN插件,真心蛋疼。我已经将SVN插件压缩文件下载到了本地,然后使用help->Install from site的安装方式来安装,结果先滚出一堆什么乱七八糟的东西来,好像是在检查网络上的一个路径,TM,我不都已经下载下来了吗?你检查各屁啊?!好不容易经过了这一步,然后我选择了我下载的压缩文件,然后就开始等待了。
2014-12-02 23:03:00
917
从MyEclipse插件安装中想到的
网上一搜“Eclipse插件安装”一大堆文章,之前也懒得记。刚才又安装了以下SVN插件,伤心啊。我已经将SVN插件压缩文件下载到了本地,然后使用help->Install from site的安装方式来安装,结果先滚出一堆什么乱七八糟的东西来,好像是在检查网络上的一个路径,TM,我不都已经下载下来了吗?你检查什么呢?!好不容易经过了这一步,然后我选择了我下载的压缩文件,然后就开始等待...
2014-12-02 23:03:00
114
排序算法之快速排序
快速排序可能是应用最广泛的排序算法了。流行的原因是因为它实现简单、适用于各种不同的输入数据且在一般的应用中比其他算法都要快得多。快速排序属于原地排序,不需要额外的空间(相对于归并排序)。快速排序算法的时间复杂度为NlogN。快速排序和归并排序类似,也是分治思想是应用。归并排序每次将数组一分为二,将两边都排序之后再合并。快速排序算法是每次将数组进行切分,保证切分点在相对于两边的子数组是有序的。左...
2014-11-22 10:40:00
137
原创 正则表达式在Java中的使用
一个简单的例子,使用正则表达式来匹配电话号码,电话号码包括了三到四位的区号;可有可无的连接符;6位到八位的电话号码。正则表达式如下:\d{3,4}-?\d{6,9}这里仅仅是举个例子,实际使用中,考虑到电话号码的合法性,区号还需要改进。简单而言,像下面这样就能使用这个正则表达式对字符串进行验证了:boolean match = Pattern.matches("\\d{3,
2014-11-16 17:51:00
791
正则表达式在Java中的使用
这里不打算说明正则表达式的具体细节,只讲Java中使用正则表达式的一些基础知识。一个简单的例子,使用正则表达式来匹配电话号码,电话号码包括了三到四位的区号;可有可无的连接符;6位到八位的电话号码。正则表达式如下:\d{3,4}-?\d{6,9}这里仅仅是举个例子,实际使用中,考虑到电话号码的合法性,区号还需要改进。简单而言,像下面这样就能使用这个正则表达式对字符串进行验证了:b...
2014-11-16 17:51:00
123
排序算法之归并排序
归并排序是分治思想的一个很好的例子。它比希尔排序在时间复杂度上更优,为NlogN,并且属于稳定排序方法(稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的)。自上而下的归并排序思想是,依赖于递归,逐级将待排序对象分割...
2014-11-15 18:53:00
106
反射中的数组
首先,拿到一个Class,可以通过如下方式来判断是否是一个数组类型:Class<?> c = f.getType();if(c.isArray()){ ...}可以通过:c.getComponentType()来获取到数组元素的类型。然后,可以通过下面的方式来创建一个数组:Object o = Array.newInstance(c, n);添...
2014-11-03 11:32:00
126
排序算法之初级排序
首先,将涉及到排序的基本操作抽象为一个接口,其中包括一下一些方法:(这里的约定是从小到大的排序)public interface Sort { /** * 对数组a进行排序 * @param a */ public void sort(Comparable[] a); /** * 大小比较 * @param a * @param b * @retur...
2014-10-26 22:30:00
96
原创 嵌入式(embed)Tomcat的使用
本来想用InstallAnyWhere来制作一个安装文件,里面包含一个tomcat,结果发现InstallAnyWhere
2014-10-24 16:55:30
18366
1
嵌入式(embed)Tomcat的使用
本来想用InstallAnyWhere来制作一个安装文件,里面包含一个tomcat,结果发现InstallAnyWhere一时半会儿可能学不下来。我的目的是想用Java SWT做一个壳子,内嵌一个浏览器,这个浏览器访问tomcat应用,让整个程序看起来像是一个CS架构的。我需要的功能倒是不复杂,想想能不能自己实现一个tomcat。Tomcat有没有提供这样的功能呢,不小心搜索了一下“嵌入式Tomc...
2014-10-24 16:55:00
1498
1
原创 InstallSeield安装及破解
安装文件:1、 在安装的最后一步选择激活,点击下一步2、 随便输入一串激活码,如(1111111111……),点击下一步.3、 提示出错,不用管,选择电子邮件激活,下一步4、 出现一串的序列码,拷贝它。5、 打开[InstallShield.12.豪华完全版].keygen.exe;粘上那串序列码,点create^,会生成一串很长的序列码,拷贝它。
2014-10-24 10:39:18
838
InstallSeield安装及破解
安装文件:http://pan.baidu.com/s/1o6NsbgA 密码:1qrh破解工具:http://pan.baidu.com/s/1kTA6WEb 密码:wnjs1、 在安装的最后一步选择激活,点击下一步2、 随便输入一串激活码,如(1111111111……),点击下一步.3、 提示出错,不用管,选择电子邮件激活,下一步4、 出现一串的序列码,拷贝它。5、 打开[In...
2014-10-24 10:39:00
339
UnionFind算法学习
算法来自Algorithms一书1.5节,在此备忘。该书配套网站:http://algs4.cs.princeton.edu/15uf/算法解决的问题解决的是动态连通性问题,给定N个点和N个点之间的连通数据,例如:N = 10(0,1,2,3,4,5,6,7,8,9)连通数据:(4,3)(3,8)(6,5)(9,4)(2,1)(8,9)(5,0)...
2014-10-19 17:18:00
152
学习使用iReport几点总结
1.iReport和jasperreport之间的关系个人理解的,iReport仅是一个报表设计器,他所能产生的结果就是jrxml文件,即报表设计木板文件。具体生成为报表,如pdf,word的时候,需要依赖于jasperreport库。2.使用流程:这是官方文档中的插图,说明了各个文件之间的转换关系。首先使用iReport生成jrxml文件,然后使用jasperreport lib...
2014-10-18 18:56:00
165
线程并发工具--线程安全集合
一般的集合,如ArrayList、HashSet、HashMap等,都是线程不安全的。不安全的表现是什么?ConcurrentModifyException都知道,在遍历集合的时候不能对集合进行添加和删除操作,否则就会抛这个一场。如果一个线程正在遍历一个集合的时候另外一个线程往这个集合中增加或删除了元素,那么程序就会出这个异常。这个异常的原理是,集合中有一个版本号,每次修改(添加或删除...
2014-10-18 18:29:00
132
线程并发工具--阻塞队列
BlockingQueue在生产者消费者模式中运用非常广泛,生产者往队列中增加产品,消费中从队列中获取产品。在增加和删除队列元素的时候,是否阻塞是可选的,比如队列为空时再获取队列元素时,是返回空、返回null还是抛异常,下面的摘自api文档的说明:Throws exceptionSpecial valueBlocksTimes outInsertadd(e...
2014-10-18 17:54:00
102
线程并发工具--Exchanger
Exchanger可以实现两个线程之间的数据交换: final Exchanger<String> exchanger = new Exchanger<String>(); new Thread(new Runnable(){ @Override public void run() { try { Thread.sleep(new ...
2014-10-18 17:17:00
78
原创 线程并发工具--CountDownLatch
倒计时器,某个xfinal CountDownLatch cdl = new CountDownLatch(10); for(int i = 0;i<10;i++){ final int index = i; new Thread(new Runnable(){ @Override public void run() { try { Thr
2014-10-18 17:04:33
495
线程并发工具--CountDownLatch
倒计时器,某个线程可以等待这个倒计时指向0的时候开始执行:final CountDownLatch cdl = new CountDownLatch(10); for(int i = 0;i<10;i++){ final int index = i; new Thread(new Runnable(){ @Override public void run...
2014-10-18 17:04:00
114
Version Control with Subversion
2019-03-25
8051 Tutorial 英文版
2019-03-21
面向对象编程:C++与Java比较教程 英文版
2014-03-17
Windows卸载程序失败,报打开安装日志文件时发生错误
2016-07-04
CSDN资源下载中,pdf在线查看功能是如何实现的?
2015-12-22
Lync是否有开发接口
2014-05-26
Lync是否有二次开发接口
2014-05-26
如何捕获iframe的关闭事件
2014-05-21
怎样读取ActiveDirectory域中的所有电脑的硬件信息
2014-01-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人