![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
iteye_1169
这个作者很懒,什么都没留下…
展开
-
PreparedStatement的预编译
一、我们先来看一下sql的执行过程:在Oracle里执行一个SQL语句,一般都要经过下面几个步骤: Create a Cursor 创建游标; Parse the Statement 解析语句; Bind Any Variables 绑定变量; Run the Statement 运行语句; Close the Cursor 关闭游标;如果是一个查询SQL,则还要经过下面的步骤: De...原创 2011-07-25 13:59:06 · 105 阅读 · 0 评论 -
理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。...原创 2012-02-15 09:38:48 · 264 阅读 · 0 评论 -
浅析 Java Thread.join()
一、在研究join的用法之前,先明确两件事情。1.join方法定义在Thread类中,则调用者必须是一个线程,例如:Thread t = new CustomThread();//这里一般是自定义的线程类t.start();//线程起动t.join();//此处会抛出InterruptedException异常 2.上面的两行代码也是在一个线程里面执行的。 以上...原创 2011-10-29 09:25:42 · 64 阅读 · 0 评论 -
使用Cacti监控你的网络(一)- Cacti概述及工作流程
http://blog.sina.com.cn/s/blog_4e424e2101000b5x.html原创 2011-11-07 09:36:51 · 83 阅读 · 0 评论 -
infoQ 文档ppt
http://www.docin.com/app/user/companyBook?userid=29442738原创 2011-11-07 11:43:25 · 217 阅读 · 0 评论 -
使用 Eclipse Memory Analyzer 进行堆转储文件分析
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/?ca=drs-原创 2011-11-07 17:09:42 · 69 阅读 · 0 评论 -
多核平台下的JAVA优化
现在多核CPU是主流。利用多核技术,可以有效发挥硬件的能力,提升吞吐量,对于Java程序,可以实现并发垃圾收集。但是Java利用多核技术也带来了一些问题,主要是多线程共享内存引起了。目前内存和CPU之间的带宽是一个主要瓶颈,每个核可以独享一部分高速缓存,可以提高性能。JVM是利用操作系统的"轻量级进程"实现线程,所以线程每操作一次共享内存,都无法在高速缓存中命中,是一次开销较大的系统调用。所以...原创 2011-11-08 09:12:49 · 48 阅读 · 0 评论 -
Java调用外部程序技巧
前些天使用Java调用外部程序的时候,发现线程会堵塞在waitfor()方法。调用方法如下:Process process = Runtime.getRuntime().exec(cmd);process.waitfor();如果直接在Shell中调用这个程序,程序会很快结束,不会僵死。为什么会堵塞呢,原因是当调用exec(cmd)后,JVM会启动一...原创 2011-11-08 09:17:18 · 91 阅读 · 0 评论 -
计算任意正整数的阶乘
由于阶乘的结果会超出java数据类型的最大范围,所以采用数组或集合作为存储结果的方式;集合具有长度的自动伸缩,故采用集合作为最终的存储方式; 算法如下: 各位相乘,满十进一位; package com.datastruct.array;import java.util.ArrayList;import java.util.List;...2011-11-12 20:17:47 · 879 阅读 · 0 评论 -
计算任意2个正整数的乘积
接上一篇整数的阶乘算法,来计算2个正整数的乘积;算法如下:用被乘数的右边第一位去乘乘数,每位的结果放入集合;然后从低位到高位进行满十进位;用被乘数的右边第二位去乘乘数,每位的结果向左错一位放入集合;然后从低位到高位进行满十进位;以此类推。。。。具体代码如下: package com.datastruct.array;import java.util.Arra...2011-11-12 21:36:23 · 1177 阅读 · 0 评论 -
Quartz中SimpleTrigger的探讨
1.来写一个每隔10秒启动一次任务的例子.import java.util.Date;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerFactory;import org.quartz.SimpleTrigger;import org.quartz.impl.StdSchedu...原创 2012-04-27 11:34:07 · 91 阅读 · 0 评论 -
理解Quartz触发器(1)
Quartz中一个Job往往是一个任务业务逻辑的实现,Job并不知道何时被执行。那么执行一个Quartz Job的是一个Trigger实例。Quartz Trigger继承了Quartz框架中的org.quartz.Trigger类,在Quartz框架中目前有三个实现的触发器可用:· org.quartz.SimpleTrigger· org.quartz.CronTrigger...原创 2012-04-27 11:37:27 · 81 阅读 · 0 评论 -
介绍Quartz
介绍QuartzQuartz是一个开源的任务调度系统,它能用来调度很多任务的执行。运行环境Quartz 能嵌入在其他应用程序里运行。Quartz 能在一个应用服务器里被实例化(或servlet容器), 并且参与XA事务Quartz能独立运行(通过JVM),或者通过RMIQuartz能被集群实例化任务调度当一个指定给任务的触发器发生时,任务就被调度执行....原创 2012-04-27 12:22:40 · 94 阅读 · 0 评论 -
认识Arrays(一)打印
Arrays提供了一组操作array的静态方法。一、基本类型数组打印 public static void printBaseArray(){ int[] ar = new int[10]; for (int i=0; i < ar.length; i++) { ar[i] = (1000 - (300 + i)); } ...原创 2012-02-03 16:52:11 · 117 阅读 · 0 评论 -
探索java多线程(连载)1 守护线程
在java中有一类线程,专门在后台提供服务,此类线程无需显式关闭,当程序结束了,它也就结束了,这就是守护线程 daemon thread。如果还有非守护线程的线程在执行,它就不会结束。 守护线程有何用处呢?让我们来看个实践中的例子。 在我们的系统中经常应用各种配置文件(黑名单,禁用词汇),当修改配置文件后,一般要重启服务,系统才能够加载;当重启服务的代价比...2011-03-22 21:08:09 · 85 阅读 · 0 评论 -
hashmap线程不安全在哪里?
大家都知道HashMap不是线程安全的,但是大家的理解可能都不是十分准确。很显然读写同一个key会导致不一致大家都能理解,但是如果读写一个不变的对象会有问题么?看看下面的代码就明白了。 1 import java.util.HashMap; 2 import java.util.Map; 3 import java.util.Random; 4 import java.util...原创 2011-10-13 11:33:58 · 186 阅读 · 0 评论 -
JAVA中多接口应用技巧
JAVA在设计接口和类的规则时,有一个明确的规定。JAVA不支持类(实现)的多重继承,但支持接口(定义)的多重继承。我已经无从了解这个设计的初衷,但这样的规定隐含了以下的意义。接口是设计的产物,即在需求设计时定义的对软件功能的定义。而类是实现的产物,它是在实现过程中根据实现的具体情况而完成的。如果用代码来说明就是:在设计时我需要我设计的“模块”提供两个功能:1.提供两个整数相加的功...原创 2011-07-26 16:58:00 · 67 阅读 · 0 评论 -
深入equals方法
equals方法的重要性毋须多言,只要你想比较的两个对象不原是同一对象,你就应该实现equals方法,让对象用你认为相等的条件来进行比较. 下面的内容只是API的规范,没有什么太高深的意义,但我之所以最先把它列在这儿,是因为这些规范在事实中并不是真正能保证得到实现.1.对于任何引用类型, o.equals(o) == true成立.2.如果 o.equals(o1) ...原创 2011-07-26 17:30:45 · 131 阅读 · 0 评论 -
ConcurrentLinkedQueue 的add 和 offer
jdk1.6下 ConcurrentLinkedQueue 的add 和 offer一样了;add直接调用了offer方法。public boolean add(E e) { return offer(e); }2011-07-27 12:15:07 · 1515 阅读 · 0 评论 -
使用spring定时任务时间格式cronExpression设置
org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时间,只需要设置其cronExpression属性。一个cronExpression表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:1.秒(0–59)2.分钟(0–59)3.小时(0–23)4.月份中的日期(1–31)5.月份(1...原创 2011-07-29 13:17:13 · 77 阅读 · 0 评论 -
jmap -dump 导致gc
jmap -dump这种方式会在dump前产生一次GC,这样会导致一些Unreachable objects,无法分析他们的引用路径。原创 2011-08-11 14:04:26 · 1374 阅读 · 1 评论 -
减少minor gc晋升到old的对象的方法
1、调大新生代;2、调大survivor,让新生代对象在minor之后再多活点时间;3、调大TenuringThreshold(存货周期); <!--StartFragment --> 如何调整survivor:如果新生代的gc方式为ps Gc,survivor space会被动态调整,有些时候会被调整得很小,所以minor Gc导致经常有对象直接分配到old;...原创 2011-08-11 15:44:21 · 192 阅读 · 0 评论 -
DataInputStream的read()与readFully的区别
readFully(byte[] b) 要求读出的字节长度与byte[]的长度相同;read(byte[] b)可能不会读满就会返回;如果在通讯协议中,明确知道需要读取多少字节,可以采用readFully方法...原创 2011-09-20 13:43:41 · 1940 阅读 · 0 评论 -
collections的max()
java.util.Collections的max方法可以获得集合中的最大值;之前取map的最大key值,还得自己写方法,原来有现成的;max(Collection<? extends T> coll) 根据元素的自然顺序,返回给定 collection 的最大元素。max(Collection<? extends T> coll, Compa...原创 2011-09-22 14:31:21 · 1579 阅读 · 0 评论 -
字节流调试
针对后台的字节流数据调试比较麻烦,通常的做法是将刚从socket上读入或将要写入的字节数组已16进制的方式打印出来;逐位分析;public static void debugData(String desc,byte[] data){ System.out.println(desc); for(int i=0;i<data.length;i++){ in...原创 2011-09-22 17:01:55 · 101 阅读 · 0 评论 -
关注一下druid
关注一下druid,阿里开源的jdbc组件,可以监控数据库访问性能;http://code.alibabatech.com/wiki/display/Druid/Home原创 2011-09-26 09:21:56 · 45 阅读 · 0 评论 -
关于UnsupportedOperationException异常
我们在使用collection框架code时,会时常遇到UnsupportedOperationException异常,有些人很不了解为什么抛出这个异常,会很郁闷,但是那些只知道code的代码工人不会想这些问题。下面我作一下解释,可能也不是很正确。其实我们主要的疑惑可能是:java既然提供了这个方法,为什么我们调用要抛出异常,说不支持这个操作。我们先看一段代码: List list1...原创 2011-09-29 12:03:46 · 68 阅读 · 0 评论 -
java面试题及答案(基础题122道,代码题19道)
http://ilovelate.itpub.net/post/7368/40836原创 2011-10-10 22:54:26 · 59 阅读 · 0 评论 -
Quartz定时任务学习(一)简单任务
学习quartz首先了解三个概念:调度器:负责调度作业和触发器;触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)作业:定时任务内容,被执行的程序;下载必要的jar包,直接去官网下载,将quartz-x.x.x.jar 和core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中Quartz的几个核心的接口和类为...原创 2012-04-27 12:30:07 · 79 阅读 · 0 评论