java中格式化日期为固定格式的字符串,无外乎有两种方法:DateFormat 和String.format(JDK1.5+)
但是哪个方法效率更高呢?本人做了一个实验,发现了一个很有趣的现象。
当系统第一次使用SimpleDateFormat进行格式化日期对象的时候,消耗资源是比较大的。而第一次使用之后,每次再使用该对象甚至是该类不同的对象的同一个方法时,又会极大的节省时间。而String.format虽然也是存在第一次使用时资源消耗较大,但是从第二次开始,资源消耗减少的量却不是很明显了。
总结:第一次使用两种方法时SimpleDateFormat方法效率很低,耗费时间大概是String.format的10倍左右。
从第二次开始,SimpleDateFormat效率提高1000倍左右,String.format提高10倍左右.消耗时间只占String.format的1/10.
简单计算:如果系统使用日期格式化超过100次,就应该使用SimpleDateFormat,否则就应该使用String.format
PS:无论第二次使用SimpleDateFormat时是不是new了一个新的format对象,效率变化并不明显。
附源代码:
public static void main(String[] args) {
int count = 1;
long start = System.nanoTime();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for(int i=0;i<count;i++) {
sf.format(new Date());
}
System.out.println("ecllapsed:"+(System.nanoTime()-start));
start = System.nanoTime();
for(int i=0;i<count;i++) {
String.format("%1$tF %1$tT", new Date());
}
System.out.println("ecllapsed:"+(System.nanoTime()-start));
start = System.nanoTime();
count = 1;
for(int i=0;i<count;i++) {
sf.format(new Date());
}
System.out.println("ecllapsed:"+(System.nanoTime()-start));
start = System.nanoTime();
for(int i=0;i<count;i++) {
String.format("%1$tF %1$tT", new Date());
}
System.out.println("ecllapsed:"+(System.nanoTime()-start));
}
相关推荐
在描述中提到的"java项目开发全程实录PDF",意味着书中详细记录了Java开发的每一个步骤,包括但不限于需求分析、系统架构设计、数据库设计、类与对象的设计、MVC模式的应用、单元测试、集成测试、性能优化以及项目...
多线程技术则讲解如何在Java中实现并发执行,提高程序效率。集合框架是存储和操作数据的关键,包括ArrayList、LinkedList、HashMap等数据结构的使用。I/O流则涉及文件读写和数据传输,而网络编程则探讨如何构建网络...
根据提供的文件信息,“JAVA项目开发案例全程实录(超级高清).PDF”这一资源看起来是一份详尽的Java项目开发教程或案例分析资料。接下来,我们将基于这些信息深入探讨几个关键的知识点,帮助读者更好地理解Java项目...
在Java项目开发中,全程实录源代码是一个非常宝贵的资源,尤其对于初学者而言,它提供了实际操作和学习的机会。这个资源可能包含了从项目初始化、设计、编码到测试和部署的完整过程,涵盖了许多重要的Java编程和技术...
【标题】"JAVA项目开发全程实录配套光盘"揭示了这个压缩包是与一本关于JAVA项目开发的书籍配套的资源。通常这类资源会包含实际项目开发中的源代码、示例、教程或练习材料,旨在帮助读者更好地理解和实践书中讲解的...
在Java中,我们遵循一定的编码规范,如SUN的Java编程规范,以保证代码的可读性和可维护性。使用面向对象编程思想,我们将程序分解为类和对象,利用继承、封装和多态性实现模块化。此外,Java集合框架,如ArrayList、...
此外,持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)工具如Jenkins可以帮助自动化构建和部署流程,提高效率。 项目完成后,需要进行详尽的系统测试,包括功能测试、性能测试、...
Java程序设计与项目实战全程实录光盘 简介:本书从初学者学习Java编程的角度出发,根据作者多年的程序设计经验,按照科学的学习规律,由浅入深、循序渐进地向读者讲述了Java开发环境的搭建、Java基础语法知识、Java...
2. **异常处理**:Java中的异常处理机制可以帮助开发者处理程序运行时可能出现的问题,通过try-catch-finally语句块来捕获和处理异常。 3. **集合框架**:Java集合框架包括List、Set、Map接口以及它们的实现类,如...
9. **异常处理**:Java中的try-catch-finally语句用于捕获和处理异常,良好的异常处理机制能提升程序的健壮性。 10. **并发编程**:Java提供了强大的并发工具类,如ExecutorService、Semaphore和CyclicBarrier,...
根据提供的信息,《JAVA项目开发案例全程实录》第三章的内容虽然没有具体展现,但从标题和描述中可以推测出本章可能会涉及Java项目的实际开发过程。接下来,我们将基于这些信息进行展开,提炼出与Java项目开发相关的...
JAVA项目开发案例全程实录
《Java项目开发全程实录》这一本书从开发背景、需求分析、系统功能分析、数据库分析、数据库建模、网站开发和网站发布或者程序打包与运行,每一过程都进行了详细的介绍。 目 录 第1章 进销存管理系统(Swing+SQL ...
《JAVA项目开发案例全程实录(第二版)源码》是一部专门为Java初学者和开发者提供的实战教程,由明日科技倾力打造。这本书以其丰富的案例和详细的步骤指导,旨在帮助新手快速掌握Java项目开发的核心技能,避免在学习...
JAVA项目开发实例全程实录2
Java项目开发案例全程实录_第二版,详细讲解多种开发项目。
在Java项目开发中,全程实录通常意味着从项目的初期规划、设计、编码到测试和部署的完整过程。这个压缩包文件“TM - 副本”可能包含了这样的一个实际项目的所有源代码,为学习者提供了深入理解Java项目开发流程的...