`
willwen
  • 浏览: 24481 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表

获取服务器地址

    博客分类:
  • java
java获取job执行的服务器地址,方便定位问题 可以使用java.net.InetAddress类 InetAddress addr = InetAddress.getLocalHost(); osLoginName = addr.getHostName().toString();  
ant编译报错如下: compile:     [javac] D:\workspace\bits_core\build.xml:70: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 解决方法:只需要根据提示在javac任务中添加includeAntRuntime="false"属性即可。例如:修改前:    <javac srcdir="${srcDir}" ...
ibatis 调用存储过程部署到linux服务器启动报错,在本地window环境下是可以正常运行的,报错信息如下: org.xml.sax.SAXParseException: Attribute "resultMap" must be declared for element type "parameter".     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) ...

代码审查

      最近准备在项目内推行代码审查,整理最近学到有关代码审查有关知识 从代码审查里能得到什么?         很显然:在代码提交前,用第二只眼睛检查一遍,防止bug混入。这是对其最常见的理解,是对代码审查好处的最广泛认识。但是,这反倒是它最不重要的一点。人们确实在代码审查中找到了bug。可是,这些在代码审查中能发现的绝大部分bug,很显然,都是微不足道的bug,程序的作者花几分钟的时间就能发现它们。真正需要花时间去发现的bug不是在代码审查里能找到的。         

Java thread dump分析

    博客分类:
  • java
       系统运行4、5年后,随着功能越加越多,到今天总是会有CPU突然占用过高的警告发生,如果处理不好的话则会引起系统的OOM,很是头疼!有必要学习如何分析找到耗费CPU最高的源码,最好的分析方法就是分析thread dump文件 首先:如何产生thread dump日志 第一步:找到应用程序所在的进程号,通过top命令可以找到,linux命令行里输入top命令,然后回车会进入一个显示当前cpu,内存,进程等信息的界面,直接根据你程序的类型找到相应的进程,然后查看pid列的值。 该操作有点类似在window下查看任务管理器各进程的CPU以及内存使用情况: [login@001 ...
  同源策略        在客户端编程语言中,如JavaScript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.example.org),那么我们就可以认为它们是相同的域。比如 http://www.example.org/index.html和 http://www.example.org/sub/index.h ...

远程调用

       RMI        作为所有java远程方案的根源,RMI是在JDK1.1中引入的。它基于java序列化机制,通信协议则是可接插的,其默认的协议是JRMP,RMI-IIOP则是晚些时候为兼容CORBA而引入的。这两种协议都是J2EE兼容的EJB容器必须实现 ...

Spring持久化

数据访问解决方案 1、使用标准java直接在SQL层面上进行操作,即使用JDBC API,用于以基于SQL的方式访问关系型数据库,JDBC能够以很高的性能执行基于数据集的操作,这时SQL非常强大且易用。 JDBC的目标不是要给关系型数据库提供一个面向对象的视图,也不会牺牲目标数据库专有的强大功能。如果需要使用目标数据库的某种专有特性或是存储过程,JDBC仍旧是首选的好工具--这时使用O/R映射层会非常困难。       然而JDBC是一个低级的API,直接使用会相当麻烦,必须用大量容易出错的try/catch/finally代码块确保资源和异常得到很好的处理。 2、Ibatis SQL ...

java集合框架

    博客分类:
  • java
 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动 等内存操作,所以索引数据快,插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要 差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!   线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.ut ...

常见java面试题

    博客分类:
  • java
第一,谈谈final, finally, finalize的区别。 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally—在异常处理时提供finally块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如 ...

java内存模型学习

    博客分类:
  • java
之前内部培训整理的有关java内存模型的材料,贴出来记录下 什么是Java内存模型         Java 内存模型 (JMM)描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内 ...

Spring事务

事务管理服务有: 1、编程式事务管理:使用JTA UserTransaction对象,通过JNDI获取 2、声明式事务管理:通过使用组件模型(即EJB CMT),这是一种建立在JTA基础设施之上的高层服务   使用TransactionTemplate实现编程式的事务声明 //唯一的先决条件是需要获得对PlatformTransactionManager的引用 TransactionTemplate transactionTemplate=(TransactionTemplate)context.getBean("transactionTemplate"); ...
主要介绍比较常见的3种网络安全攻击手段,分别是:跨站脚本攻击(XSS)攻击、跨站请求伪造(CSRF)攻击、SQL注入攻击。 1、XSS攻击:应该算是最普遍的应用程序层攻击之一,攻击的目的是盗走客户端 cookies,或者任何可以用于在 Web ...

https协议

SSL协议的握手过程          为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议。SSL 协议既用到了公钥加密技术(非对称加密)又用到了对称加密技术,SSL对传输内容的加密是采用的对称加密,然后对对称加密的密钥使用公钥进行非对称加密。这样做的好处是,对称加密技术比公钥加密技术的速度快,可用来加密较大的传输内容,公钥加密技术相对较慢,提供了更好的身份认证技术,可用来加密对称加密过程使用的密钥。

oracle B*树索引

        B*树索引是最常用的数据库索引,一般所说的索引都是B*树索引         B*树索引的构造类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需要很少的读操作就能找到正确的行。         B*树索引的结构有可能如下图所示           这个树最底层的块称为叶子节点(leaf node)或叶子块(leaf block),其中分别包含各个索引建以及一个rowid(指向所索引的行)。叶子节点之上的内部块称为分支块(branch block)。这些节点用于在结构中实现导航。 有意思的是,索引的叶子节点实际上又构成了一个双向链表,执行索引区间扫描(值的有序 ...
Global site tag (gtag.js) - Google Analytics