有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录操作的Java类,当然还有一些其他

ConcurrentMap.putIfAbsent(key,value) 等价于下面代码,只不过下面代码不是线程安全的,putIfAbsent是线程安全的 if(!map.containsKey(key)) return map.put(key,value); else return map.get(key) 先看一段代码: Java代码   public class Locale {    

1、Class.getResource(String path)  path以/开头和不以/开头的区别  path不以’/'开头时,默认是从此类所在的包下取资源; path 以’/'开头时,则是从ClassPath根下获取;或者说是从根目录下获取 例如工程名叫做myproject,“ / ”代表了myproject me.class.getResourceAsStream("/com/x/fil

JVM内存的分配与回收大致可分为如下4个步骤: 何时分配 -> 怎样分配 -> 何时回收 -> 怎样回收.  除了在概念上可简单认为new时分配外, 我们着重介绍后面的3个步骤: I. 怎样分配- JVM内存分配策略 对象内存主要分配在新生代Eden区, 如果启用了本地线程分配缓冲, 则优先在TLAB上分配, 少数情况能会直接分配在老年代, 或被拆分成标量类型在栈上分配(JIT优化). 分配的规则

class.getResourceAsStream 用法    首先,Java中的getResourceAsStream有以下几种 Class.getResourceAsStream(String path) : path 不以’/‘开头时默认是从此类所在的包下取资源,以’/‘开头则是从   ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。

跨域SSO

跨域SSO的实现之一:架构设计 翻译自CodeProject网站ASP.NET9月份最佳文章:Single Sign On (SSO) for cross-domain ASP.NET applications。 翻译不妥之处还望大家多多指导、相互交流。 文章分为两部分:架构设计和程序实现,此为第一篇即:架构设计或者叫设计蓝图(Part-I - The design blue print)。:)

IO流详解

File类  String path="e:/img";  String fileName="test.jpg";  new File(path,fileName);//相对路径:相对于path的路径  new File(new File(path),fileName);//同样是相对于path的路径 IO流分类 1、流向 输入流与输出流   程序 与 文件|数组|网络连接|数据库 2、数据   

编写Java项目时,经常会遇到两种问题。   第一种:Java进程占用CPU比较高 第二种:Java进程堆内存溢出   今天主要跟大家聊聊第一种问题如何排查。   一、确定消耗CPU的Java进程   从上图可以看到Java进程 27459 消耗的CPU比较高。   二、查找 27459 Java进程消耗CPU线程ID   方式一: top -p [pid]   执行命令后按shift + h (

简介: handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解:   @PathVariable; B、处理request header部分的注解:   @RequestHeader, @CookieV

垃圾收集算法 1、标记清除算法       标记清除算法分为标记和清除两个阶段,首先标记出所要回收的对象,在标记完后统一回收所有被标记的对象。有两点不足,一是效率问题,标记清除两个过程的效率都不高;另外一个是标记清楚之后会产生大量的不连续碎片,碎片太多会导致以后无法分配大对象。 2、赋值算法      将可用的内容按照容量划分为大小相等的两块,每次只使用其中的一块,当另外一块用完了,就将还存活的对

1 2 3 4 5 6 7 8 9