end's coding life

赤子之心

Linux上java进程虚拟内存VIRT占用高的问题

1. 现象最近发现线上机器 java 8 进程的 VIRT 虚拟内存使用达到了 50G+,如下图所示:2. 不管用的 -Xmx首先第一想到的当然使用 java 的 -Xmx 去限制堆的使用。但是无论怎样设置,都没有什么效果。没办法,只好开始苦逼的研究。3. 什么是 VIRT现代操作系统里面分配虚拟...

2018-05-29 15:13:29

阅读数:921

评论数:0

Metrics使用简介

Metrics可以为你的代码的运行提供无与伦比的洞察力。作为一款监控指标的度量类库,它提供了很多模块可以为第三方库或者应用提供辅助统计信息, 比如Jetty, Logback, Log4j, Apache HttpClient, Ehcache, JDBI, Jersey, 它还可以将度量数据发送...

2018-05-02 10:00:51

阅读数:258

评论数:0

使用spring注解注入属性

1.1. 使用注解以前我们是怎样注入属性的 类的实现: public class UserManagerImpl implements UserManager {         private UserDao userDao;         public void setUserDao...

2017-04-24 11:27:46

阅读数:350

评论数:0

ExecutorService中submit和execute的区别

在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。   一、创...

2017-04-24 10:30:41

阅读数:352

评论数:0

基于Anocation的Spring Cache

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对...

2017-04-06 17:26:23

阅读数:660

评论数:0

记一次服务停止排查

早上到公司,查看周末日志有没有异常。日志都是按天切割的。发现昨天的日志,大部分都没有。查发布记录,周末没有人发布过。jps,进程也在。而且小部分日志是正常的。问了运维的人员,也没有人手动删除过。试着打开当前的日志,发现最后一条的日期是昨天下午16点。脑子嗡的一下:完了,服务昨天下午就挂了,到现在都...

2017-03-08 16:56:15

阅读数:1412

评论数:0

Java--文件内存映射--NIO--MapedByteBuffer

java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果文件超大的话,更快的方式是采用MappedByteBuffer。  MappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。NIO最主要的就是...

2016-12-09 16:19:49

阅读数:862

评论数:0

ThreadLocal内存泄漏详细分析

前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用 ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析 ThreadLocal 内存泄漏的问题 ...

2016-08-23 23:49:22

阅读数:684

评论数:0

logback.xml常用配置详解<configuration> and <logger>

一:根节点包含的属性:   scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 ...

2016-08-23 20:22:32

阅读数:283

评论数:0

线上性能问题初步排查方法

有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程,本文只是简单的介绍一些常用的工具,帮助定位线上问题。 问题定位 1: 首先使用TOP命令查看每个进程的情况,显示如下: top - 22:27:25 ...

2016-04-29 11:42:57

阅读数:1415

评论数:0

Java锁----Synchronized实现原理

数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家可能会进一步追问:JVM底层又是如何实现synchronized的?    本文所指说的JVM是指Hotspot的6u23版本,下面首先介绍...

2016-04-26 12:03:04

阅读数:2467

评论数:1

Java锁----Lock实现原理

Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.uti...

2016-04-26 11:35:06

阅读数:14238

评论数:0

正确使用Volatile关键字

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 vo...

2016-04-18 15:38:24

阅读数:5638

评论数:1

Java序列化的几种方式

本文着重讲解一下Java序列化的相关内容。 如果对Java序列化感兴趣的同学可以研究一下。 一.Java序列化的作用    有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从一个字节流中恢复一个Java对象。例如,有的时候我们想要 把一个Java对...

2016-04-18 11:13:55

阅读数:17552

评论数:0

Java中的synchronized

synchronized是针对对象的隐式锁使用的,注意是对象!  举个小例子,该例子没有任何业务含义,只是为了说明synchronized的基本用法:  Java代码   Class MyClass(){     synchronized void myFunc...

2016-04-11 17:43:38

阅读数:2030

评论数:0

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。   以下是本文目录大纲:   一.CountDownLatch用法   二.Cycl...

2016-03-30 09:09:48

阅读数:855

评论数:0

Java静态导入

要使用静态成员(方法和变量)我们必须给出提供这个静态成员的类。   使用静态导入可以使被导入类的静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。   静态导入也是JDK5.0引入的新特性,下面以实例来说明静态导入的用法:      比如先在一个包中...

2016-03-15 13:34:46

阅读数:354

评论数:0

Java线程池源码分析(二)

二.深入剖析线程池实现原理 在上一节我们从宏观上介绍了ThreadPoolExecutor,下面我们来深入解析一下线程池的具体实现原理,将从下面几个方面讲解:   1.线程池状态   2.任务的执行   3.线程池中的线程初始化   4.任务缓存队列及排队策略   5....

2016-02-29 14:01:06

阅读数:367

评论数:0

Java线程池源码分析(一)

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复...

2016-02-29 13:59:54

阅读数:348

评论数:0

理解LinkedHashMap

1. LinkedHashMap概述: LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。    LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供...

2016-02-24 14:17:10

阅读数:321

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