
JAVA
文章平均质量分 81
老任物联网杂谈
这个作者很懒,什么都没留下…
展开
-
JAVA异常
<br /><br />六种异常处理的陋习<br />你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? <br /><br />1 OutputStreamWriter out = ... <br />2 java.sql.Connection conn = ... <br />3 try { // ⑸ <br />4 Statement stat = conn.createStatement(); <br />5转载 2010-07-10 13:07:00 · 430 阅读 · 0 评论 -
HttpSessionListener 和HttpSessionBindingListener的区别
<br />使用HttpSessionListener<br />编写一个OnlineUserListener。package anni;<br /><br /><br /><br />import java.util.List;<br /><br />import javax.servlet.ServletContext;<br /><br />import javax.servlet.http.HttpSession;<br /><br />import javax.servlet.http.HttpS原创 2011-04-26 11:24:00 · 453 阅读 · 0 评论 -
JAVA String.format 方法使用
<br /> 在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等 待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论一下format 参数的格式及含义。<br /> format参数中可以包含原创 2011-04-26 20:31:00 · 605 阅读 · 0 评论 -
LinkedHashMap的最近最少使用(LUR)算法实践-
<br /> <br />固定容量的基于最近最少使用算法的LinkedHashMap.可用作简单缓存.使用方法与LinkedHashMap一致.<br />利用LinkedHashMap实现简单的缓存,必须实现removeEldestEntry方法,具体参见JDK文档.另外还加入了一个可重入的互斥锁定.<br />使用说明:LRU算法是LinkedHashMap本身通过双向链表来实现,当某个位置被使用(例如get操作),通过调整链表的指向将该位置调整到头位置, 新加入的内容直接放在链表头,如此一来,最近被使原创 2011-04-30 13:56:00 · 5070 阅读 · 0 评论 -
应用OSCache提升J2EE系统运行性能
<br />文章摘要<br /><br />Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。本文中作者给大家介绍一个实现J2EE框架中Web应用层缓存功能的开放源代码项目----OSCache。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善系统的稳定性。1 面临的问题<br />1.1 需要处理的特殊动态内容<br /><br />在信息系统建设过程中我们通常会遇到这样的问题:<br />1.原创 2011-05-03 17:50:00 · 682 阅读 · 0 评论 -
通过分区(Partition)提升MySQL性能
<br /><br />相信有很多人经常会问同样的一个问题:当 MySQL<br />的总记录数超过了100万后,会出现性能的大幅度下降吗?答案是肯定的,但是性能下 降>的比率不一而同,要看系统的架构、应用程序、还有>包括索引、服务器硬件等多种因素而定。当有网友问我这个问题的时候,我最常见的回 答>就是:分表,可以根据id区间或者时间先后顺序等多<br />种规则来分表。分表很容易,然而由此所带来的应用程序甚至是架构方面的改动工作却不>容小觑,还包括将来的扩展性等。<br />在以前,一种解决方案就是使用转载 2011-05-03 18:29:00 · 659 阅读 · 0 评论 -
JVM最大线程数计算方法
<br />最近在应用服务器跑压力测试过程当中,出现无法创建线程的错误。<br />在java应用中,有时候会出现这样的错误:OutOfMemoryError: unable to create new native thread.这种怪事是因为JVM已经被系统分配了大量的内存(比如1.5G),并且它至少要占用可用内存的一半。有人发现,在线程个数很多的情况下,你分配给JVM的内存越多,那么,上述错误发生的可能性就越大。<br /><br /><br />那么是什么原因造成这种问题呢?<br /><br />转载 2011-05-09 13:15:00 · 4052 阅读 · 0 评论 -
Java Annotation 注解
Annotation(注解)是什么?附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、Annotation的定义首先看一下如何定义我们自己的注解,下面是SpringMvc中RequestParam注解的定义。@R转载 2012-03-23 15:06:23 · 879 阅读 · 0 评论 -
使用Spring+Spring MVC对服务层的设计思考
服务层在客户与系统两方面扮演了重要的角色。对于客户,它暴露和封装了粗粒度的系统功能(用例)从而简化了使用。所谓粗粒度的方法是指那些高级别的方法,封装了广泛的工作流并避免了客户与系统许多小的交互。服务层是客户与系统交互的唯一途径,由于所有实现用例的POJO交互对于客户是隐蔽的,所以服务层要保持低耦合性。对于系统,服务层方法代表工作的事务单元。这意味着当调用一个方法时,许多POJO及其交互就会翻译 2012-03-26 12:16:48 · 4503 阅读 · 0 评论 -
HTTP/1.1 Cache-Control的理解
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:(1) 打开新窗口如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问转载 2012-03-20 18:13:54 · 790 阅读 · 0 评论 -
5分钟了解Thymeleaf的标准方言(Standard dialects)
这篇指南将介绍Thymeleaf模板技术的标准翻译 2014-10-27 21:13:53 · 41399 阅读 · 1 评论 -
JAVA获取路径方法总结
1.FileTest.class.getResource("") 得到的是当前类FileTest.class文件的URI目录。不包括自己! 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/2.FileTest.class.getResource("/") 得到的是当前的classpath的绝对URI路径转载 2011-06-17 13:42:00 · 576 阅读 · 0 评论 -
ClassLoader
<br /><br /> JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 <br /><br /><br /><br />一. ClassLoader基本概念<br />1.ClassLoader分类<br />类装载器是用来把类(class)装载进JVM的。<br />JVM规范定义了两种类型的类装载器:启动内装载器(bootstrap)和用户自定义装载器(user-defined cl原创 2011-04-25 08:46:00 · 516 阅读 · 0 评论 -
关于搜索应用架构的三篇文章
第一部分:网络爬虫(基础)http://www.ibm.com/developerworks/cn/java/j-lo-dyse1/index.html第二部分:网页预处理(核心)http://www.ibm.com/developerworks/cn/java/j-lo-dyse2/index.html第三部分:查询服务(用户交互接口)http://www.ibm.com/deve转载 2011-06-14 13:18:00 · 567 阅读 · 0 评论 -
Java反射经典实例 Java Reflection Cookbook
Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制。转载 2010-06-08 17:26:00 · 348 阅读 · 0 评论 -
Dom4j的使用
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。转载 2010-06-08 16:58:00 · 379 阅读 · 0 评论 -
深入源码看JAVA集合的数据结构
这篇我准备从源码的高度来看看集合中各个实现类的是如何组织我们存进去的数据的,主要包括Java类库中提供的几个具体的类: LinkedList ArrayList HashMap HashSet TreeMap TreeSet PriorityQueue(顺序按下面的讲解顺序) ----------------------------------------------------------------------------------------------------- 1、java.util.Lin原创 2010-11-29 18:02:00 · 1501 阅读 · 0 评论 -
String.format()的用法
JDK1.5中,String类新增了一个很有用的静态方法String.format():format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。举几个这个方法实用的例子(注释是输出结果):CODE:long now = System.currentTimeMilli转载 2010-10-27 18:25:00 · 375 阅读 · 0 评论 -
通通透透理解validator框架和validate方法关系
<br />validate方法有三种来源,分别继承自ActionForm, ValidatorForm, ValidatorActionForm<br /><br />不同点:<br /><br />(1).继承自ActionForm的FormBean,必须覆基类ActionForm的validate()方法,仅能做服务器端检验。需要在 struts config.xml中配置中,Action一定要将validate属性设置为validate="true“. 不是Struts Validator框架,也不原创 2010-11-04 09:36:00 · 1148 阅读 · 0 评论 -
截取中英文混合文字方法
<br /><br /> java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的。因此java要对这些字节流经行转化。char是unicode的,而byte是字节。我们在写jsp页面时可能没注意到jsp作为回显终端,也是byte的,所以在从jsp页面中读取表单和写入数据(javabean)时要注意页面的编码.一个传统的解决方案是所有的应用包括页面编码设置/数据库编码设置都设定一致,比如gbk(gbk是gb2312的扩展集,支持的字符要多些)<br />转载 2011-05-10 16:53:00 · 1103 阅读 · 0 评论 -
一道面试题(大数据量 内存限制)
问题:3000w数据的表,取某项字段前50项数据 ,内存2g方案:一个数据文件,有3000W行,每行有一个id号,文件内容无任何排序。现在让你把id前 TOP 位取出来, TOP = 50.要求:你的程序最多能吃2G的内存,其他不限,要求考虑io/cup最优。解决思路:1 建一个top_array, 长度为50.2 再建一个buffer, 长度为2^20 (1G) 3 循环开始4 读取文件到buffer,直到buffer满为止5 将Buffer的前50位读到top_array7 将top_arr原创 2011-05-10 18:00:00 · 3350 阅读 · 1 评论 -
数据结构与算法(JAVA)-简单排序
简单排序包括冒泡排序,选择排序,插入排序三种排序方法,是入门级的排序,也是几种高级排序的基础。比如高级排序中的希尔排序是基于插入排序来延伸的。为实现排序代码,提前建立一个基类,将排序之外的细节先进行封装,下面的代码只关注具体的排序方法,基类代码如下:package algorithms.simpleSort;/*** * * @author mudalu * */public abstract class ArraySimple { protected long[] a;//待排原创 2011-05-26 14:59:00 · 1105 阅读 · 0 评论 -
从Java Collections源码分析迭代器模式
一、 引言 迭代这个名词对于熟悉Java的人来说绝对不陌生。我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); while(it.hasNext()){ //using “it.next();”do some businesss logic } 而这就是关于迭代器模式应用很好的例子。二、 定义与结构 迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(原创 2011-05-31 16:56:00 · 2655 阅读 · 1 评论 -
M位取N位求最大最小值
最近面试,同事给面试者出了一道算法题,饶有兴趣,做了一下实现。 题目:数字K有M位,取其N位,使取得的值为最小值(最大值)。例如:K=21456,M=5,N=3,则最大值MAX=456,最小值MIN=145。因求最大值和最小值思路完全一致,所以以下以最小值为例。 解题思路:算法首先想到的是效率问题,即时间效率和辅助内存效率。所以像全排列的做法肯定是不可取的。原创 2011-06-08 16:06:00 · 2238 阅读 · 0 评论 -
考虑使用JavaConfig替代XML配置
对于总是固执地使用Spring的XML配置方式,同事们总是讥讽我。是的,这看起来太二太过时了,不过XML还是有它的优势:1.集中式配置。这样做不会将不同组件分散的到处都是。你可以在一个地方看到所有Bean的概况和他们的装配关系。2.如果你需要分割配置文件,没问题,Spring可以做到。它可以在运行时通过标签或者上Context文件对分割的文件进行重新聚合。3.相对于自动装配(autow翻译 2014-10-27 13:25:04 · 13244 阅读 · 0 评论