• SimpleDateFormat线程安全问题与解决办法

    SimpleDateFormat线程安全问题与解决办法

    今天在自己的项目中遇到了SimpleDateFormat线程安全的问题,参考其他项目的DateUtil里把SimpleDateFormat都声明为

    1
    public static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

    但是这样存在一个线程完全的问题,原因是因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法可能会获得我们意料之外的结果,甚至抛出异常。
    在程序中我们应当尽量少的创建SimpleDateFormat 实例,因为创建这么一个实例需要耗费很大的代价,然后再丢弃这个对象。大量的对象就这样被创建出来,占用相当一部分的内存和 JVM空间。

  • 《深入理解Java虚拟机》读书笔记--02

    写在前面的话:

    在看这本书前面章节的时候,很多地方都提到了“新生代”和“老生代” 这两个名词,一开始我也懵逼,后来通过上网,看视频查阅相关资料,结合一些自己的理解,解释下这两个名词。
    不管怎么样要先来个弱弱的开场白:有错的地方请各位多多指正!!!!!
    JVM使用的是分代垃圾回收的方式,可以将Java对象分为”新生”对象和”老生”对象。
    JVM将内存堆(Heap)分为两个区域,一个是”新生对象”区,另一个是”老生对象”区,Java将这两个区域分别称作是”新生代”和”老生代”。

  • 《深入理解Java虚拟机》读书笔记--01

    《深入理解Java虚拟机》读书笔记--01

    写在前面的话:

    作为一名Java攻城狮,总担心一直搬砖成天做些重复没提升的东西,有那么一小段时间形成了一个很有意思的矛盾:一方面是工作上面学不到技术,一方面是不愿意学工作上用不到的技术,呵呵哒~
    在某一天顿悟后,明白程序员赖以立足的,不在于我们现在掌握了多少知识,而是我们有多强的学习劲头和学习能力。
    可JVM需不需要学习呢?项目实际开发中基本用不到,学来有啥子用呢?对我来说,是需要的。因为我还是很热爱编程的,对JVM有足够的兴趣,同时这辈子也不甘心只做一个平庸的码农。鲁迅先生说过:“不满足是向上的车轮”,陆游也曾言:“功夫在诗外”。

  • Spring AOP 记录日志和全局异常处理

    目前接触的这个项目中,需要在自己每个方法的前后打印日志,感觉这些都是通用的东西可以抽取出来。后来参照了公司的另外一个项目,结合这段时间对Spring的学习,整理出可以通用的日志和异常处理类,以供参考。

  • Docker简介、安装与应用

    Docker简介、安装与应用

    Docker学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令...
  • SpringBoot(04)--整合mybatis

    SpringBoot(04)--整合mybatis

    记录Spring Boot如何整合MyBatis框架,并访问数据库。

    没有使用mybatis注解,而是使用xml方式,这样可以让sql和业务代码分离,很清晰方便。

  • SpringBoot(03)--thymeleaf模板介绍(二)

    SpringBoot(03)--thymeleaf模板介绍(二)

    Thymeleaf常用

    0、基本变量取值

    部分代码示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    @Controller
    public class HelloController {
    @RequestMapping("hello")
    public String hello(Model model){
    model.addAttribute("hello","has");
    model.addAttribute("ss","haaaaasss");
    model.addAttribute("s","haaaaasss");
    Person me = new Person(0,"亚凯",99);
    model.addAttribute("me",me);
    Person p1 = new Person(1,"亚凯",100);
    Person p2 = new Person(2,"小蕾",100);
    List<Person> persons = new ArrayList<>();
    persons.add(p1);
    persons.add(p2);
    model.addAttribute("persons",persons);
    return "hello";
    }
    }
  • SpringBoot(02)--thymeleaf模板介绍(一)

    SpringBoot(02)--thymeleaf模板介绍(一)

    Thymeleaf模板

    Spring boot 官方推荐使用来代替jsp,到底thymeleaf是啥子呢?

    Thymeleaf 介绍

    Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。

  • SpringBoot(01)--Hello World

    SpringBoot(01)--Hello World

    Spring Boot 简介

    世界上最好的文档来源自官方的《Spring Boot Reference Guide》,是这样介绍的:

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”…Most Spring Boot applications need very little Spring configuration.

    Spring Boot(英文中是“引导”的意思),是用来简化Spring应用的搭建到开发的过程。应用开箱即用,只要通过 “run”(可能是 java -jar 或 tomcat 或 maven插件run 或 shell脚本),就可以启动项目。再就是Spring Boot 只要很少的Spring配置文件(properties,yml)。

  • Markdown常用语法手册(整理版)

    Markdown常用语法整理如下:

    斜体、粗体和删除线

    1
    2
    3
    4
    *斜体*_斜体_
    **粗体**
    ***加粗斜体***
    ~~删除线~~
178910