`
my_corner
  • 浏览: 83478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
今天有个统计的需求,计算今天比昨天新增加的数据。有两个文件a和b,a是最新文件,b是昨天的文件,需要计算出在a中出现又没出现在b中的数据。 a和b都是这样的文件格式,只有一列id,且无序的   290758 290710 290688 290411 290409 290224 290223 290221 290194   有如下集中实现方式: 1、java,把b读到List中,遍历a中元素判断是否存在b的List中   List b = ..... while(r.ready()){ String s = r.readline(); i ...

linux快速切换目录

在网上看到的一篇文章,自己用了一下的确不错。维护线上服务,又要不停切换目录的可以试试,能节省不少时间。   1、把最下面这段脚本加入.bashrc 最下面,保存退出然后重新登录   2、进入日常维护的目录,标记一个标签 cd /opt/logs/ mark log   3、以后再进入这个目录只需要 ggg log   4、去掉这个标签 unmark log   5、列出所有的标签 gs   6、支持提示,键入ggg 不停的tab,就能提示当前所有的标签   原理: 在指定的目录下建立一堆软链接   代码: ...
 在java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有两种:一是把对象包装成JSON字符串传输,二是采用java对象的序列化和反序列化。随着Google工具protoBuf的开源,protobuf也是个不错的选择。对JSON,Object Serialize,ProtoBuf 做个对比。 定义一个待传输的对象UserVo: public class UserVo{ private String name; private int age; private long phone; private Lis ...
 在java中socket传输数据时,数据类型往往比较难选择。可能要考虑带宽、跨语言、版本的兼容等问题。比较常见的做法有两种:一是把对象包装成JSON字符串传输,二是采用java对象的序列化和反序列化。随着Google工具protoBuf的开源,protobuf也是个不错的选择。对JSON,Object Serialize,ProtoBuf 做个对比。 定义一个待传输的对象UserVo: public class UserVo{ private String name; private int age; private long phone; private Lis ...
在web架构中,分布式是个常见的架构设计。尤其是大家比较熟悉的Memcached,或者其他cache产品常常被设计成分布式集群。分布式往往采用hash(key)%n 的方式,但这种算法比较简单,便于实现和理解。但弊端是不能动态增删节点。比较合理的方法改用一致性哈希(consistent hashing)分布。一致性哈希,简单的说在移除 / 添加一个 cache 时,它能够尽可能小的改变已存在 key 映射关系,尽可能的满足单调性的要求。原理不再赘述,google和度娘都能得到答案。重点说一下最常见的实现方式。   Java中采用md5散列的方式,计算hash值,这样基本上能保证key散列出 ...
    拉链法是解决Hash冲突问题的方法之一,把所有hash值相同的元素链接在同一个单链表中。这也是jdk中hashmap,hashtable的实现方式。外部拉链法的缺点是:它需要稍微多一些的空间来实现,因为添加任何元素都需要添加指向节点的指针,并且每次探查也要花费稍微多一点的时间,因为它需要间接引用逐一查找匹配,而不是直接访问元素。当大量相同hash值的元素保存时,就会导致链表巨长无比,这时get出对应元素时要在链表里比对key是否相同直到找到对应的元素。     在多数web容器的设计中,request都是依靠相应语言的hashtable/hashmap实现,当不同的key存入时如果has ...
朋友问的题,试着写写。也许有其他实现方式,感觉题目应该是考察线程间协作wait和notify所以选择如下方式实现: /** * @author my_corner * 2011-12-26 */ public class ThreadPrint { /** * @author my_corner * @param * @return * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException ...
热部署,是实际开发中经常会遇到的一个问题。一个系统上线之后,不可避免的会因为修改bug,功能的增加等问题需要更新代码、配置文件,这就需要重启应用服务器。如果系统需要提供的是7*24小时的服务,不能中断访问,那么 ...
写这个的目的不是为了说明哪种cache的效率高,或者哪种cache更适合hibernate。只是为了阐明hibernate在使用cache时的机制,和自己碰到的实际问题。 二、hibernate二级缓存避免查询Cache需要先获得db连接 hibernate自身管理一级缓存,如果需要使用二级缓存,则要自己来实现相应的代码,这个实现起来并不复杂只需要实现 hibernate提供的相应的接口即可。我们在项目中选用了最为通用的memcached,具体配置如下: 在spring中配置hibernateProperties是增加一项配置 <prop key="hibernate.cache ...
有同学强调我对sql server的分页不了解,在mssql 2000之前只能通过top进行分页。我没有说top分页不对,我是说在hibernate的sql server方言里面,针对sql server 的top分页是不对的。至少在我使用的版本里是不对的。而且有很多同学也遇到和我类似的问题。请大家打开hibernate的showsql,看看生成的sql 语句再来判断正确还是错误,谢谢! 提到Hibernate,好多人都用“垃圾”,“效率太低”这样的字眼评价。其实任何一个框架的产生都是有原因的,这些为企业级开发产生的框架最初只是为了简化开发,或许会有一些影响性能的地方。但是通过配置和巧妙的办法, ...
exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞。 漏洞名称:Struts2/XWork < 2.2.0 Remote Command Execution Vulnerability 相关介绍: http://www.exploit-db.com/exploits/14360/ http://sebug.net/exploit/19954/ Struts2的核心是使用的webwork框架,处理 action时通过调用底层的getter/setter方法来处理http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句。当我们提交 ...
近日碰到一位友人提出的一个问题,如何动态的改变Quartz的调度作业的时间。比如,由每10分钟执行一次改为每5分钟执行一次。个人认为这种需求应该通过某种方式来规避,或者选用其他的技术框架,因为动态改变Quartz的调度时间完全失去了使用Quartz的意义。本人在使用Quartz是基于Spring来配置的,而朋友的项目中不能使用SPring框架,这就需要直接基于Quartz编程。工作之余,写了个例子: Quartz的管理类 public class QuartzManage { private static SchedulerFactory sf = new StdSchedulerFacto ...
Global site tag (gtag.js) - Google Analytics