自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(6)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 分组查询取每组前n条记录实例

假设有这样一张运动员比赛成绩表 tb_score 现在要求查询出每个国家的前三名的成绩记录,查询语句可以这样写: 1、 select t3.id,t3.country,t3.score from (select t1.*, (select count(*) from tb_score t2 where t1.score<=t2.score and t1.country

2015-09-23 15:17:56 9807 3

原创 Centos下安装jdk8、tomcat8

一、如何卸载已安装的jdk 如果需要卸载已安装的jdk,那么可以: 1、rpm -qa|grep jdk 查看已安装的jdk版本 [root@localhost ~]#rpm -qa|grep jdk jdk-1.6.0_38-fcs 2、卸载jdk [root@localhost ~]#rpm -e --nodeps jdk-1.6.0_38-fcs 二、安装jdk8 1

2015-09-20 20:46:05 1790

原创 CountDownLatch理解一:与join的区别

首先,我们来看一个应用场景1: 假设一条流水线上有三个工作者:worker0,worker1,worker2。有一个任务的完成需要他们三者协作完成,worker2可以开始这个任务的前提是worker0和worker1完成了他们的工作,而worker0和worker1是可以并行他们各自的工作的。 如果我们要编码模拟上面的场景的话,我们大概很容易就会想到可以用join来做。当在当前线程中调用某个线

2015-09-17 00:21:30 20531 12

原创 几种读大文件方法的效率对比测试

说明: 1、首先调用了 generateBigFile() 生成一个大的txt 文件 a.txt,大小是 1.88G 。 package com.other.test1; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileRe

2015-09-14 00:21:10 4275

原创 java中的强引用、软引用、弱引用、虚引用

引用:http://www.233.com/Java/jichu/20070320/131115654.html 为了使应用程序更灵活地控制对象的生命周期,从jdk1.2开始,java把对象的引用分为四种:强引用、软引用、弱引用、虚引用。 一、强引用 强引用是最常见的、最被熟知的引用。例如:String s = new String("abc")。那么s就是一个强引用。如果一个对象具有强引用

2015-09-06 16:39:24 542

原创 也谈java浅克隆与深克隆

如果我们有一个对象a,我们想得到它的一个克隆,那么我们该怎么做呢?最直观、最笨的方法是我们先new一个a的同类对象b,然后挨个拷贝a的属性给b中的相应属性。那么,这里马上就得引出两个概念:浅克隆与深克隆。 如果用直白的、非严格定义的语言来解释这两个概念,那么可以这么说: 所谓浅克隆是指复制一个对象的实例,但是这个对象中包含的其它的对象还是共用的。 所谓深克隆是指复制一个对象的实例,而且这个对

2015-09-01 22:11:26 4020 1

rest api java demo(一个记账工程)

(1)项目简介 这个demo很简单,是一个记账小工程。用户可以注册、修改密码,可以记账、查找记账记录等。 (2)接口介绍 用户操作相关: post /users 用户注册 post /users/login 用户登录(这里我把login当成一个名词) put /users/pwd?userId=xxx&sign=xxx 用户修改密码 delete /users?uerId=xxx&sign=xxx 删除用户 记账记录操作相关: post /records?userId=xxx&sign=xxx 增加一条记账记录 get /records/:id?userId=xxx&sign=xxx 查询一条记账记录详情 put /records/:id?userId=xxx&sign=xxx 修改一条记账记录详情 get /records?查询参数&userId=xxx&sign=xxx 分页查询记账记录 delete /records/:id?userId=xxx&sign=xxx 删除一条记账记录 其中url中带sign参数的表示该接口需要鉴权,sign必须是url中最后一个参数。具体的鉴权方法是:用户登录后,服务器生成返回一个token,然后客户端要注意保存这个token,需要鉴权的接口加上sign签名,sign=MD5(url+token),这样可以避免直接传token从而泄露了token。这里我觉得接口最好还带一个时间戳参数timestamp,然后可以在服务端比较时间差,从而避免重放攻击。而且这样还有一个好处,就是如果有人截获了我们的请求,他想伪造我们的请求则不得不改时间戳参数(因为我们在服务器端会比较时间),这样一来sign势必会改变,他是无法得知这个sign的。如果我们没有加时间戳参数的话,那么,他截获了请求url,再重发这个请求势必又是一次合法的请求。我在这里为了简单一些,就不加时间戳了,因为这在开发测试阶段实在是太麻烦了。 (3)关于redis和数据库的说明 服务端在用户登录后,生成token,并将token保存到redis中。后面在接口鉴权的时候会取出token计算签名MD5(除sign外的url+token),进行比对。 这个demo搭建了一个redis主从复制,具体可以参考:http://download.csdn.net/detail/zhutulang/9585010 数据库使用mysql,脚本在 src/main/resources/accounting.sql

2016-07-26

windows版的redis(3.0.501版)master-slave

1、windows下redis,版本是3.0.501。特意弄了三份,用于搭建一个master和2个slave的主从复制。 2、压缩包下共三个文件,一个master,端口号是9379,一个slave1,端口号是9380,一个slave2,端口号是9381。另外,每个文件夹下各有一个sentinel.conf,用于启动sentinel。启动命令是redis-server sentinel.conf --sentinel 3、redis.conf配置项可参考:http://blog.csdn.net/zhutulang/article/details/51969760 搭建主从复制可参考:http://www.linuxidc.com/Linux/2015-04/116798.htm

2016-07-24

webservice入门学习代码笔记

本人自己的webservice入门学习的笔记。非常粗糙和浅显,主要是自己看的。博客地址:http://blog.csdn.net/zhutulang/article/details/51125459

2016-04-11

微信订阅号开发java_demo

微信订阅号开发java demo,只是接收、发送消息的接口。

2016-01-31

“简易版飞鸽传书”源码

该程序可实现在局域网内收发文字信息和文件的功能。希望可以通过这个样例让读者对java网络编程和IO编程有所了解。其中,主要参考了李刚的《疯狂java讲义》,有一些代码直接拷贝自该书第17章,头像图片来源于网络,特此说明。另外需要说明的是:本程序在jdk1.8下开发,在笔者的局域网环境下测试通过,能实现发送文字消息和传输小文件的功能,但笔者并不能保证能在你的环境下也一定可以测试通过~ O__O “…

2015-10-23

java仿windows计算器

java写的仿windows风格计算器 注: 1、没有监听键盘事件 2、按一次“=”,只执行一次计算。而windows计算器不同,例如,按下“2+3”,每按一次“=”,会在结果上再加一次3。 3、“%”运算逻辑与windows的不同,这里认为是 当前数/100。

2012-11-12

字符验证码识别的算是比较新的论文吧

一篇字符验证码识别的论文,或许对你有启发

2012-06-08

Java高精度计算文件

Java高精度计算文件,很好用!!!非原创,特此向代码原作者致敬

2011-10-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除