工作相关
文章平均质量分 51
siyangshen
这个作者很懒,什么都没留下…
展开
-
一个FTP Pool工具类的实现(Commons Pool)
今天写了一个FTPPool,贴上来分享一下。使用了相关的开源工具包2个:commons-net-3.0.1.jar和commons-pool-1.6.jar。代码如下: Pool.java:使用GenericObjectPool作为连接池管理连接,简单封装了borrowObject,returnObject。public abstract class Pool<T>...原创 2012-06-27 22:12:42 · 357 阅读 · 0 评论 -
关于SQL调优与报表的性能优化
前一段时间做了某产品实时统计的报表,这周在对报表性能进行优化。其中逐步积累了一些优化经验,总结一下记录下来,欢迎大家一起探讨。本文仅限于探讨单个数据库的查询sql及统计报表调优,不涉及分布式数据库架构或垂直、水平扩展等知识。(本文中的统计数据库为Mysql) 一、SQL调优:1、提升统计查询性能,首当其冲当然还是对查询SQL进行优化,说到SQL调优,不得不先说一下Mys...原创 2012-08-30 20:13:00 · 495 阅读 · 0 评论 -
获取JavaApplication当前工程路径
前日因工作中使用到日志和配置工具类,使相关信息输出文件中,因此总结了一下java中获取当前路径的方法(非web工程)。1、File类:File file = new File(".");System.out.println(file.getCanonicalPath());//如果是..则返回上一级文件夹System.out.println(file.getAbsolutePa...原创 2012-12-27 21:28:27 · 313 阅读 · 0 评论 -
Amoeba配置部署实践总结
Amoeba配置部署实践总结原创 2012-10-14 20:30:52 · 102 阅读 · 0 评论 -
使用tcpdump+wireshark进行应用分析
前一段时间接了一个任务,把目前主流的应用市场请求响应全抓出来分析一下,出个报告。至于分析这些应用的目的就不直说了。然后在邮件后面列出了一个长长的应用列表,包括:91、360、机锋、应用汇、安智、安卓...等等,以致于我把这些应用都装测试机上发现手机内存不够用了。不过加班加点昨天可算弄完,分析结果就不贴出来了,这里只记录一下方法。一、需要使用如下软件:android sdk (我装的...原创 2013-07-12 06:32:16 · 178 阅读 · 0 评论 -
某高并发应用JVM启动参数配置
这个是目前公司某高并发应用生产环境的JVM启动参数,该应用日pv近亿。一、先看一下生产环境的Java版本:java version "1.6.0_33"Java(TM) SE Runtime Environment (build 1.6.0_33-b04)Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)...原创 2013-07-29 21:51:47 · 474 阅读 · 0 评论 -
与git服务器添加信任关系
1、本地机器,进入GitBash:ssh-keygen -t rsa -C "username@PC1" key:id_rsa //输入key文件名将生成的2个文件复制到 C:/Users/username/.ssh下2、登录远程git服务器:cd ~/.ssh编辑authorized_keys,将本地生成的.pub文件中的字符串复制到里面,保存即可。例,格式如下(...原创 2013-08-08 07:13:38 · 814 阅读 · 0 评论 -
关于Redis扩容方案
首先关于Redis,目前某应用redis部署2台机器,做master/slave。为保证性能,master未开启持久化。由于数据较重要,slave开启AOF,每秒持久化一次。master/slave未做读写分离,所有请求均发送到master处理,slave仅作备份用。由于访问量逐步上升考虑扩展,想到几点,简单记录一下:以单链表形式多加一台:master<-slav...原创 2013-08-08 07:33:51 · 465 阅读 · 0 评论 -
Tomcat调优相关总结
关于Tomcat调优的一些总结,欢迎拍砖。1、线上环境Java版本:java version "1.6.0_30"Java(TM) SE Runtime Environment (build 1.6.0_30-b12)Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)2、修改$CATALINA_HOM...原创 2013-08-09 07:50:24 · 84 阅读 · 0 评论 -
关于MySQL导入导出SQL文件
记录一下几个常用的MySQL导入导出命令:1、Mysql导出整个数据库:./mysqldump -u username -ppassword --port=3301 --protocol=tcp db > /home/work/BACKUP/db.sql2、Mysql导出某张表的数据:导出aaa表及数据./mysqldump -u username -ppasswor...原创 2013-08-14 06:50:00 · 123 阅读 · 0 评论 -
工作中遇到的一个关于hibernate jpa的问题
昨天用hibernate-jpa(2.0)时发现一个问题,刚开始以为是查询sql和自己代码的bug。经反复调试,发现native query不使用join的sql无异常。使用join的sql如果同时取a,b两张表的id,会导致取出的值完全相同。例如:select a.id,b.id from tablea a ,tableb b where a.id=b.aid 查询出来的...原创 2013-08-15 06:41:07 · 109 阅读 · 0 评论 -
一个简单的状态机总结
工作中一个简单的状态机实现,总结如下。定义状态:public enum Qstate{ ORDER(1), CANCEL(2); private int code; private Qstate(int code){ this.code = code; } public int getCode(){ return...原创 2014-02-07 21:23:09 · 644 阅读 · 0 评论 -
关于MySQL主从不同步问题
今天线上出现了数据更新后在手机终端无法获取最新数据的问题。仔细查看了一下,刚开始认为是ActiveMQ消息队列阻塞导致无法及时更新缓存(原来出现过1次)。可手工删除redis中对应的key后还是无法重新reload数据,这才意识到是主从同步出了问题。原来是某应用曾经连错mysql并向slave中新写入了几条数据,后来改为连master,并把写入slave的数据重新写入master表...原创 2013-09-24 21:49:45 · 105 阅读 · 0 评论 -
一个微信小程序服务端开发实例
前段时间因工作需要,研究了一下微信小程序Java服务端开发,今天简单整理一下相关步骤。1、获取code、encryptedData、iv:code需要前端通过调用微信api --> wx.login(OBJECT)获取。encryptedData和iv需要前端通过调用微信api --> wx.getUserInfo(OBJECT)获取。其中encryptedData...2017-04-23 11:10:49 · 1782 阅读 · 0 评论 -
H5跨域请求解决方式整理
H5跨域解决方式整理以前工作中遇到过关于前端跨域访问问题,今天把解决方式总结整理一下。1、jsonp(仅限GET请求,伪码):String callback = request.getParameter("callback");callback = checkCallback(callback);//防注入//HttpServletResponse responsere...原创 2017-05-14 14:44:25 · 4920 阅读 · 0 评论 -
工作中使用Kafka接收消息代码整理
前段时间工作中使用到Kafka接收消息,简单整理一下:Properties props = new Properties();props.put("zookeeper.connect", zkServer);props.put("group.id",groupId);//使用zk集群管理ConsumerConfig conf = new ConsumerConfig(pro...2017-06-25 14:51:39 · 557 阅读 · 0 评论 -
应对CDN缓存的一个小技巧
工作中把一个文件放在CDN上面实时更新,并提供http下载地址。但是由于CDN缓存,下载下来的文件其实是几个小时以前的了。解决方法:下载请求的某尾添加一个随机参数,举例如:http://xxx.cdn.com/abc/123/test.xml?timestamp=12345678其中http://xxx.cdn.com/abc/123/test.xml为该文件的真实下载地址,而...原创 2012-12-07 22:43:24 · 350 阅读 · 0 评论 -
一个由计算MD5值而引发的Bug
昨天联调某接口时发现一个的Bug,还好很快找到原因并紧急修复了。某文件A.tar.gz使用apache commons-compress计算的MD5值:FileReader fr= new FileReader(tarFile);String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fr));IOUtils.closeQuietly...原创 2012-12-07 22:31:47 · 254 阅读 · 0 评论 -
一个文件下载问题的简单解决方法
前一段时间工作中,遇到一个在web应用中生成文本文件并下载的问题,一开始把问题想复杂化了(想了很多如何生成临时文件和文件传输的问题),后来发现其实解决方法很简单,此处总结一下,就几行代码(伪代码):response.contentType = "text/plain";response.setHeader("Content-Disposition","attachment; filenam...原创 2012-12-07 22:10:17 · 98 阅读 · 0 评论 -
工作中的一个SQL查询总结
前一段时间的工作中有一项是计算实时统计结果并生成相应的数据表(主要是算产品PV,UV的环比什么的)。所谓实时统计,就是终端请求Server接口时把相应数据写进日志,然后使用Python分析日志程序,将各统计项整理成各自的文件。再将这些整理好的文件定时发送到解析文件接口中解析并入库。最后写SQL计算统计结果。顺便提一句,我们用的是MySQL,单库千万量级以下的数据都没问题。例如每天往表...原创 2012-07-17 22:13:22 · 121 阅读 · 0 评论 -
Java无限循环小数判定问题
今天遇到一个2个整数相除后无限循环小数判定的问题,我还在纠结循环节问题的时候。某大侠给我一个方法顺间把我秒了,思路如下:public static boolean isNonterminating(){ try{ BigDecimal bigA=new BigDecimal(1); BigDecimal bigB=new BigDec...原创 2013-03-26 21:40:58 · 1022 阅读 · 0 评论 -
互联网相关概念
前一阵忙的要死,主要做某平台终端统计相关工作,记下了些基本概念,也算是普及一下互联网业务,希望对看到的人有所帮助。基本概念: PV -- 浏览页面的次数。UV -- 访问页面的用户数。留存率 -- 当日新增用户,后继每天留存的用户比例。DAU -- 每日启动用户数。一、规模数据:日期、PV、PV环比、UV、UV环比、人均PV、人均PV环比pv环比=(...原创 2012-07-31 22:20:36 · 148 阅读 · 0 评论 -
Java水印工具类
前一段时间在工作中遇到了一个水印功能,即对JPEG图片添加水印(其它文件格式有待测试)。另外,这个工具只是记录下实现过程,并没有做复杂的封装。 希望对看到的人有所帮助,也希望大家多提建议。 public class ImageAddWaterMark { public static void main(String[] args) { ...原创 2012-07-31 22:34:07 · 187 阅读 · 0 评论 -
关于批量写入数据库
今天上午写个程序要将几张表内的数据读出写入一张表(2w多数据),开始没有使用批处理(每条写入都自动commit),写入速度在分钟级(太慢了后来就没计时),后来添加了批处理(不自动commit),全部用时20多秒。可见批处理写入数据库要快很多。程序大致结构如下:EntityManager em = JPA.em();em.setFlushMode(FlushModeType.COMMIT...原创 2012-07-31 23:01:24 · 196 阅读 · 0 评论 -
使用aapt dump命令获取Apk信息
因工作需要,前一段时间继续又遇到了解析Apk信息的工作。由于这次需要读取android资源文件中的内容,因此使用了aapt工具,简单记录一下过程如下: 1.使用java.util.zip解包apk,使用AXMLPrinter反编译AndroidManifest.xml文件,解析XML文件获取:包名,版本号,最低sdk版本名,用户权限信息。以及appname的resId信息,icon的...原创 2012-08-05 19:32:48 · 1925 阅读 · 0 评论 -
Java图片剪裁功能实现
目前一些社交型互联网应用都有一些上传图片(例如头像,照片等)对预览图进行剪裁的功能。前一段时间在工作也遇到这个问题,总结一下基本实现步骤及代码(包含图片放大,缩小,设置品质,对指定点区域剪裁功能),使用JPEG格式图片测试通过,其它格式图片尚未验证。一、基本步骤:1.将图片文件的InputStream转换为ImageReader,并从ImageReader中读取BufferedImage信...原创 2012-08-05 19:45:54 · 263 阅读 · 0 评论 -
机型与UA
http://deviceatlas.com/resourcecentre/explore+deviceatlas+data/devices 这是一个包含各品牌机型UA等信息的网站,还不错,可以做基础数据用,分享一下。原创 2012-08-05 20:56:14 · 178 阅读 · 0 评论 -
Unicode与中文转换工具类
在上一家公司做Android注入时,如果注入中文会有问题,需要将中文转换为unicode码注入,在网上查了一下转换工具类,大多数都是如下的解决方案: public class CharacterSetToolkit { /** Creates a new instance of CharacterSetToolkit */ public Characte...原创 2012-08-05 21:09:15 · 222 阅读 · 0 评论 -
非android环境获取apk签名信息
前段时间在工作中遇到一个问题,即在非android环境下获取apk签名信息,网上查了不少资料整理出一份代码,分享出来希望对看到的人有所帮助。主要思路:读META-INF/路径下的证书,获取签名信息后,转换成字符数组(tochar方法是关键)。解决方法整理程序如下:private static char[] toChars(byte[] mSignature) { byt...原创 2013-04-30 15:14:03 · 116 阅读 · 0 评论 -
Java工程路径中的META-INF和MANIFEST
说起WEB-INF,想必大家都熟悉,Java Web规范中的路径结构。但是由于最近需要用打jar包,遇到了META-INF中的问题,说实话还真没特意去研究过这个。上网一查,其实是Java Jar文件规范中的路径结构:http://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html Java Jar文件规范使用jar...原创 2012-11-24 13:03:58 · 243 阅读 · 0 评论 -
Hibernate3+JPA和C3P0连接数据库
今天早上一起来就被多个问题搞个半死,不过还算一一解决了,把这个jpa连数据库的配置和代码总结记录一下。原来某项目开发中使用的是Play framework! 1.2.4版本,该框架持久层的实现也是Hibernate-jpa,不过都给封装好了。照着官网的文档配置一下就能用。这回从头整个Java工程(普通的Java Application),不用Play了,jpa这部分自然也就自己写了。网上资...原创 2012-11-24 13:29:57 · 140 阅读 · 0 评论 -
关于解析不合法JSON的方法
最近工作中写了一个抓取第三方应用数据的程序,该数据格式为JSON。刚开始在JSON解析时使用的是开源工具jackson,遇到了问题。例如:{"code": 200,"data": "{'v-soft-list':[{typecode:'zhuanbi',gametype:'赚币',count:5},{typecode:'dongzuo',gametype:'动作',count:...原创 2013-05-16 06:37:15 · 2059 阅读 · 0 评论 -
今天工作遇到问题总结(Java调用Linux命令及Linux输出乱码)
前两天应要求给某度做接口(要求今天下午2点前必须做完联调)。上周五同事才给我的文档(周六看了一天设计框架结构)。周一确认文档中不明确的需求,实现了一下程序整体框架结构。周二又写了一天好不容易搞完了(测试都没测,自己测的),结果今天早上测试环境部署时出了问题(我想这回SB了,下午就联调了啊)。还好我临危不乱,现改代码,还算是按时完成了。都是一些Linux环境下匪夷所思的问题(看来以后还真不能在w...原创 2012-11-28 22:00:39 · 449 阅读 · 0 评论 -
DOM4j以SAX方式解析XML文件
最近在解析XML时总会遇到比较大的文件,如果使用DOM的方式解析一次装进内存有可能导致OOM Error。因此,尝试采用SAX的流式方式解析了一下,效果还不错。使用了开源工具DOM4j,其中提供了SAX解析器。程序实现:FileReader rd = new FileReader(new File(filePath));SAXReader reader=new SAXReader(...原创 2012-12-02 11:35:20 · 585 阅读 · 2 评论