`
pingwei000
  • 浏览: 60891 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
Java 程序的工作机制: Java 对象都以单独的 class 文件存在, java 虚拟机将其载入并执行其虚拟机指令。 Java 虚拟机查找这些 java 对象: java 虚拟机根据 class path 来查找 java 对象,而虚拟机的 class path 又分为三层: bootstrap : ...
Java代码 package java.lang.reflect;       import java.lang.ref.Reference;    import java.lang.ref.WeakReference;    import java.util.Arrays;    import java.util.Collections;    import java.util.HashMap;    import java.util.HashSet;    import java.util.Map;    impo ...
用Spring大概有3个月,一直都是张口AOP,闭口AOP,但是Spring的AOP具体是怎么实现的,现在也不是十分清楚. 只知道可以用JDK的动态代理,基于接口,或者是cglib方式字节码增强.目前对JDK的动态代理方式不是很理解,固拿出来探讨下,我知道这应该是个新手贴,但还是请大家给点意见.如果真正理解了动态代理,那么对基于Spring AOP出现的各种现象就比较容易理解了. 先贴上一段代码. package com.jamesby.proxy;    public interface CarCompany {           public void makeCar();    ...
所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射 ...
1.sleep()使线程休眠一段时间,一段时间结束后,线程进入可执行状态,但并不是立即执行,只是在被排程器调用的时候才执行。在休眠期间,并不释放所持有的“锁”; 2.wait()使线程休眠一段时间,若设置参数,时间到时,线程就自动进入可执行状态。若没有,则需要notify()方法去调用。注意:wait()方法和notify()方法都时针对this对象的,调用wait()方法后,会释放加在对象上的“锁”。 3.yield()使线程放弃执行的权利,进入可执行状态,也就意味着线程在yield()方法后,有可能又执行。使用yield()方法,线程并不释放自己锁持有的“锁”。
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享 1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下:   public boolean equals(Object obj) { return (this == o ...
Java 栈是由许多帧(frame)组成的,一个帧包含一个Java方法调用的状态。当线程调用一个Java方法时,虚拟机压入一个新的帧至该线程序的Java栈中,当该方法返回时,这个帧被从该线程所属的栈中弹出。 Java中每个线程都有自己独立的栈。 public class Hello{        private Hello(){         new Hello();     }           public static void main(String args[]){         new Hello();     } } 如上代码将产生异常: Exception ...
一、引子      要问WEB程序与什么关系最紧密,那答案毫无疑问将会是数据库,我们几乎所有的WEB程序都是建立在数据库之上的,怪不得有些人说WEB程序其实就是跑到数据库操作系统之上的应用程序。而相应的一些数据库产品和 ...
项目名称:land 说明:tomcat捆绑JNDI数据源---->dataSource(proxool连接池) server.xml <GlobalNamingResources> <Resource  name="jdbc/test"      auth="Container"         type="javax.sql.DataSource"      factory="org.logicalcobwebs.proxool.ProxoolDataSource"         p ...
研究了一天,终于有所收获,希望对大家有所帮助。首先请大家注意:这里尤其讨论Tomcat5.5版本中遇到的问题,为什么尤其单对这个版本,我一会儿便加以说明。   问题一:Cannot create JDBC driver of class '''' for connect URL ''null''   答:   [原因分析]   很多朋友在配置好$Tomcat/conf/server.xml、$Tomcat/conf/context.xml、甚至WEB- INF/web.xml后发现调用连接池便会出现以上错误。分析错误原因,一般是因为大家没有邦定数据源(实际错误原因是因为 driverClass ...
一、把XFire及其需要的包都拷过来 下载的XFire包,及其解压后,lib目录下全部的包都拷过来 在项目的根目录下建立一个ant文件(BUILD.XML),必须指出lib目录所在的路逗头 衿鞫说膚sdl路径: <project name="struts-hibernate-eg" basedir="." default="help">      <path id="build.classpath">          <fileset file="lib/*.jar& ...
尤其是当数据量非常大的时候,对MYSQL的优化是非常重要的,最常用也最需要优化的就是limit了。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。 同样是取10条数据 select * from table_name limit 10000,10 和 select * from table_name limit 0,10 就不是一个数量级别的。 网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。 文中不是直接使用limit,而是首先获取到offset的id然 ...
可以在表或视图上指定INSTEAD OF触发器。执行这种触发器就能够替代原始的触发动作。INSTEAD OF触发器扩展了视图更新的类型。对于每一种触发动作(INSERT、UPDATE或 DELETE),每一个表或视图只能有一个INSTEAD OF触发器。    INSTEAD OF触发器被用于更新那些没有办法通过正常方式更新的视图。例如,通常不能在一个基于连接的视图上进行DELETE操作。然而,可以编写一个INSTEAD OF DELETE触发器来实现删除。上述触发器可以访问那些如果视图是一个真正的表时已经被删除的数据行。将被删除的行存储在一个名为deleted的工作表中,就像AFTER触发器 ...
exists 和 not exists 和 in 和 not in 和 =any exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1    A1 2    A2 3   A3 表B ID AID NAME 1    1 B1 2    2 B2 3    2 B3 表A和表B是1对多的关系 A.ID => B.AID SELECT ...
最近研究Spring的JDBC DataSource配置问题,看到proxool这个东西,根据网上大部分网友的评论,对proxool情有独钟。我于是去下载了一个最新版本:0.9.0RC2,你可以到http://proxool.sf.net/去下载。 我根据官方文档进行了Datasource的配置,但是发现了问题。像大多数网友反应的一样,出现了“参数无效的问题”。我根据源码进行了分析,终于发现了问题所在。 Proxool 指南里配置的例子如下: 5. Configuration example for Tomcat Configuration method: ObjectFactory C ...
Global site tag (gtag.js) - Google Analytics