自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (8)
  • 问答 (16)
  • 收藏
  • 关注

原创 java 的线程安全

              现代CPU基本都是多核,支持多线程工作的,每个CPU都有自己的高速缓存,多个CPU之间通过缓存一致性与主内存进行交互,Java的每个线程都有自己的工作内存,每个线程之间通过Java内存模型来和主内存交互,当多个线程同时操作或者共享同一个可变变量时,就有了我们经常提到的线程安全问题。                解决线程安全的方案有几种,synchroni...

2014-12-30 14:43:37 89

原创 JVM ClassLoader

      JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,loadClass(String name)方法      class在被虚拟机加载开始,到被卸载出内存主要经过 加载,验证,准备解析 初始化,使用,卸载几个阶段。 每个ClassLoader都维护了一份自己的名称空间, 同一个名称空间里不能出现两个同名的类。为了实现jav...

2014-12-25 16:33:20 109

原创 minor Gc ,Full Gc

    在发生Minor gc之前,虚拟机会先检查老年带最大连续可用空间是否大于新生代的总和,假如大于,那么这个时候发生Minor Gc是安全的,假如不大于,那么需要判断是否允许担保失败,假如允许,则继续判定老年带连续可用空间是否大于平均晋升到老年带对象的平均值,如果大于,这个时候可以发生Minor GC ,如果小于,则需要做一次Full Gc,通常会把HandlePromotionFailu...

2014-12-24 17:22:04 436

原创 Java的主要垃圾回收器

          对象的可达性是判断一个对象是否需要进行垃圾回收的依据,即Gc root 与对象之间是否具有可达的路径,如果没有,则表明这个对象可以进行回收,对象被放到F-Quence的一个队列里,JVM会启动一个优先级较低的线程来对其进行回收。         主要的垃圾回收算法有:标记--清除法:把可回收的对象一一打上标记,然后回收,这样做的缺点会产生不少内存碎片。         ...

2014-12-24 16:33:42 100

原创 JVM的内存结构的一点理解

                      Java语言把内存的管理交给了JVM自己来做,向比较C++而言,一定程度上,简化了程序的开发,应为它的内存管理是JVM自己去主动做的,不需要程序员自己干预。然而,也正应为如此,一旦发生了内存泄漏和溢出等问题,调试起来也比较麻烦。所以,对JVM的内存结构还是需要有一定的理解。       JVM把程序分成了如下几块内容:方法区,堆,栈,程序...

2014-12-24 11:30:36 96

原创 如何实现数据库的Sql注入拦截的一点想法

      Sql注入攻击是一种比较常用的攻击手段,通常我们比较难以界定,所以,做防控也是比较困难的,开发的时候,需要考虑代码被Sql注入的可能,业界通用的做法是配置黑白名单或者规则库,这是一种解决方案,然而这种解决方案对于使用起来成本还是挺高的,特别对于不是特别懂的人难于配置。      我想,这样一种思路:一个系统内的Sql语句的数量是有限的,那么我们可以把所有的SQl都收集起来,...

2014-12-23 11:51:33 404

原创 利用生产者消费者模式实现串行的任务并行化

           试想,一个省有100个处理节点需要监控,全国加起来有上1000,如果我们需要对这些节点进行监控,或则向他们发送处理莫个任务的指令,或者中断,或者定时执行,立即执行 需要怎么处理?     我们知道,如果我们直接这样做,指挥者说你去做任务A,当你还没结束时,指挥者又说你去做任务B,或者说任务C需要定时执行,这样的话,任务的执行者将会非常的忙碌,苦不堪言。 通过...

2014-12-22 17:48:17 341

原创 关于Linux的Ulimit参数

JVM 64位平台与32位平台的差异  64位虚拟机需要由于指针的膨胀和变量的对其补白,需要比32为更加大的内存,一般为10%-30%;而且处理性能要比32位下降15%   但是由于有些平台需要大于4G的内存,这个时候他们需要64位虚拟机,那么怎么办呢,可以对启用指针压缩功能(-XX:+UseCompressedoops),这样动态植入压缩指令可以节省内存,但是却会增加执行代码的数量。所以没有一...

2014-12-22 12:13:20 191

