标签目录:java

以下是与标签 “java” 相关联的文章

如何查看线上的Java进程使用的GC收集器类型

使用下面的命令可以查看是否使用了指定类型GC收集器,结果中有+号则使用这种收集器,否则有-号表示没有使用这个收集器。 并行: jinfo -flag UseParallelGC 13727jinfo -flag UseParallelOldGC 13727(fallback to 串行) 并发: jinfo -flag UseParNewGC 13727(fallback to 串行)jinfo -flag UseConcMarkSweepGC 137……

Java&Mysql日期时间类型随笔

在不同的语言和不同的数据库中,我们可能都看见过Date, Datetime, Timestamp的封装和实现,然而,每次在对时间进行转换的时候,我们总是很confused,每次不断的尝试直到满足我们的需求为止,很少有人真正的理解他们的区别,从字面上来讲,我们可以理解为,Date只表示日期,Datetime除了表示日期还表示时间,Timestamp则是……

永无休止的关于REST API设计风格的争论

记得几个月前,我们讨论过到底是重用HTTP CODE(400,500), 返回错误码还是仅仅重用HTTP CODE(200)并且使用自定义的业务CODE返回错误码,这个问题并没有唯一标准的答案,各有利弊,不同的大公司也是采用大相径庭的方案,只能说萝卜白菜,各有所爱,喜好不同导致产生了两大阵营,帖子如下:http://cloudate.net/?p=1062。 无……

GC堆最大最小内存随笔

今天公司里面又有人讨论Xms和Xmx设置成一样好呢?还是不一样好呢?这是一个老生常谈的问题,当然,也有很多人知道设置成同样的值会更好些,可是又不知道为什么,还有些人尽管告诉他们设置成一样的好,他们也不太相信,为了能更容易说服一些在技术上比较倔强的人,在网上随便搜索了一下资料,总结如下: Xms和Xmx应该设置……

从类的热替换到Spring环境的热替换

最近,一个同事问我一个问题,同事问Spring是否能发现环境的配置变化并且重新加载并热替换,从我的直觉来讲,答案是: 1. Spring应该没有提供这样的功能,因为这种功能并不是大众需要的,是个很少见但是偶尔会有的。 2. 这种功能可以自己实现,用一个监听器或者定时器,发现配置文件变化,则重新加载环境,并且替换原有的……

【转载】【经典】经典GC系列文章

本文为转载的系列文章,个人认为非常经典,如果你真的想了解GC,一定读完这五篇文章。 JVM系列一:JVM内存组成及分配 JVM系列二:GC策略&内存申请、对象衰老 JVM系列三:JVM参数设置、分析 JVM系列四:生产环境参数实例及分析【生产环境实例增加中】 JVM系列五:JVM监测&工具 下文为其中的第三篇,包括所有的GC参数以……

【翻译】你应该知道的5个令人激动的Java项目

本文为译文,原文连接:Five exciting Java Projects you should know about 每个Java领域的开发人员都有可能使用到这5个项目并且从中受益。2011年在圣何塞大会上曾提名过这些项目。我之所以选择这些项目,是因为我在多个项目中都会使用到他们,并且他们能够帮助我解决现实的问题,最为开发人员,他们能帮助我们解决每天……

Netty和Jetty线程模型的对比

Netty boss线程池,前端每个端口一个boss线程,负责accept事件。 worker线程池,固定数量,默认是处理器数量的2倍,每个线程一个select对象,负责read&write事件,并进行handler的执行。 executor,可选,在有长事务的时候,workder线程会返回,将SocketChannel交给executor。 Jetty 2 accept线程:负责处理accept事……

浅析Javascript和Java闭包(Closure)

随着大数据分析和并行计算逐渐的流行起来,函数式编程由于其语法简单,易于使用,因此变得必不可少,函数式编程中炒得如火如荼的概念就是闭包,听起来第一印象就让人想到大学时候数学里面的闭包,让人晦涩难懂,本文通过大家熟悉的Javascript和Java语言如何支持闭包来帮助大家理解闭包的特点和其应用场景。 首先看一下Jav……

实用类LoopNum的设计与实现

在文章使用均等概率产生(0,1)的函数实现均等概率产生(0,1,2)的函数的解法1中,通过对原始概率函数运算,分别生成g1=g()+1和g2=g()*2两个函数,和原始函数一起组成3个函数的集合(g, g1, g2), 并对这个集合中的3个函数进行轮询,产生概率相等的(0,1,2),代码如下: 12345678910111213141516171819202122232425262728293031p……

调试时为什么看不到ThreadLocal的内部变量

昨天一个同事调试一个使用ThreadLocal的应用,应用往ThreadLocal里放进一个变量,然后在程序的其他地方取出来的时候发现变量为空,根据经验,他让程序把一个变量放进ThreadLocal变量后,通过调试器想看一下ThreadLocal的内部结构,确认一下是否变量已经存入了ThreadLocal变量的内部结构,不幸的是在调试器里他看不到任何……

【讨论】RPC框架应该透传Error还是封装Error

RPC框架产生的坑 – NoClassDefFoundError 1. 线上RPC提供者灰度发布新功能,灰度发布打包出现问题,漏掉一个类,导致灰度服务器抛出NoClassDefFoundError,NoClassDefFoundError被透传给服务消费者。 2. 服务消费者,也就是业务方,在线程的最上层catch Exception,但是没有catch Throwable, 因此,调用到灰度机器……

查找Java进程内CPU利用率最高的线程的工具(show-busiest-java-threads.sh)

查找Java进程内CPU利用率最高的线程,本脚本来自一个叫候鸟树的网友。 使用方法: ./show-busiest-java-threads.sh -p 30780 -c 10 显示帮助: ./show-busiest-java-threads.sh -h 源码: #!/bin/bash # @Function # Find out the highest cpu consumed threads of java, and print the stack of these threads. # ……

Memcache的三种Java客户端的对比和选择

Memcache作为一个著名的缓存项目支持多种语言和多种形式的客户端,作为一个Java开发人员,我们必须了解各种客户端的不同,这有利于我们在技术选型的时候充分的评估其优缺点,从而选择最佳的缓存产品以及缓存客户端,最终对技术选型进行合理的决策。 1.官方提供的基于传统阻塞io由Greg Whalin维护的客户端memcached client……

CMS vs. Parallel GC

GC策略在G1收集器还没有成熟,并且没有得到广泛应用的情况下,目前主要有串行,并发(CMS)和并行(Parallel)三种,其中串行主要应用在客户端的实例中,在CPU资源比较稀缺的情况下,适合使用串行GC,这样可以避免过多的线程切换浪费系统资源,从而可以达到较高的性价比,但是对于高并发的服务器系统,并发和并行垃圾收集策略……

JVM GC调试工具

1. JConsole 2. Visual VM 3. Eclipse MAT 4. JProfiler – http://www.ej-technologies.com/products/jprofiler/overview.html 5. Yourkit – http://yourkit.com/ – 需要使用jvm agent, 非开源有破解 – 参考更多介绍:http://zhwj184.iteye.com/blog/764575

GC参数列表

默认的GC收集器 启动模式 新生代GC方式 旧生代和持久带GC方式 client 串行 串行 server ParNew CMS GC参数列表 参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制. -Xmx 最大堆大小 物理内存……