摘要:什么是java的反射?java在运行期间可以动态的加载、解析和使用一些在编译阶段并不确定的类型,这一机制被称作反射。它可以加载只有运行时才能确定的数据类型,解析类的内部结构,获取其基本信息,如方法、属性、方法参数等,并可以操作该类型或者实例,如获取方法、方法调用、创建新对象等。Java的reflect包:java.lang.reflect.Field;java.lang.reflect.Method;java.lang.reflect.Constructor;java.lang.reflect.Modifier;java.lang.reflect..Array;基本功能:1.获取对应的clas
阅读全文
摘要:关于spring的传播特性,我对其进行了详细的叙述了下:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。比如方法A调用方法B,如果方法A,B都使用该特性,那么A会开启事务,执行到B的时候,B发现自己处于一个事务中,则会合并到该事务中和A公用一个事务执行,弱任一异常会回滚整个事务,AB执行都失败。若A未开启事务且未使用该特性,B使用该特性,B发现未处于一个事务中,则会主动开启事务,只有B会使用事务,A不会。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。方法AB,A调用B,A使用REQU
阅读全文
摘要:classpath:hibernate.cfg.xml
阅读全文
摘要:连接数据库前都要调用一下class.forname("driverName");然后使用DriverMnager获取连接,这是为什么呢?首先jdbc标准要求,每个驱动必须向DriverManager注册一下,这样才能让其知道使用的什么驱动,因为jdbc统一了操作关系数据库的接口,程序员统一使用jdk中的接口调用相关方法实现功能,其中的多态调用就不详述了。为了能顺利连接并操作数据库,驱动必须向DriverManager注册才OK。所以,Class.forName方法会加载该类,而加载类的时候,以oracle为例,oracle的oracle.jdbc.driver.Oracle
阅读全文
摘要:【LinkedList】LinkedList使用了链表来实现List功能,而且是双向循环链表,它的Entry定义如下:private static class Entry { //保存放入list中的对象 E element; //当前节点的下一节点 Entry next; //当前节点的上一节点 Entry previous; //新构造的entry,next节点为头节点,previous为尾节点, //新插入的节点在尾节点之后 Entry(E element, En...
阅读全文
摘要:要想代码写得好,以下规则供参考:代码格式规范多,静态检查常做到。代码注释要工整,垃圾注释不可要。重要分支详注释,复杂逻辑拆分细。数据类型多注意,经常判空习惯好。常量类型须定义,魔幻数字要摒弃。字符相加性能差,字符比较equals。原始类型要记牢,包装类型区分好。类型转换常相伴,记住方法是关键。常量在前相比较,null异常不骚扰。信息输出选Log,后台输出不可要。如果DB多操作,事务开启不能少。开启事务别太急,回滚事务要趁早。循环提交不可取,批量执行是妙招。SQL性能很重要,绑定变量效率好。拼接SQL虽方便,注入风险总围绕。日志框架不能少,日志级别要用好。开源工具效率高,重复造车不可要。线程安全
阅读全文
摘要:import java.io.File;import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class WordToHtml { static int WORD_HTML = 8; int WORD_TXT = 7; static int EXCEL_HTML = 44; /* * * WORD转HTML * * @param docfile WORD文件全路径 * ...
阅读全文
摘要:在activemq.xml中配置持久化方式: 注意不需要创建相关的表,activemq会自动创建三个表:select * from ACTIVEMQ_MSGS;select * from ACTIVEMQ_ACKS;select * from ACTIVEMQ_LOCK下面试一下发送一个持久化的消息:package com.thunisoft.jms.mine.queue;import java.util.HashMap;import javax.jms.Connection;import javax....
阅读全文
摘要:JDBC Master SlaveFirst supported in ActiveMQ version 4.1If you are using pure JDBC and not using the high performance journal then you are generally relying on your database as your single point of failure and persistence engine. If you do not have really high performance requirements this approach
阅读全文
摘要:【本文转自:http://www.javabloger.com/article/sun-openmq-jms-large-scale-systems.html】我们先来看看在Sun OpenMQ系统中 一个持久、可靠的方式传送消息的步骤是怎么样的,如图所示:查看大图请点击这里在传送过程中,系统处理JMS消息分为以下两类: ■ 有效负荷消息,由生成方发送给使用方的消息。 ■ 控制消息,代理与客户端运行时环境之间传送的私有消息,用于确保有效负荷消息成功传送和控制跨连接的消息流。详细流程如下:消息生成 1. 客户端运行时环境通过连接将消息从消息生成方传送到代理。消息处理和路由 2. 代理从连接中读取
阅读全文
摘要:发布订阅模式和PTP方式不同之处为后者依赖于一个Topic话题:package com.thunisoft.jms.mine.topic;import java.util.HashMap;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Obje
阅读全文
摘要:PTP模式下,异步接收消息需要定义一个MessageListener来监听,当生产者有消息要发送时会主动通知Listener去处理该消息,会调用监听的onMessage方法去处理。首先看生产者(和同步接收时没有任何区别):package com.thunisoft.jms.mine;import java.util.HashMap;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode;import javax.jms.Destination;import java
阅读全文
摘要:一般步骤:请求一个JMS连接工i厂。是用连接工厂创建连接。启动JMS连接。通过连接创建session。获取一个目标。创建一个生产者,或a.创建一个生产者,b.创建一条JMS消息并发送到目标创建一个消费者,或a.创建一个消费者,b.注册一个消息监听器。发送或接受消息。关闭所有资源(连接,会话,生产者,消费者等)。首先登陆至ActiveMQ后台创建一个队列为TestQueue:..省略创建生产者:package com.thunisoft.jms.mine;import java.util.HashMap;import javax.jms.Connection;import javax.jms.C
阅读全文
摘要:1.关于JMS的点对点模式JMS的点对点模式下,多个消费者可以注册到同一个队列上,但是生产者的某个消息只能被一个消费者接收,在多个消费者间,生产者的消息被多个消费者循环接收,如当前有6个消息在队列中等待发送,而有三个消费者等待消息,那么这三个消费者获取的消息分别为:消费者1:消息1、消息4消费者2:消息2、消息5消费者3:消息3、消息6也就是消费者1、2、3分别是循环来接收消息的。JMS保证每次只能将消息发给下一个准备好的接受者。2.关于JMS的发布/订阅模式发布订阅模式的消息使用主题(topics)作为目标。发布者发送消息到主题,订阅者从主题接收消息。发送到主题的消息会自动发给所有的订阅者。
阅读全文
摘要:面向消息中间件(MOM)为分布式系统提供异步,解耦,稳定,可扩展和安全的行为。MOM在分布式计算领域是一个重要的概念。它允许应用使用代理器API在分布式环境实现各种功能。Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,一般用于JMS要求对实时性不高的系统。JMS由以下元素构成:JMS提供者:提供消息服务的中间件或者相关产品;JMS客户:可以包含JSM生产者,用来发送消息的客户端,JMS消费者,用来接收消息的
阅读全文
摘要:1.JdbcTemplate 当不使用事务时,jdbcTemplate的模板类,通过 Connection con = DataSourceUtils.getConnection(getDataSource()); 方法,首先去当前线程的上下文中寻找绑定的数据库连接,若没找到,则新建一个连接,即从DataSource中创建一个新的连接:ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource); if (conHolder != ...
阅读全文
摘要:在oracle下创建一个test的账户,然后按一下步骤执行:1.创建表:STOCK_PRICESView Code--创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRIMARYKEY, PRICE NUMBER(7,2), UPDATED DATE );2.插入测试数据:View Code--插入数据INSERTINTO stock_prices values('1111',1.0,SYSDATE);INSERTINTO stock_prices values('1112',2.0,SYSDATE);INSERTIN
阅读全文
摘要:使用 UltraEdit 打开 .class 文件,第一行内容:00000000h: CA FE BA BE 00 00 00 32 00 A9 07 00 02 01 00 37 ; 漱壕...2.?....7前四个字节为固定的 CA FE BA BE ,接下来的四个字节为次版本号(0000)和主版本号(0032)。32:JDK1.631:JDK1.530:JDK1.42F:JDK1.3
阅读全文
摘要:1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以达到节约资源的目的第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信-2.尽量避免随意使用静态变量要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如public class A{static B b = new B();}此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会
阅读全文