车晋强的专栏

车晋强的专栏

自定义博客皮肤

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

slf4j+logback配置详解

1. <dependency> 2. <groupId>org.slf4j</groupId> 3. <artifactId&...

2018-05-04 19:37:55

阅读数 387

评论数 0

守护线程与非守护线程

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM...

2018-05-04 19:24:32

阅读数 635

评论数 1

GC的一些概念

1. 什么时候会触发Minor GC?    Eden区域满了,或者新创建的对象大小 > Eden所剩空间    CMS设置了CMSScavengeBeforeRemark参数,这样在CMS的Remark之前会先做一次Minor GC来清理新生代,加速之后的Remark的速度...

2018-05-04 19:17:10

阅读数 77

评论数 0

相对全面的gc总结

首先是大家都要提到的GC的基础算法:标记清除,标记整理,复制,分代。这些算法的第一步都是做的一件事: 标记(Mark)。JVM的标记算法采用了根搜索算法(Root Tracing)。根有几种:1. JVM栈的Frame里面的引用2. 静态类,常量的引用3. 本地栈中的引用4. 本地方法的引用5.分...

2018-05-03 21:10:26

阅读数 161

评论数 0

一次CMS排查过程

这个是之前处理过的一个线上问题,处理过程断断续续,经历了两周多的时间,中间各种尝试,总结如下。这篇文章分三部分:1、问题的场景和处理过程;2、GC的一些理论东西;3、看懂GC的日志先说一下问题吧问题场景:线上机器在半夜会推送一个700M左右的数据,这个时候有个数据置换的过程,也就是说有700M*2...

2018-05-03 21:07:56

阅读数 333

评论数 0

CMS垃圾收集器的几个过程

首先理解下Major GC,Full GC和CMS的区别:1. Full GC == Major GC指的是对老年代/永久代的stop the world的GC2. Full GC的次数 = 老年代GC时 stop the world的次数3. Full GC的时间 = 老年代GC时 stop t...

2018-05-03 21:07:28

阅读数 599

评论数 0

CMS

    CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生...

2018-05-03 21:06:56

阅读数 421

评论数 0

java堆内存与栈内存

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆...

2018-05-03 21:06:11

阅读数 56

评论数 0

java虚拟机

JAVA的技术体系:支撑JAVA程序运行的虚拟机,提供各开发领域接口的JAVA API, JAVA编程语言及许多第三方框架(spring,struts)                              对于JAVA程序员,在虚拟机自动内存管理机制帮助下,不再需要为每一个new操作去写配对...

2018-05-03 21:05:31

阅读数 47

评论数 0

jmap命令使用

jmap用于查看堆内存使用情况,一般结合jhat使用。jmap -permstat pid    打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息,使用jmap -heap pid查看进程堆内存使用情况,包括使...

2018-05-03 21:01:08

阅读数 237

评论数 0

jps分析

jstack命令的语法为:jstack <pid>.    可以用jps查看java进程id。jps本身可以列出所有的java进程。如下:[www@idc02-test-pay-17 che]$ jps18992 Bootstrap19668 Boots...

2018-05-03 21:00:44

阅读数 187

评论数 0

jstack命令使用

jstack <pid>  :导出该进程的堆栈信息,对于解决问题是非常有帮助的。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩...

2018-05-03 21:00:15

阅读数 413

评论数 0

jstat命令使用

jstat(JVM统计监测工具)    语法格式如下:jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]    vmid是虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时间间隔...

2018-05-03 20:59:40

阅读数 218

评论数 0

jvm调优

堆设置-Xmx3550m:设置JVM最大堆内存 为3550M。 -Xms3550m:设置JVM初始堆内存 为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xss128k: 设置每个线程的栈 大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为2...

2018-05-02 12:03:38

阅读数 51

评论数 0

jvm性能监控和故障处理

给一个系统定位问题时,理论知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段所以在定位问题时,对于JVM相关的知识的理解非常关键,对这部分理论知识在这里就不详述了。概述工具分两大类,一类是命令行工具,一类是可视化工具命令行工具是运行期定位线上问题的首选工具。 常用用法用ps、jps找出...

2018-05-02 12:03:10

阅读数 46

评论数 0

关于GC

Minor GC从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC。这一定义既清晰又易于理解。但是,当发生Minor GC事件的时候,有一些有趣的地方需要注意到:当 JVM 无法为一个新的对象分配空间时会触发 Minor GC,比如当 Eden 区满了。所以...

2018-05-02 12:02:33

阅读数 49

评论数 0

tomcat的jvm内存溢出问题的解决

java_opts参数:-server:作为第一个参数,在多个cpu时性能佳。-Xms:初始Heap(堆)大小,使用的最小内存,cpu性能高时此值应设的大一些。-Xmx:java heap最大值,使用的最大内存。-XX:PermSize:设定内存的永久保存区域-XX:MaxPermSize:设定最...

2018-05-02 12:01:40

阅读数 40

评论数 0

git远程仓库版本回退方法

远程分支回滚的三种方法:自己的分支回滚直接用reset公共分支回滚用revert错的太远了直接将代码全部删掉,用正确代码替代3 本地分支版本回退的方法如果你在本地做了错误提交,那么回退版本的方法很简单 先用下面命令找到要回退的版本的commit id:git reflog接着回退版本:git re...

2018-05-02 11:57:47

阅读数 95

评论数 0

阿里java规范

1.任何布尔类型的变量,都不要加is。否则部分框架解析会引起序列化错误。    反例:boolean isSuccess,它的方法是isSuccess()。RPC框架在反向解析的时候,以为对应的属性名称是success。导致属性获取不到,进而拋出异常。2.不要使用一个常量维护所有常量,应该按常量功...

2018-05-02 11:52:28

阅读数 143

评论数 0

深入web请求过程

        如何发起一个HTTP请求和如何建立一个socket连接区别不大,只不过outputstream.write写的二进制字节数据格式要符合HTTP,浏览器在建立socket连接之前,必须根据地址栏里输入的URL的域名DNS解析出IP地址,然后再根据ip地址和端口与对应的远程服务器建立s...

2018-05-02 11:51:24

阅读数 54

评论数 0

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