- 博客(11)
- 收藏
- 关注
原创 关于DriverManager与驱动
刚才无意中看到几篇讲DriverManager源码的文章,发现几点没有讲明白的地方。这里重新说一下:直接进入正题[code="java"]Class.forName("com.mysql.jdbc.Driver");[/code]这个玩意做了这些事情:1.驱动的实现类:com.mysql.jdbc.Driver 里面的static块,调用DriverManger.reg...
2011-08-03 00:33:36 1007
原创 写了个脚本查找项目里面重复的class文件,避免冲突
项目中的jar包里面可能有 包名+类名 都相同的class,可能导致class加载出问题。昨天有同事写了个脚本来实现查找重复jar包操作的功能,结果跑一次要20分钟。汗!问我为啥这么慢!一看,发现时间都耗在io操作上了(他把jar包解压缩后再做的其他操作)。其实要看jar包里面的内容无需解压,unzip -l即可写了个脚本,自己在eclipse插件的那个文件夹里面试了一下,还好...
2011-07-16 02:22:14 489
ibatis如何自动获取自定义的handler
下午写了一个DO类,里面有一个枚举的对象,因此用到了ibatis的自定义handlerAccount类里的status属性是枚举类型,对应的xml文件如下:[code="xml"]............ insert into ACCOUNT ( ACC_ID, ACC_FIRST_NAME, ACC_...
2011-07-13 01:35:54 316
jetty的线程池-QueuedThreadPool
一直对线程池有些疑问:1.线程池怎么保证线程一直存在?2.线程池怎么控制最大空闲时间?3.线程池怎么回收线程?。。。。带着这些问题,看了一边jetty的线程池。jetty有三个线程池,分别是ExecutorThreadPool,OldQueuedThreadPool,QueuedThreadPool它们都实现了org.eclipse.jetty.util.threa...
2011-07-04 21:32:58 1169
原创 用shell命令查找最长的方法名
前几天看到公司群里有人在找最长的方法名,今天想起来,写了个命令。[quote]find . -name "*\.java" -type f |xargs awk '$1~/public/{split($3,aa,"(");k=length(aa[1]);print k" "aa[1]}'|sort -nrk1,1|head -10[/quote]1.用awk匹配以public开...
2011-07-03 19:01:38 180
仿照jetty的nio原理例子2(7月10号改进)
改动点:1.分成了4个class文件,看起来清晰一点2.把请求封装成附件,放到socketChannel里面3.selector.accept()方法删除,取而代之的是selector.selectNow(),并且放到处理注册信息之后。增加了休息策略,selector.select(400),避免不停的循环,占用cpu%的情况。4.每个请求到来之后,直接分出一个线程去处理。...
2011-07-03 18:38:04 138
仿照jetty的nio原理写了个例子
看了好些天的nio和jetty源码,写了个例子。太晚了,先直接贴代码了,注释不是很全。[color=darkred]更新了代码的解释和2个疑问在最下面[/color][code="java"]package com.daizuan.jetty;import java.io.IOException;import java.net.InetSocketAddress;i...
2011-07-02 03:56:52 166
Class.forName与ClassLoader
看了虚拟机的一些文章,有点感触,赶紧写出来。Class 用来描述一个类型,当一个类型被装载(虚拟机读取二进制的class文件)的时候,会创建一个与该类型对应的Class对象到内存堆中。(这个时候该类型甚至没有被分配内存,设置默认值,更别说初始化了)。Class.forName有2个重载的方法:[code="java"] public static Class forName...
2011-06-17 19:02:58 159
原创 虚拟机学习笔记3
以下6种情况会初始化实例中的变量:1.创建类的新实例2.调用类中声明的静态方法3.操作类或者接口中声明的[color=darkred]非常量[/color]静态字段4.调用java api的特定的反射方法5.初始化一个类的子类6.指定一个类作为虚拟机启动时候的初始化类以下四种情况会实例化一个对象:1.明确的使用new操作符2.调用Class或者java.la...
2011-06-16 21:25:32 110
原创 虚拟机学习笔记2
[code="java"]class Lava{ private int speed = 0; void flow(){ }}class Volcano{public static void main(String args[]){ Lava lava = new Lava(); lava.flow...
2011-06-15 22:47:49 104
原创 虚拟机学习笔记
运行时候数据区:方法区,堆,java栈,pc寄存器,本地方法栈每个虚拟机运行的时候,都会有方法区和堆,所有线程共享每个线程被创建,都会得到自己的java栈和pc寄存器,任何一个线程都不能访问另一个线程的java栈和寄存器。如果线程执行的是一个java方法(非被地方法),pc寄存器里的值总是指向下一条指令,而java栈中存放的是该线程执行的方法的状态,如:局部变量,传递进来的参数,返...
2011-06-15 17:07:21 272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人