对于代码安全这块,工作年限不多的开发人员或许一直不够重视,有的可能是公司规范上存在缺陷,也有的是个人态度上存在问题,之前看到一句话,安全倾向于 “明显没有漏洞”,而不是“没有明显漏洞” 个人觉得说的很对,下面罗列下自己工作上遇到的和觉得可能造成安全问题的地方,不足之处欢迎补充。

import java.text.SimpleDateFormat;
import java.util.Date;public class DateFormat {private static ThreadLocal<SimpleDateFormat> localsdf = new ThreadLocal<SimpleDateFormat>();public static Date parse(String str) throws Exception {SimpleDateFormat sdf = localsdf.get();if (sdf == null) {sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");localsdf.set(sdf);}return sdf.parse(str);}public static Date parse1(String str) throws Exception{SimpleDateFormat sdf = localsdf.get();if(sdf == null){sdf = new SimpleDateFormat("yyyyMMddHHmmss");localsdf.set(sdf);}return sdf.parse(str);}}

如上面这段代码,初衷是为了方便多次调用减少创建SimpleDateFormat对象次数,但是这里就有问题了,parse和parse1都可以成为localsdf 的共享变量就会存在线程安全问题了,实际中这种类型问题在本地测试并不容易被测试到,同样的还有使用全局变量,静态变量的时候也都要仔细考虑线程安全问题。

浅谈Java代码安全(一)相关推荐

  1. java bitset用途_浅谈Java BitSet使用场景和代码示例

    搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...

  2. 【Java】浅谈关于代码的耦合性

    [Java]浅谈关于代码的耦合性 前言 一.需求 二.简单的实现 1.资源代码(项目提供) 2.对需求的普通实现 三.利用业务与逻辑分离的方式实现 改进 四.对需求改进后的同步项目改进(优点) 总结 ...

  3. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  4. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  5. 浅谈Java网络编程之Socket (2)

    <浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...

  6. java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...

  7. java 多线程同步_浅谈Java多线程(状态、同步等)

    Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...

  8. 浅谈JAVA中如何利用socket进行网络编程(二)

    转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  9. java编程double相乘_浅谈Java double 相乘的结果偏差小问题

    看下面的一段代码的运行结果: public class TestDouble { public static void main(String[] args) { double d =538.8; S ...

  10. java方法区对象类型_浅谈Java内存区域与对象创建过程

    一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...

最新文章

  1. python分组聚合显示全部列_python – pandas:如何按多列分组并在多列上执行不同的聚合?...
  2. mysql的主从复制是如何实现的
  3. hadoop1.2.1安装配置
  4. 将一张表里的数据转换为json字符串
  5. 异步复位同步释放_简谈同步复位和异步复位
  6. static class 静态类(Java)转
  7. android动画影子效果,Android TV常用动画的效果,View选中变大且有阴影(手机也能用)...
  8. 一个简单的时间轴demo
  9. 004redis与python的交互
  10. 酒泉于洋计算机学校,于洋
  11. js中的forEach
  12. Android中GridView实现互相添加和删除
  13. handler机制和异步更新UI页面
  14. 一道阿姆斯特朗回旋好题( Convex HDU - 5979)
  15. EPP-常见问题总结
  16. iOS之UITableView组头组尾视图/标题悬停
  17. python中用pygame创建一个精致的窗口
  18. 微信浏览器字体调整 PHP,微信h5禁止微信内置浏览器调整字体大小-爬坑
  19. 谷歌老程序员的补丁和中国中年程序员的焦虑,区别到底在哪?
  20. dNet图像处理组件学习总结

热门文章

  1. inode服务器与响应,inode客户端服务器下线请求和
  2. 用HTML+CSS做一个漂亮简单的个人网页
  3. JavaScript库和框架
  4. 虚拟机系统iso镜像下载_微软Windows 10 Build 19013(20H1)简体中文版ISO镜像可供下载...
  5. win10照片查看器_win10最好的看图软件?win10照片查看软件推荐
  6. .vue文件怎么使用_手机技巧:被人忽视OTG功能怎么使用?复制文件到U盘的新方法...
  7. ERP采购管理 华夏
  8. 管道读写报错121:信号灯超时时间已到
  9. 如何将MKV的字幕提取出来
  10. MockServer 服务框架