原创 一种表格数据比对的方法

     假设有连个库,一个是生产库,一个是备份库,在一个特定的时间定,比较备份库与生产库的数据是否一致,用Java实现怎么样做效率比较高?     在单进程的情况下,原来做过这样的设计:利用conCurrentHashMap来实现比对。     一个线程负责从A库抽取数据,每行数据构造成一个Hash对,Key采用:主键+列相加的Hashcode,value采用key来做,线程B负责...

2014-12-19 16:59:07 450

原创 基于Oracle的数据库审计系统

       通常,应用程序访问数据库,执行各种各样的业务SQL或者存储过程,都会对数据产生影响,为了使我们的数据库更加安全,都需要我们在对来访问的各种工具软件或者应用进行合理的管控或者授权,对他们所做的操作进行审计,这样才能增加数据库的安全性        我们都知道,想要执行一条SQl,首先要做的就是先登录数据库,不管是匿名还是有帐户的,都是要登录,登录也可以采用不同的软件,有开源...

2014-12-19 15:36:56 1147

原创 一种文件完整性校验的方法

          通常,运维人员会在系统上安装杀毒软件,用来做病毒防护。其实病毒最基本的特征是对文件系统的部分或则全部做了改动,假如我们开发这样一个程序,定时对文件系统的改动进行计算,定期或不定期生成报告或发送告警信息,也一样可以实现防病毒功能,主要可以用来检测系统是否被改动过。         这个功能类似Linux系统上一款比较著名的软件tripwire ,用来检测Linux的文...

2014-12-18 17:49:41 2065

原创 使用Java代理来实现对JDBC驱动的一些扩展

           我们都知道,编程语言在与数据库打交道的时候,中间需要一个Driver,这个驱动,一般由数据库厂商开发提供,根据不同的数据库版本而提供不同版本的驱动,Oracle数据库对Java的版本就有好几种:比如Ojdbc14.jar等,这些驱动,通常实现了有JSR定义好的接口规范,比如Java.sql.connection,java.sql.Driver;接口等。     ...

2014-12-18 16:25:44 410

原创 hadoop学习笔记之七:hadoop与Mongodb结合

          mongodb是NoSQl领域里非常流行的一款非关系型数据库,提供了强大的分片存储与查询功能,用来做历史数据(日志)存储与查询比较适合,本身也提供了mapreduce功能,但是并不是任何时候Mongodb的使用者都会使用分片功能,更大的可能是使用副本集的方式(有时候机器并不多),而Hadoop提供了HDFS和分布式计算的功能,我们可以利用hadoop的MapReduce来取代...

2014-12-02 17:24:08 932

原创 hadoop学习笔记之六:一些优化点

hadoop 性能调优  1调优主要集中在另个方面   A 减少运算时间    B减少磁盘空间占用率   CIo方面的优化  2 Hadoop自身会将Task分配给正在空闲的节点去做,这样可以充分利用资源,并且会将Map任务分配给InputSplit所在的集群,以减少IO的开销,提升运算速度。  3我们知道,在编写MapReduce程序时,Map的中间输出结果可能会很多,很大,对其进行压缩可以减少...

2014-12-02 10:16:12 112

跟开涛学sring3(深度解析Spring3)

中文语言深度解析Spring3 ,对于开发者来讲,是理解Spring3的绝佳材料。

2015-01-08

hadoop eclipse plugin 2.5.1

hadoop eclipse plugin 2.5.1 插件下载。

2014-11-27

java 动态代理实现AOP

讲述JAVA的动态代理的原理,以及通过JAVA的动态代理来实现AOP。简洁,易懂,学习AOP的入门级文档

2012-05-17

oracle 10g as admin

oracle 10g as admin 是一本关于oracle管理的好书。

2010-09-09

java 极限编程方法论

java 极限编程,测试驱动开发,敏捷开发的一部分哦,欢迎下载

2010-09-06

windows批处理教程

windows ,bat ,批处理 ,教程 PDF格式的,比较清晰易懂,欢迎下载

2010-09-06

pownerDesigner使用帮助

详细介绍了pownerDesiger的试用方法,是个好书

2008-01-15

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

TA关注的人

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