平时使用SimpleDateFormat的时候都是在单线程的情况下使用的,今天在改写别人的代码,发现每个类中都会写大量的SimpleDateFormat实例。作为一个程序特有的洁癖开始对代码进行优化。

其实所谓优化操作也很简单,就是把所有的SimpleDateFormat抽到一个DateUtils类中,并提供静态方法。

优化之后,奇怪的事情发生了。部分程序报下面异常:

java.lang.NumberFormatException: multiple points

带着疑惑搜索解决方案,并查看项目代码,结果发现自己有些优化真是好心办坏事。原来,部分代码用到了多线程。只顾着优化,忽略了多线程时不能使用SimpleDateFormat。原因很简单SimpleDateFormat是线程不安全的。

在此记录一下自己踩的坑。

java.lang.NumberFormatException: multiple points 异常的更多相关文章

  1. java.lang.NumberFormatException: multiple points错误问题

    最近项目一直会出现时间转换报错,一直不知道是什么问题??? java.lang.NumberFormatException: multiple points     at sun.misc.Float ...

  2. 多线程出现 java.lang.NumberFormatException: multiple points

    多线程下导入数据,发现同一个文件每次导入成功的数据量都不一致,经检查,某些数据偶尔会报错  java.lang.NumberFormatException: multiple points 原因是导入 ...

  3. Java 异常: SimpleDateFormat java.lang.NumberFormatException: multiple points

    Java  SimpleDateFormat 是不支持多线程的.在不同线程同时用 一个 SimpleDateFormat  实例对象做日期装换,或抛出上面的 2 种 异常,所以 用到 SimpleDa ...

  4. java.lang.NumberFormatException: multiple points问题

    一般这种问题主要是因为SimpleDateFormat在多线程环境下,是线程不安全的,所以如果你在多线程环境中共享了SimpleDateFormat的实例,比如你在类似日期类中定义了一个全局的Simp ...

  5. 异常java.lang.NumberFormatException解决

    原因一:超出了int类型的取值范围 项目中要把十六进制字符串转化为十进制, 用到了到了Integer.parseInt(str1.trim(), 16):这个是不是后抛出java.lang.Numbe ...

  6. 使用JedisCluster出现异常:java.lang.NumberFormatException

    在使用JedisCluster进行测试时出现如下异常: java.lang.NumberFormatException: For input string: "7004@17004" ...

  7. Mybatis异常:java.lang.NumberFormatException: For input string: "S"

    MyBatis异常日志如下: Caused by: java.lang.NumberFormatException: For input string: "S" at sun.mi ...

  8. 解决测试redis集群时报"java.lang.NumberFormatException: For input string: "7003@17003..7002@17002"等异常

    一.前言 关于redis5.0的集群模式下,通过客户端测试代码调试报"Exception in thread "main" java.lang.NumberFormatE ...

  9. java.lang.NumberFormatException: For input string: "title"异常

    java.lang.NumberFormatException: For input string: "title" at java.lang.NumberFormatExcept ...

随机推荐

  1. IDEA运行lambda表达式

    在idea写了一个lambda的测试例子,但是运行一直报错, public class LambdaTest { public static void main(String[] args) { ne ...

  2. lintcode-74-第一个错误的代码版本

    74-第一个错误的代码版本 代码库的版本号是从 1 到 n 的整数.某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错.请找出第一个错误的版本号. 你可以通过 isBad ...

  3. linux基础优化

    [root@moban oldboy]# for oldboy in `chkconfig --list |grep "3:on" |awk '{print $1}' |grep ...

  4. hibernate笔记(三)

    目标: 第1部分: 对象的状态: 第2部分:缓存 1) 一级缓存 2) 相关知识 ----懒加载--- 第3部分:映射 一对一映射 组件映射 继承映射 一.对象的状态 举例: User   user  ...

  5. 用AngularJS操作DOM

    在angular中使用第三方插件时最好都封装到指令(directives)中去,DOM操作也最好都解构到指令中. <!DOCTYPE html> <html lang="e ...

  6. BZOJ4584 APIO2016赛艇(动态规划+组合数学)

    如果值域不大,容易想到设f[i][j]为第i个学校选了j的方案数,枚举上一个学校是哪个选了啥即可,可以前缀和优化.于是考虑离散化,由于离散化后相同的数可能可以取不同的值,所以枚举第一个和其所选数(离散 ...

  7. P1368 工艺

    题目描述 小敏和小燕是一对好朋友. 他们正在玩一种神奇的游戏,叫Minecraft. 他们现在要做一个由方块构成的长条工艺品.但是方块现在是乱的,而且由于机器的要求,他们只能做到把这个工艺品最左边的方 ...

  8. idea初学建立maven项目报错

    原理,是因为你没把新创建好的maven项目给设置成一个可被tomcat部署的web项目 参考此博文,讲的非常详细: 归根到底是因为web项目的部署问题: 解决方案:在创建的到时候,idea下部会提示是 ...

  9. 7月18号day10总结

    今天学习过程和小结 今天学会了用git从GitHub上克隆代码然后打包成jar包,然后在idea程序中引入这个jar包的依赖来使用jar包中的程序. 通过这个中的网址: 在Git Bash Here中 ...

  10. mysql__视图

    视图 1.什么是视图 视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的.视图并不是在数据库中实际存在的,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的 视图相对于普通 ...