随笔分类 - java
摘要:在这个系列的 第 1 部分,我们讨论了事务并研究了它们的基本属性 ― 原子性(atomicity)、一致性(consistency)、孤立性(isolation)和持久性(durability)。事务是企业应用程序的基本构件;没有它们,几乎不可能构建有容错能力的企业应用程序。幸运的是,Java 事务服务(Java Transaction Service,JTS)和 J2EE 容器自动为您做了大量的事务管理工作,这样您就不必将事务意识直接集成到组件代码中。结果简直是一种魔术 ― 通过遵守几条简单的规则,J2EE 应用程序就可以自动获得事务性语义,只需极少或根本不需要额外的组件代码。本文旨在通过展
阅读全文
摘要:J2EE 开发人员使用数据访问对象(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。实现 DAO 模式涉及比编写数据访问代码更多的内容。在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。图 1 显示了应用程序和数据源之间的关系:图 1. 应用程序和数据源在整个应用程序中使用数据访问对象(DAO)使我们可以将底层数据访问逻辑与业务逻辑分离开来。我们构建了为每一个数据源提供 CRUD (创建、读取、更新、删除)操作的 DAO 类。在本文中,我将为您介绍构
阅读全文
摘要:一.什么是线程池?线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合.注意这里用了线程集合的概念是我生造的,目的是为了区分执行一批应用逻辑的多个线程和线程组的区别.关于线程组的概念请参阅基础部分.一般而言,线程池有以下几个部分:1.完成主要任务的一个或多个线程.2.用于调度管理的管理线程.3.要求执行的任务队列.那么如果一个线程循环执行一段代码是否是线程池?如果极端而言,应该算,但实际上循环代码应该算上一个逻辑单元.我们说最最弱化的线程池应该是循环执行多个逻辑单元.也就是有一批要执行的任务,这些任务被独立为多个不同的执行单元.比如:int x = 0;while(true){x ++
阅读全文
摘要:内存泄漏是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降;最终将导致内存不足(OutOfMemory),系统彻底宕掉,不能响应任何请求,其危害相当严重。同时,Java堆(Heap)中大量的对象以及对象间之复杂关系,导致内存泄漏问题的探测和分析均比较困难,采用相应的辅助工具是很必要的。WebSphere应用服务器提供了系列针对内存问题的探测和分析诊断工具,这些工具可以帮助用户进行内存问题的及时探测,保证系统在发生OOM之前,用户可以在无须进行复杂分析的条件下,预知在其部署的应用中是否存在内存泄漏的问题。如果确有内存泄漏现象发生,WebSphere还提供了相应的工具,可以
阅读全文
摘要:一次接到用户电话,说某个应用在并发量稍大的情况下就会出现响应时间陡然增大,同时管理控制台的响应时间也很慢,几乎无法进行正常工作。 赶到现场后,查看平台版本为Webshpere6.0.2.29,操作系统为Windows 2003企业版sp2,于是首先分析systemout.log,发现有如下报错: = com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException Max connections reached 869 Exception = com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutExcepti
阅读全文
摘要:在发布一个运行于 WebSphere Application Server 的 J2EE 应用之前,对服务器进行配置和部署应用是必不可少的一个过程,这个过程是非常复杂的。WAS 为用户提供了可视化的管理控制台(Web Admin Console)来完成这一任务。即便如此,开发或部署人员仍需要接受培训,并花费一定的时间和精力来完成这些配置和部署工作。对于一个开发团队来说,如果每个团队成员都要手工的完成环境配置和应用部署,其代价是比较高的。本文介绍使用 wsadmin 工具配合 Jython 脚本来完成服务器的环境配置和应用部署。配置和部署脚本一经编写,就可以多次重复使用。以自动化的脚本代替手工操
阅读全文
摘要:公务卡是指财政预算单位工作人员持有的、主要用于日常公务支出和财务报销业务的信用卡。 据财政部网站消息,近日,财政部和中国人民银行印发了《中央预算单位公务卡管理暂行办法》,拟在中央预算单位推行公务卡管理。财政部有关负责人日前针对相关问题进行解答。以下为答问全文: 问:什么是公务卡?是否可以将公务卡理解为一种替代现金支付的结算工具?如何使用公务卡? 答:公务卡,是指预算单位工作人员持有的,主要用于日常公务支出和财务报销业务的信用卡,公务卡制度的直接作用是将传统现金支付结算改为用公务卡支付结算。 公务卡具有两个基本特点:一是具备普通信用卡所具有的授信消费等共同属性,即公务卡能够像其他信用卡一...
阅读全文
摘要:一、基础问答 1.下面哪些类可以被继承? java.lang.Thread (T) java.lang.Number (T) java.lang.Double (F) java.lang.Math (F) java.lang.Void (F) java.lang.Class (F) java.lang.ClassLoader (T) 2.抽象类和接口的区别 (1)接口可以被多重implements,抽象类只能被单一extends (2)接口只有定义,抽象类可以有定义和实现 (3)接口的字段定义默认为:public static final, 抽象类字段默认...
阅读全文
摘要:oc就是控制翻转或是依赖注入。通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。aop就是面向切面的编程。比如说你每做一次对数据库操作,都要生成一句日志。如果,你对数据库的操作有很多类,那你每一类中都要写关于日志的方法。但是如果你用aop,那么你可以写一个方法,在这个方法中有关于数据库操作的方法,每一次调用这个方法的时候,就加上生成日志的操作。说的不是很清晰,多写多看就能明白了。
阅读全文
摘要:Java在Internet上的应用已经日渐普遍,使用在网页上的Java程序称之为applet,利用Applet的嵌入能够使原本静态的HTML富有变化,并且能够做到"声"、"动"、活泼的页面。因为applet是从远端服务器上下载并且在本地执行,所以安全成为至关重要的一个话题。如果用户允许浏览器运行java程序,浏览器会下载并且立刻运行网页中包含的全部applet。用户没有机会来确认或者停止运行单独一个applet。正是因为这个原因,applet(不同于应用程序)的行为受限制。当applet试图违反一条访问规则时,applet安全管理器(applet sec
阅读全文
摘要:程序员写一个Java程序,默认的情况下你可以访问任意的机器资源,比如读取,删除一些文件或者网络操作等。当你把程序部署到正式的服务器上,系统管理员要为服务器的安全承担责任,那么他可能不敢确定你的程序会不会访问不该访问的资源,为了消除潜在的安全隐患,他可能有两种办法:1,让你的程序在一个限定权限的帐号下运行;2.利用Java的沙箱机制来限定你的程序不能为非作歹。我们这里主要谈谈后一种方法。怎样给一个程序设置一个“沙箱”呢?这个设置应该是避免改动程序代码的,而且是简单易行的。根据Java的文档,我们了解到只需简单的两个步骤。步骤一.加一个运行参数,就可以让一个程序在沙箱里运行: java -Djav
阅读全文
摘要:JAVA的安全模型不同于传统的安全方法,传统的安全方法中,大多数操作系统允许应用程序充分访问系统资源,在操作系统不提供安全保护的机器里,运行环境不能被信任。为了弥补这个缺陷,安全策略经常要求在应用程序执行之前对应用程序建立信任,例如要求程序员在执行从网上获得的应用程序前,先检查病毒和源代码中不安全的代码。这种方法有2个问题:(1)确定程序是否安全的检查很复杂很浪费时间,很少有程序员愿意花时间读程序的源代码,然后再将它编译成本地机器码以保证程序是安全的。(2)病毒检查要不断维护以保证有效性。JAVA的安全模型是不同的,为了防止用户系统受到通过网络下载的不安全程序的破坏,JAVA提供了1个自定义的
阅读全文
摘要:类名前只有两种修饰符:不写(即default,但不能把default写上去)或public。默认不写则此类只能被同一包下的类调用以生成相应的实例。但若是public,则可以被不同包下的类调用以生成其实例。即类名前的pulic修饰符的作用只是把此类的作用范围伸展到不同包下。一个文档下可以写多个类,但这些类必须在同一个包下,并且最多只能有一个类被修饰为public(或不加修饰符)。相当于是说一个文档下只能露一个类出来给其它包使用。三、main()函数依旧如同普通的函数,你可以在一个文档中的每个类下都写一个main()函数,等你使用javac命令将此文档编译之后,此文档下的每个类都会被编译成单独的文
阅读全文
摘要:没有JNDI的做法:程序员开发时,知道要开发访问MySQL数据库的应用,于是将一个对 MySQL JDBC 驱动程序类的引用进行了编码,并通过使用适当的 JDBC URL 连接到数据库。就像以下代码这样:Connectionconn=null;try...{Class.forName("com.mysql.jdbc.Driver",true,Thread.currentThread().getContextClassLoader());conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=qi
阅读全文
摘要:JNDI的专业解释,大家自行去网络搜索吧,这里就不啰嗦了。单纯从使用角度看,可以简称把它看成一个key-value的“哈希资源”容器。给定一个string类型的key,可以把任何类型的value,放入这个容器(通过bind/rebind方法);其它地方需要使用该资源时,根据key就能取出该资源(通过lookup方法)JNDI使用示例:View Code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656
阅读全文
浙公网安备 33010602011771号