Browsed by
标签: java

如何排查Java内存泄露

如何排查Java内存泄露

转发
java内存泄露典型特征

  • 现象一: 堆/Perm 区不断增长, 没有下降趋势(回收速度赶不上增长速度), 最后不断触发FullGC, 甚至crash(如下**两张图是同一个应用的GC和Perm数据, GC触发原因确认是Perm不足**)
. 一般是现象二的晚期表现.

e1ddc292bde8c43925699d6ba1ab2c25755e75f9d359f01b651f3519aa0caedf

说说并发编程 volatile

说说并发编程 volatile

Java volatile关键字是用来保证变量的线程可见性。到底什么是线程的可见性呢?准确地讲,每次读取volatile变量要从主内从中读取,而不是从CPU cache中读取;写一个volatile变量,要直接写到主内存,而不仅仅是CPU cache。

Java 5 引入了volatile,就[……]

继续阅读

说说并发编程 ThreadLocal

说说并发编程 ThreadLocal

类ThreadLocal 提供线程局部变量。这些局部变量不同于正常的变量,每个线程都有自己独立初始化的副本,可以通过threadLocal的set/get方法去改变它的。一般ThreadLocal 常用在类变量上。比如DateFormat类不是线程安全的,没有必要所有的方法都加上同步,这是利用Thr[……]

继续阅读

说说并发编程 synchronized

说说并发编程 synchronized

并发编程是码农一个绕不开的话题,更是区分高手和普通的一块雷区。面试中,更是屡试不爽。那今天就说说并发编程中synchronized,这是java自带的关键字,是原生保证线程安全的机制。

本文的目录是:

  • 什么是线程安全
  • 怎么解决线程安全
  • synchronized用法和原理介绍
  • [……]

    继续阅读

    java final 关键字

    java final 关键字

    说到final关键字,搞过java的都不陌生。基本上每个码农对final的基本用法都清楚,但是经常看到一些奇怪的用法和理解,那今天就好好梳理下。

    1.final关键字的基本用法
    在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)

    1.1修饰类
    当fin[……]

    继续阅读

    Ant 项目构建(1)

    Ant 项目构建(1)

    为了条理地介绍Ant,下面我分几部分来介绍Ant:

    1.什么是Ant

    Ant是一种基于java的build工具,理论上来说,有点类似与(liunx)种的make,但是修复了make的缺陷,使build更加好用,更加方便。
    这里有必要介绍一下为什么会产生Ant这个工具?
    既然已经有了m[……]

    继续阅读